Posted March 29, 201510 yr As the title says, i'm trying to open a GuiScreen from PlayerInteractEvent. I think the problem is that event.world is WorldServer, and that it doesn't open GuiScreen beacuse this type of Gui is only client side. I perfectly know that through onBlockActivated it works, but I'm curious to know if what I'm asking is possible Thanks in advance, bros.
March 29, 201510 yr Author So, can you please have a look on these lines? I can't upload it on github for personal reasons, sorry if (((event.world.getBlock(event.x, event.y, event.z) instanceof PNBlockBarrel)) && (!event.world.isRemote)) { PNTileEntityBarrel te = (PNTileEntityBarrel) event.world .getTileEntity(event.x, event.y, event.z); if (event.action == Action.RIGHT_CLICK_BLOCK) { if (event.entityPlayer.getHeldItem() != (null)) { if (new ItemStack(Items.water_bucket).getItem().equals( event.entityPlayer.getHeldItem().getItem()) && !te.isWaterLevelRight()) { te.waterUsed(); if (!event.entityPlayer.capabilities.isCreativeMode) { event.entityPlayer.setCurrentItemOrArmor( 0, new ItemStack(Items.bucket, event.entityPlayer .getHeldItem().stackSize)); } event.world.markBlockForUpdate(event.x, event.y, event.z); } if (new ItemStack(Items.wheat).getItem().equals( event.entityPlayer.getHeldItem().getItem()) && !te.isWheatUsed() && te.getGrapesUsed() == 0) { te.wheatUsed(); if (!event.entityPlayer.capabilities.isCreativeMode) { event.entityPlayer.getHeldItem().stackSize--; } event.world.markBlockForUpdate(event.x, event.y, event.z); } if (new ItemStack(PNFoodRegistry.LuppoliItem).getItem().equals( event.entityPlayer.getHeldItem().getItem()) && event.entityPlayer.getHeldItem().getTagCompound() .getInteger("STATE") != 0 && !te.isHopsUsed() && te.getGrapesUsed() == 0) { te.hopsUsed(); if (!event.entityPlayer.capabilities.isCreativeMode) { event.entityPlayer.getHeldItem().stackSize--; } event.world.markBlockForUpdate(event.x, event.y, event.z); } if (new ItemStack(PNFoodRegistry.UvaItem).getItem().equals( event.entityPlayer.getHeldItem().getItem()) && event.entityPlayer.getHeldItem().getTagCompound() .getInteger("STATE") != 0 && !te.isGrapesUsed() && te.getWheatUsed() == 0 && te.getHopsUsed() == 0) { te.grapesUsed(); if (!event.entityPlayer.capabilities.isCreativeMode) { event.entityPlayer.getHeldItem().stackSize--; } event.world.markBlockForUpdate(event.x, event.y, event.z); } } else { System.out.println(event.entityPlayer.worldObj.isRemote); event.entityPlayer.openGui(PNMod.instance, PNGuiHandler.idScreenBarrel, event.world, event.x, event.y, event.z); } } } I have put System.out.println as a sort of debug, and it prints false. I know that code isn't so good, but I'll clean it after first i need to sort the problem out If you can help me, it would be great
March 29, 201510 yr Like he said, you are checking the server side. world.isRemote = Client !world.isRemote = Server. Also, are you trying to open a gui and set a TileEntity for a block? Because you're suppose to do that in the block class and then, make a GuiHandler to open it. 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.
March 30, 201510 yr Author Like he said, you are checking the server side. world.isRemote = Client !world.isRemote = Server. Also, are you trying to open a gui and set a TileEntity for a block? Because you're suppose to do that in the block class and then, make a GuiHandler to open it. God, I feel stupid lol . I focused on the last lines and I forgot to check the first part.. Thanks for helping, man Next time I hope I'll be more careful
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.