Posted November 12, 20195 yr I'm trying to implement the well-known /invsee command. This is what I have done so far: @Override public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { if (args.length != 1) { throw new InvalidNumberOfArgumentsException(); } // fetch target's inventory EntityPlayerMP target = server.getPlayerList().getPlayerByUsername(args[0]); if (target == null) return; // TODO: send an error message IInventory targetInventory = target.inventory; // displaying it to sender EntityPlayerMP player = (EntityPlayerMP)sender; player.displayGUIChest(targetInventory); } It works perfectly when both sender and target are in the same dimension, but if they are not, the GUI closes instantly. So I took a look at the net.minecraft.entity.player.EntityPlayerMP#displayGUIChest source code and tried to understand why. This is the piece of code which I think blocks me: (l.948) if (this.openContainer != this.inventoryContainer) { this.closeScreen(); } I also took a look at net.minecraft.entity.player.EntityPlayerMP#changeDimension to check if EntityPlayerMP's attributes openContainer and inventoryContainer where changed but it is not the case. What is wrong with what I am doing ? I feel like I missed something! Edited November 12, 20195 yr by Sunser
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.