Jump to content

Recommended Posts

Posted
I use this code to replace item in hotbar slot
 
((EntityPlayer) entity).inventory.setInventorySlotContents(5, new ItemStack(example.block, 1));
 
and this works, but if I use this item(RClick) it go back to the previous state. But! If I open inventory and pick it and put in any slot it won`t go back to the previous state after RClick.
Posted
 
int selSlot = ((EntityPlayer) entity).inventory.currentItem ;
 
 
if (entity.capabilities.isCreativeMode) {
                              if (entity.inventory.getCurrentItem() != null && entity.inventory.getCurrentItem().getItem() == expand20.block) {
                                   if (true) {
                                        if (entity instanceof EntityPlayer)
                                             ((EntityPlayer) entity).inventory.setInventorySlotContents(selSlot, new ItemStack(expand10.block, 1));
                                   }
                                 
                              }
                         }
Posted (edited)
Bigger code slice
 
 
 
public class KeyHandlerClass {
  private static final String desc = "Previous range";
  private static final int keyValues = Keyboard.KEY_LBRACKET;
  private final KeyBinding keys;
  public KeyHandlerClass() {
   keys = new KeyBinding(desc, keyValues, "World Edit helpers");
   ClientRegistry.registerKeyBinding(keys);
  }
  @SubscribeEvent
          public void onKeyInput(InputEvent.KeyInputEvent event) {
               if (!FMLClientHandler.instance().isGUIOpen(GuiChat.class)) {
                    if (keys.isPressed()) {
                         EntityPlayer entity = Minecraft.getMinecraft().thePlayer;
                         

                         MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
                         World world = server.worldServers[0];
                   
                         int selSlot = ((EntityPlayer) entity).inventory.currentItem ;
 

                      
                       if (entity.capabilities.isCreativeMode) {
                           if (entity.inventory.getCurrentItem() != null && entity.inventory.getCurrentItem().getItem() == expand20.block) {
                                   if (true) {
                                        if (entity instanceof EntityPlayer)
                                             ((EntityPlayer) entity).inventory.setInventorySlotContents(selSlot, new ItemStack(expand10.block, 1));
                                             
                                   }
                                  
                              }
                         }
                      
 
 
                        
                    }
               }
          }
 }
}
Edited by TANDEROID
Posted
2 minutes ago, diesieben07 said:

What you are doing there is known as reaching across logical sides and it's a very bad idea. If you want a key binding to trigger a server-side action you must send packets.

Sorry, but the most of this code isn`t mine, I use ModCreator, so I understend not more the 20% of that. I just want to solve this problem. So, my problem was called by reaching across logical sides, or the reason not here?

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.