Jump to content

[SOLVED] Modifying Player Movement


insomniac10102

Recommended Posts

I am currently trying to modify a player's movement, but so far everything I've tried has failed. Does anyone know of the preferred/suggested way to override a player's movement?

 

The closest I have gotten is EntityClientPlayerMP.addVelocity(), but it is only modifying the coordinates of the player (and also, for whatever reason, setting isAirBorne to true). I am in need of something that will modify movement relative to where the player is looking.

Link to comment
Share on other sites

Remember, the changes you make have to apply to the server and to the client.  If you make changes to the server and not to the client, you will appear to be walking like normal but the server will have you registered far away, vice versa for the opposite.  The best way I approached it was apply buffs (potions) to the player as that works well for communication from Server to Client and Client to Server.

Link to comment
Share on other sites

This is code I did for setting a player to a specific location. Is this what you are looking for?

 

if (!par2World.isRemote) {
        	ChunkCoordinates bedCoords = par3EntityPlayer.getBedLocation(0);
        	
        	if(bedCoords != null) {
        		if(par3EntityPlayer instanceof EntityPlayerMP) {
        			((EntityPlayerMP)par3EntityPlayer).playerNetServerHandler.setPlayerLocation(bedCoords.posX, bedCoords.posY, bedCoords.posZ, par3EntityPlayer.rotationYaw, par3EntityPlayer.rotationPitch);
        		}
        	} else {
        		par3EntityPlayer.addChatMessage("You haven't slept in a bed.");
        	}
        }

Link to comment
Share on other sites

This may help you. But I was doing this in 162, dont know if there is difference.

To write a movementinput and act the movement by yourself.

But one thing is that you need to control the movement by yourself too.

It's not so smart when you want to control a player with WSAD just with code.

 

The code below is that when the player have potion 37,39 and 41, he can't move and jump.

and with potion 49, when you press W, you go backward, same with "AD".

 

public class ConfusedMovementInput extends MovementInput {

public ConfusedMovementInput(MovementInput interceptedMovementInput) {
	underlyingMovementInput = interceptedMovementInput;
	System.out.println("construct movementinput");
}

@Override
public void updatePlayerMoveState() {
	underlyingMovementInput.updatePlayerMoveState();
	EntityPlayer p = Minecraft.getMinecraft().thePlayer;
        this.jump = underlyingMovementInput.jump && 
        		    !p.isPotionActive(37) &&
        		    !p.isPotionActive(39) &&
        		    !p.isPotionActive(41);
        this.sneak = underlyingMovementInput.sneak;
        if (p.isPotionActive(37) || p.isPotionActive(39) || p.isPotionActive(41)) {
        	this.moveForward = 0;
        	this.moveStrafe = 0;
        }
        if (p.isPotionActive(49)) {
          this.moveStrafe = -underlyingMovementInput.moveStrafe;
          this.moveForward = -underlyingMovementInput.moveForward;
        } else {
          this.moveStrafe = underlyingMovementInput.moveStrafe;
          this.moveForward = underlyingMovementInput.moveForward;
        }

}

public void setConfusion(boolean newConfused) {
	confused = newConfused;
}

protected MovementInput underlyingMovementInput;
private boolean confused = false;

}

 

 

and you can replace the origin movement input somewhere in your code

    EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer;
    if (player != null) {
    	if (player.movementInput instanceof ConfusedMovementInput) {
    	} else {
    		player.movementInput = new ConfusedMovementInput(player.movementInput);
    	}
    }

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.



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • On February 14th, Valentine’s Day, I found myself in a desperate situation: $150,000 worth of Bitcoin trapped in a wallet because I had forgotten the password. It might sound like a rookie mistake, but when Bitcoin surged, I decided it was time to sell some, only to realize I couldn’t access my wallet. Panic set in as I frantically tried everything—password managers, old notebooks, and even my fading muscle memory. Each failed attempt heightened my anxiety, and I felt foolish for not securing my information better. In a moment of frustration, I mentioned my dilemma to my cousin, who works in tech. He casually suggested ADWARE RECOVERY SPECIALIST, sharing how a colleague had a positive experience with them. Skeptical yet desperate, I decided to reach out. From the very first interaction, I was met with professionalism and empathy. The team reassured me that cases like mine were more common than I thought, which eased my embarrassment and offered a glimmer of hope. After providing the necessary details about my wallet, they initiated the recovery process. Their methodical approach kept me informed and hopeful. I appreciated how they broke down each step, allowing me to feel involved and reassured that my case was in good hands. A few days later, I received an email with the subject line: "Wallet Recovery Successful." Hesitant but hopeful, I opened it, and when I saw that $145,000 balance, relief washed over me. It felt like a heavy weight had been lifted; I could hardly believe it. This experience didn’t just allow me to regain access to my funds; it taught me invaluable lessons about digital security. I realized the importance of being proactive in protecting my digital assets. Since then, I’ve adopted a secure password manager and enabled two-factor authentication wherever possible. This ordeal highlighted the necessity of safeguarding my information and the potential consequences of negligence. Ultimately, my experience with ADWARE RECOVERY SPECIALIST transformed a nightmare into a success story. They made what seemed like an impossible situation manageable, and I couldn’t be more grateful. I can’t recommend them highly enough for anyone facing similar issues. Their expertise and support were truly magical, reminding me that even on a day meant for love, unexpected challenges can turn into victories. I now feel empowered to handle my digital assets with much greater care and confidence.
    • Hackathon Tech Solutions is a legitimate Bitcoin and Ethereum recovery company that specializes in helping individuals who have lost access to their cryptocurrency wallets or have been victims of hacking or scams. Our team of experts uses advanced technology and techniques to recover lost funds and secure your assets. We understand the importance of protecting your investments and work tirelessly to ensure that you regain control of your digital assets. Trust Hackathon Tech Solutions to provide you with reliable and efficient recovery services for your Ethereum and Bitcoin holdings.Reach out to HACKATHON TECH SOLUTIONS via below contact details Email: info  (@)  hackathon   tech  solution (.)  com Telegram:  (@)  hackathon  tech  solutions
    • When you are placing a minecart on Powered Rail, it is starting shaking and dismounting a player, instead of speeding up. (Without forge everything is ok, no mods installed)
    • why when I launch the forge version of minecraft in full screen and turn on screen recording, only the first static image of the launch is recorded and the gameplay itself is not recorded
  • Topics

×
×
  • Create New...

Important Information

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