public ItemType CheckItem(ItemStack stack) throws InvocationTargetException, IllegalAccessException { int ItemID = stack.getTypeId(); byte meta = stack.getData().getData(); Object item = nmsResolver.getItemList().get(ItemID); ForgePermittor.log(item.toString(), true); if (item != null) { /* if (this.getInformationManager().HasConnectableInferface(item)) return ItemType.Connectable;*/ if (this.getInformationManager().HasItemBlockContainerInterface(item)) return ItemType.Container; if (this.getInformationManager().HasFoodInterface(item)) return ItemType.Food; if (this.getInformationManager().HasSwordInterface(item)) return ItemType.Weapon; if (this.getInformationManager().HasItemBlockInterface(item)) return CheckItemBlock(item, ItemID, meta); if (this.getInformationManager().HasItemInterface(item)) { if (nmsResolver .getItemStackHandler() .HasTagCompound(nmsResolver.getCraftItemStackHandler().asNMSCopy(stack))) return ItemType.AdvItem; return ItemType.Item; } } return ItemType.Unknown; }
private ItemType CheckItemBlock(Object item, int ItemID, byte meta) throws InvocationTargetException, IllegalAccessException { if (ItemID < nmsResolver.getBlockList().getLength()) { Object object = nmsResolver.getItemBlockHandler().getBlock(item); if (this.getInformationManager().HasContainerInterface(object) || nmsResolver.getBlockHandler().IsContainer(object, meta)) return ItemType.Container; else if (this.getInformationManager().HasBlockInterface(object)) { return ItemType.Block; } } return ItemType.Block; }
public BlockType CheckBlock(Block block) throws InvocationTargetException, IllegalAccessException { if (block.getTypeId() < 4096 && block.getTypeId() != 0) { Object object = nmsResolver.getBlockList().get(block.getTypeId()); ForgePermittor.log(object.getClass().toString(), true); // todo Test if this doesn't break something if ( /*this.getInformationManager().HasContainerInterface(object) || */ nmsResolver .getCraftWorldHandler() .HasTileEntity(block)) if (this.getInformationManager() .HasTradeBlockInterface(nmsResolver.getCraftWorldHandler().getTileEntityFrom(block))) return BlockType.Trade; else return BlockType.Container; // CheckConnectable(block); if (this.getInformationManager().HasBlockInterface(object)) return BlockType.Block; } return BlockType.Unknown; }