public static void registerItems() { if (!((RegistrySimple)BlockDispenser.dispenseBehaviorRegistry).containsKey((Object)Items.glass_bottle)) { BlockDispenser.dispenseBehaviorRegistry.putObject((Object)Items.glass_bottle, (Object)new BehaviorDefaultDispenseItem() { private final BehaviorDefaultDispenseItem field_150840_b = new BehaviorDefaultDispenseItem(); public ItemStack dispenseStack(final IBlockSource par1IBlockSource, final ItemStack par2ItemStack) { final EnumFacing enumfacing = BlockDispenser.func_149937_b(par1IBlockSource.getBlockMetadata()); final World world = par1IBlockSource.getWorld(); final int i = par1IBlockSource.getXInt() + enumfacing.getFrontOffsetX(); final int j = par1IBlockSource.getYInt() + enumfacing.getFrontOffsetY(); final int k = par1IBlockSource.getZInt() + enumfacing.getFrontOffsetZ(); final Material material = world.getBlock(i, j, k).getMaterial(); final int l = world.getBlockMetadata(i, j, k); if (Material.water.equals(material) && l == 0) { final Item item = (Item)Items.potionitem; if (--par2ItemStack.stackSize == 0) { par2ItemStack.func_150996_a(item); par2ItemStack.stackSize = 1; par2ItemStack.setTagCompound((NBTTagCompound)null); } else if (((TileEntityDispenser)par1IBlockSource.getBlockTileEntity()).func_146019_a(new ItemStack(item)) < 0) { this.field_150840_b.dispense(par1IBlockSource, new ItemStack(item)); } return par2ItemStack; } return super.dispenseStack(par1IBlockSource, par2ItemStack); } }); } }
/** * Replaces a block with another block. May not work. * @param nonNumericId The string id of the block to remove. * @param newBlock The new Block to put in it's place. */ @DocumentationAnnotations.Experimental(firstAppearance = "1.0") public static final void replaceBlock(String nonNumericId, Block newBlock) { Map<String, Block> blocksMap = ReflectionManipulateValues.getValue(RegistrySimple.class, Block.blockRegistry, "registryObjects"); blocksMap.remove(nonNumericId); blocksMap.put(nonNumericId, newBlock); ReflectionManipulateValues.setValue(RegistrySimple.class, Block.blockRegistry, "registryObjects", blocksMap); }
public boolean matchItem(final Item item) { return ((RegistrySimple)BlockDispenser.dispenseBehaviorRegistry).containsKey((Object)item); }