Posted June 4, 201312 yr Hi there! I try to explain my Problem in short words: I'm playing around with KeyBindings. I took an old Item an added an "onUpdate(bla bla)". I also created the KeyHandler to get the Information if the specific Key is pressed. While playing around, I made the Key working as an toggle. This toggle should switch between Survival and Creative. Long story short: If I press the key with the item in my hand, the toggle works as it should. I can see this, cause I have a player.addChatMessage() in the onUpdate, too. The problem now is, that the gamemode doesn't change everytime I press the key (the ChatMessage appears!). I think it changes every 5 to 100 time I press the key. If someone please could watch the code and tell me what the fault is Thanks alot! Tankwart The part in the IconFile: boolean gameTypeCreative = false; boolean gameTypeSurvival = true; public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5) { EntityPlayer player = (EntityPlayer)par3Entity; if(KeyBindingHandler.keyPressed & par1ItemStack==player.getHeldItem()) { if(gameTypeSurvival==true) { player.setGameType(EnumGameType.CREATIVE); player.addChatMessage("Creative an! gTC=" + gameTypeCreative + " / gTS=" + gameTypeSurvival); gameTypeSurvival = false; gameTypeCreative = true; } else { player.setGameType(EnumGameType.SURVIVAL); player.addChatMessage("Survival an! gTC=" + gameTypeCreative + " / gTS=" + gameTypeSurvival); gameTypeSurvival = true; gameTypeCreative = false; } } } And the KeyBindingHandler: package ... public class KeyBindingHandler extends KeyHandler // implements ITickHandler { private EnumSet tickTypes = EnumSet.of(TickType.CLIENT); // With PLAYER it's the same issue. public static boolean keyPressed = false; public static boolean keyReleased = true; public KeyBindingHandler(KeyBinding[] keyBindings, boolean[] repeatings) { super(keyBindings, repeatings); } @Override public String getLabel() { return "CustomKey"; } @Override public void keyDown(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd, boolean isRepeat) { if (keyReleased==true) { keyPressed = true; //System.out.println("pressed"); } else { keyPressed=false; } keyReleased = false; } @Override public void keyUp(EnumSet<TickType> types, KeyBinding kb, boolean tickEnd) { if (keyReleased==false){ keyPressed = false; keyReleased = true; //System.out.println("released"); } } @Override public EnumSet<TickType> ticks() { return tickTypes; } }
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.