Posted November 24, 201311 yr Hello, i want to make a item that when you shift-right-click a block that implements IWrenchable, it breaks the block, much like the IC2 wrench does with it machines. I have this code in my item class: public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if(stack != null && player.isSneaking()) { if(Block.blocksList[world.getBlockId(x, y, z)] instanceof IWrenchable) { world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Block.blocksList[world.getBlockId(x, y, z)], 1))); world.setBlockToAir(x, y, z); return true; } } return true; } With that code it will spawn items in the world, but you can't pick them up, and it doesn't break the block. Instead, it's turning invisible. I have used the breakBlock method, but that doesn't work at all. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
November 24, 201311 yr Author Any thoughts on how i can do that? Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
November 24, 201311 yr Author With this code: public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) { System.out.println("Doing is server-side!"); if(stack != null && player.isSneaking()) { System.out.println("I am sneaking!"); if(Block.blocksList[world.getBlockId(x, y, z)] instanceof IWrenchable) { System.out.println("It is Wrenchable!"); world.spawnEntityInWorld(new EntityItem(world, x, y, z, new ItemStack(Block.blocksList[world.getBlockId(x, y, z)], 1))); world.setBlockToAir(x, y, z); return true; } } } return true; } It doesn't break the block. It doesn't even print the lines in the console. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
November 25, 201311 yr Author Solved it, i just needed to return false if is could wrench it. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
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.