Posted August 13, 201411 yr Hi, for some reason the reach is not changing at all. The reach is default for attacking and digging even if I set it. This is in a TickEvent.PlayerTick event method: EntityPlayer player = event.player; if(event.phase == Phase.START) { if(event.side == Side.SERVER) { if(player instanceof EntityPlayerMP) { float reach = 5.0F; ItemStack heldItem = player.getHeldItem(); if(heldItem != null) { Item item = heldItem.getItem(); if(item instanceof ICustomReach) { reach = ((ICustomReach) item).getReach(heldItem); } } ItemInWorldManager itemInWorldManager = ((EntityPlayerMP) player).theItemInWorldManager; if(itemInWorldManager.getBlockReachDistance() != reach) { itemInWorldManager.setBlockReachDistance(reach); } } Here's my ItemSword class: package terrarium.item.tool; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import terrarium.item.ICustomReach; public class ItemSword extends ItemTool implements ICustomReach { public SwordType swordType; public ItemSword(String name, ToolMaterial material, SwordType swordType) { super(name, material); this.swordType = swordType; } @Override public boolean isToolType(ToolType type) { return type == ToolType.SWORD ? true : false; } @Override public float getReach(ItemStack itemStack) { Item item = itemStack.getItem(); if(item instanceof ItemSword) { ItemSword sword = (ItemSword) item; System.out.println("HI"); return 1000.0F; } return 0F; } public static enum SwordType { SHORT, LONG; } } Kain
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.