Jump to content

[1.11.2] Injecting custom MovementInput


BeardlessBrady

Recommended Posts

Currently Im just trying to see if I can inject my own custom MovementInput into the game via EntityJoinWorldEvent. Right now I've only copied the MovementInputFromOptions class to the t just to see if it will allow me and for some reason the game crashes on world

 

MovementInput Class: https://github.com/BeardlessBrady/Carts-Mod/blob/master/src/main/java/gunn/modcarts/mod/CartMovementInput.java

CommonEvent Class: https://github.com/BeardlessBrady/Carts-Mod/blob/master/src/main/java/gunn/modcarts/mod/core/handler/EventHandlerCommon.java#L35-L38

Crashlog: https://pastebin.com/fQeyyUCA

Link to comment
Share on other sites

1. You should not reference Minecraft on the event like that, especially when it could be called from both client and server. Create an event handler dedicated for client, and register it on the client proxy.

2. The event is called whenever an entity is created. You should check if the entity is a player, and cast the entity as EntityPlayer.(or EntityPlayerSP)

3. What kind of behavior do you want with it? This approach does not look fine.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

I originally had it on the client handler, at this point I was just trying things. I also had no idea the event is called for all entities, let me try and check for a player entity first


What I'm trying to do: (in certain circumstances) prevent the player from strafing.

 

EDIT: Alright moved it back to the client and checking for EntityPlayerSP got me into the world! Thanks a bunch

Unfortunately though this way isn't working, if I try and stop strafing even in my modified movementInput it still wont stop it, any ideas?

Edited by BeardlessBrady
Link to comment
Share on other sites

So you want to prohibit certain movement of player? Why?

If it is for anti-cheat server, there is always a way to break it with another mod or something. It's better to do it on server by checking for it.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

Sorry about the blind guess.

 

Would you post your current code? Specifically, did you override MovementInput#updatePlayerMoveState() to block the left/right movement?

Also it's about blocking the strafe control input, right?

Edited by Abastro

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

Its all good, I know its an obscure thing I'm trying to do.

 

ClientProxy: https://github.com/BeardlessBrady/Carts-Mod/blob/d7ae34010cb870e3eba29ab21572afe5fbbd4c80/src/main/java/gunn/modcarts/mod/core/handler/EventHandlerClient.java

MovementInput: https://github.com/BeardlessBrady/Carts-Mod/blob/d7ae34010cb870e3eba29ab21572afe5fbbd4c80/src/main/java/gunn/modcarts/mod/CartMovementInput.java

 

I'm copying the MovementInputFromOptions and just commenting out the left movement part but I can still move left

 

Link to comment
Share on other sites

2 hours ago, BeardlessBrady said:

Would you check if the method is actually called? It seems that it might not be properly replaced.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

Then it's not correctly patched. Please check if the movement input of the player is your custom one. Detecting it on some kind of key binding will be handy.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.