Posted January 4, 20223 yr so once i created my tileentity with its screen and container i made a block that opens it @Override public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { if(!worldIn.isRemote()) { TileEntity tileEntity = worldIn.getTileEntity(pos); if(!player.isCrouching()) { if(tileEntity instanceof MyTileEntity) { INamedContainerProvider containerProvider = createContainerProvider(worldIn, pos); NetworkHooks.openGui(((ServerPlayerEntity)player), containerProvider, tileEntity.getPos()); } else { throw new IllegalStateException("The Container provider is missing!"); } } } return ActionResultType.SUCCESS; } private INamedContainerProvider createContainerProvider(World worldIn, BlockPos pos) { return new INamedContainerProvider() { @Override public ITextComponent getDisplayName() { return new TranslationTextComponent("screen.totismod.my_tile_screen"); } @Nullable @Override public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity playerEntity) { return new MyContainer(i, worldIn, pos, playerInventory, playerEntity); } }; } @Nullable @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { return ModTileEntities.MY_TILE.get().create(); } @Override public boolean hasTileEntity(BlockState state) { return true; } so how do i convert this for when i right click my item it opens the same gui i made this but is not working: @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) { TileEntity tileEntity = worldIn.getTileEntity(playerIn.getPosition()); if(!worldIn.isRemote) { INamedContainerProvider containerProvider = createContainerProvider(worldIn, playerIn.getPosition()); NetworkHooks.openGui(((ServerPlayerEntity)playerIn),containerProvider,tileEntity.getPos()); } return super.onItemRightClick(worldIn, playerIn, handIn); } private INamedContainerProvider createContainerProvider(World worldIn, BlockPos pos) { return new INamedContainerProvider() { @Override public ITextComponent getDisplayName() { return new TranslationTextComponent("screen.totismod.washing_machine"); } @Nullable @Override public Container createMenu(int i, PlayerInventory playerInventory, PlayerEntity playerEntity) { return new WashingContainer(i, worldIn, pos, playerInventory, playerEntity); } }; }
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.