Jump to content

Disabling keyboard and mouse


Agravaine

Recommended Posts

For the mouse, cancel the

net.minecraftforge.client.event.MouseEvent.MouseEvent()

.

For the keyboard, you can try setting the

posX

from the player to the player's

prevPosX

.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Maybe something like this?

 

while(spellParalysis.isActive()) {
      KeyBoard.destroy();
      Mouse.destroy();
}

 

Not sure where you would put this but, I believe this disables the KeyBoard and Mouse.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

Link to comment
Share on other sites

For the mouse, cancel the

net.minecraftforge.client.event.MouseEvent.MouseEvent()

.

For the keyboard, you can try setting the

posX

from the player to the player's

prevPosX

.

 

Yes, I tried the resetting thing and it pretty much works with following code (event handler for LivingUpdateEvent):

    @SubscribeEvent(priority=EventPriority.NORMAL, receiveCanceled=true)

    public void onEvent(LivingUpdateEvent event)

    {

        // This event has an Entity variable, access it like this: event.entity;

        // and can check if for player with if (event.entity instanceof EntityPlayer)

 

    if (event.entityLiving instanceof EntityPlayer)

    {

    EntityPlayer thePlayer = (EntityPlayer)event.entityLiving;

    if (thePlayer.ticksExisted > 5) // make sure there is a valid prev position, don't run on first tick

    {

                        // You should also check to see if your paralysis effect is active here!

    thePlayer.setPosition(thePlayer.prevPosX, thePlayer.prevPosY, thePlayer.prevPosZ);

    }

    }

    }

 

The problem though is that it doesn't entirely prevent the movement, rather it shows the player attempting to move.  But it is kinda cool, maybe you'll like it.

 

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

I know you are very HAPPY to KILL, but that doesn't mean you need to DESTROY everything xD

 

My input:

Better use events (as diesieben said).

 

I was just burned so hard. xD

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

Link to comment
Share on other sites

Maybe doing that in RenderTickEvent.Pre would solve the glitching problem.

 

Worth trying. The key is to find an event that takes place after the position is updated but before it is rendered, so that might work.

 

I also think there may be an issue with client-server sync. The client is able to move entities a bit between server syncs, so it may be related to that.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Link to comment
Share on other sites

  • 9 months later...

This is an old post, but I figured I might as well post a solution I found to disable the mouse movement input to prevent the camera moving. Simply by setting the mouse sensitivity to 0. To do this the sensitivity actually has to be set to a negative number to cancel out a constant which is added in the source.

 

 Minecraft.getMinecraft().gameSettings.mouseSensitivity = -1F/3F; 

Link to comment
Share on other sites

The problem with that is: when you need to reset the sensitivity, you won't have the sensitivity the player may have set his game to. Thus, they would have to constantly change their sensitivity back (if they changed it before) every time it is affected.

I am not a cat. I know my profile picture is sexy and amazing beyond anything you could imagine but my cat like features only persist in my fierce eyes. I might be a cat.

Link to comment
Share on other sites

If we are going to revive this thread anyway. Way would catching the input events per tick not work? (just like mc is doing). If you catch it before mc can, it means that mc will have no input events to handle. (Since they are removed after reading/catching).

Projects:

Discontinued:

- N2ConfigAPI

- Meachanical Crafting Table

 

Latest:

- CollectionUtils

 

Coöperations:

- InGameConfigManager

Link to comment
Share on other sites

If we are going to revive this thread anyway. Way would catching the input events per tick not work? (just like mc is doing). If you catch it before mc can, it means that mc will have no input events to handle. (Since they are removed after reading/catching).

 

I agree that would be better. I was just not able to do it. It seemed to me that mc uses net.minecraft.util.MouseHelper to change the view, but I was not able to change the displacement even if I changed the dX and dY values. If anyone is able to do this or find a simpler solution, please let me know.

Link to comment
Share on other sites

I think you should be able to catch the mouse event before the methods inside the MouseHelper class are called. If I remember correctly those methods are directly called from the #doTick() method.(not at my IDE atm so not sure). So if there is a tick type event fired before the mouseInputs are handled, you can simply subscribe to that event and catch the mouse i put events from lwjgl directly(instead of blocking vanilla events), so that vanilla has no events to proces after the tick event has been fired.

Projects:

Discontinued:

- N2ConfigAPI

- Meachanical Crafting Table

 

Latest:

- CollectionUtils

 

Coöperations:

- InGameConfigManager

Link to comment
Share on other sites

  • 5 months later...

I know this is an old thread but I have just gone through this same issue.  In particular trying to lock the mouse so the player angle doesn't change.

 

I found this to be a good solution, anywhere in your initialization code:

 

		
MouseHelper customMouseHelper = new MouseHelper() {
  @Override
  public void mouseXYChange() {
    deltaX = 0;
    deltaY = 0;
  }
};

	Minecraft.getMinecraft().mouseHelper = customMouseHelper;

 

 

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.