#Get client-side player from server-side event level

22 messages · Page 1 of 1 (latest)

drowsy lance
#

Is this doable? I'm listening to the forge event net.minecraftforge.event.entity.player.PlayerEvent$PlayerChangedDimensionEvent and can't seem to get the client side of the event, if there even is one, to call a function.

hallow ospreyBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

fresh burrow
#
if (event.entity.level.isClientSide()) {
 // everything here will be client sided
}
drowsy lance
fresh burrow
#

does it errors or something?

#

on log

drowsy lance
#

no, just looks like its only server-side

#

I have the function being called in client scripts btw

fresh burrow
#

you are listening on startup and using global to delegate to client_scripts?

drowsy lance
#

yeah

fresh burrow
#

let me see

drowsy lance
#

startup.js

const $PlayerChangedDimensionEvent = Java.loadClass("net.minecraftforge.event.entity.player.PlayerEvent$PlayerChangedDimensionEvent");

ForgeEvents.onEvent($PlayerChangedDimensionEvent, event => {
    global.playerChangedDimensionEvent(event);
});
#

client.js

global.playerChangedDimensionEvent = event => {
    event.entity.tell("1");
    if (event.entity.level.isClientSide()) {
        event.entity.tell("2");
    }
};
#

player recieves "1" but not "2" when crossing dimensions

#

and I need client-side so I can apply deltamovement/motion to the player

fresh burrow
#

I checked Forge/Minecraft code and it happens only on server side

drowsy lance
#

unfortunate

#

is there some way to apply motion to a player from the server instead?

fresh burrow
#

i think just like normal, eventually when the server sends the package with info it will refresh on client side? just try

#

also doing on client looks like cheat

drowsy lance
#

as in I can't see it happening but my position server-side is getting updated