forked from xjboss/KCauldronX
455 lines
23 KiB
Diff
455 lines
23 KiB
Diff
--- ../src-base/minecraft/net/minecraft/init/Bootstrap.java
|
|
+++ ../src-work/minecraft/net/minecraft/init/Bootstrap.java
|
|
@@ -1,6 +1,7 @@
|
|
package net.minecraft.init;
|
|
|
|
import java.util.Random;
|
|
+
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.BlockDispenser;
|
|
import net.minecraft.block.BlockFire;
|
|
@@ -34,6 +35,11 @@
|
|
import net.minecraft.util.EnumFacing;
|
|
import net.minecraft.world.World;
|
|
|
|
+// CraftBukkit start
|
|
+import org.bukkit.craftbukkit.inventory.CraftItemStack;
|
|
+import org.bukkit.event.block.BlockDispenseEvent;
|
|
+// CraftBukkit end
|
|
+
|
|
public class Bootstrap
|
|
{
|
|
private static boolean field_151355_a = false;
|
|
@@ -116,14 +122,48 @@
|
|
double d0 = p_82487_1_.getX() + (double)enumfacing.getFrontOffsetX();
|
|
double d1 = (double)((float)p_82487_1_.getYInt() + 0.2F);
|
|
double d2 = p_82487_1_.getZ() + (double)enumfacing.getFrontOffsetZ();
|
|
- Entity entity = ItemMonsterPlacer.spawnCreature(p_82487_1_.getWorld(), p_82487_2_.getItemDamage(), d0, d1, d2);
|
|
+ // CraftBukkit start
|
|
+ World world = p_82487_1_.getWorld();
|
|
+ ItemStack itemstack1 = p_82487_2_.splitStack(1);
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1, d2));
|
|
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ Entity entity = ItemMonsterPlacer.spawnCreature(p_82487_1_.getWorld(), p_82487_2_.getItemDamage(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ());
|
|
+
|
|
if (entity instanceof EntityLivingBase && p_82487_2_.hasDisplayName())
|
|
{
|
|
- ((EntityLiving)entity).setCustomNameTag(p_82487_2_.getDisplayName());
|
|
+ ((EntityLiving) entity).setCustomNameTag(p_82487_2_.getDisplayName());
|
|
}
|
|
|
|
- p_82487_2_.splitStack(1);
|
|
+ // p_82487_2_.splitStack(1); // Handled during event processing
|
|
+ // CraftBukkit end
|
|
return p_82487_2_;
|
|
}
|
|
});
|
|
@@ -136,9 +176,43 @@
|
|
double d0 = p_82487_1_.getX() + (double)enumfacing.getFrontOffsetX();
|
|
double d1 = (double)((float)p_82487_1_.getYInt() + 0.2F);
|
|
double d2 = p_82487_1_.getZ() + (double)enumfacing.getFrontOffsetZ();
|
|
- EntityFireworkRocket entityfireworkrocket = new EntityFireworkRocket(p_82487_1_.getWorld(), d0, d1, d2, p_82487_2_);
|
|
+ // CraftBukkit start
|
|
+ World world = p_82487_1_.getWorld();
|
|
+ ItemStack itemstack1 = p_82487_2_.splitStack(1);
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1, d2));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ EntityFireworkRocket entityfireworkrocket = new EntityFireworkRocket(p_82487_1_.getWorld(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), itemstack1);
|
|
p_82487_1_.getWorld().spawnEntityInWorld(entityfireworkrocket);
|
|
- p_82487_2_.splitStack(1);
|
|
+ // p_82487_2_.splitStack(1); // Handled during event processing
|
|
+ // CraftBukkit end
|
|
return p_82487_2_;
|
|
}
|
|
protected void playDispenseSound(IBlockSource p_82485_1_)
|
|
@@ -161,8 +235,42 @@
|
|
double d3 = random.nextGaussian() * 0.05D + (double)enumfacing.getFrontOffsetX();
|
|
double d4 = random.nextGaussian() * 0.05D + (double)enumfacing.getFrontOffsetY();
|
|
double d5 = random.nextGaussian() * 0.05D + (double)enumfacing.getFrontOffsetZ();
|
|
- world.spawnEntityInWorld(new EntitySmallFireball(world, d0, d1, d2, d3, d4, d5));
|
|
- p_82487_2_.splitStack(1);
|
|
+ // CraftBukkit start
|
|
+ ItemStack itemstack1 = p_82487_2_.splitStack(1);
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d3, d4, d5));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ EntitySmallFireball entitysmallfireball = new EntitySmallFireball(world, d0, d1, d2, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ());
|
|
+ entitysmallfireball.projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource((TileEntityDispenser) p_82487_1_.getBlockTileEntity());
|
|
+ world.spawnEntityInWorld(entitysmallfireball);
|
|
+ // p_82487_2_.splitStack(1); // Handled during event processing
|
|
+ // CraftBukkit end
|
|
return p_82487_2_;
|
|
}
|
|
protected void playDispenseSound(IBlockSource p_82485_1_)
|
|
@@ -201,9 +309,41 @@
|
|
d3 = 0.0D;
|
|
}
|
|
|
|
- EntityBoat entityboat = new EntityBoat(world, d0, d1 + d3, d2);
|
|
+ // CraftBukkit start
|
|
+ ItemStack itemstack1 = p_82487_2_.splitStack(1);
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(d0, d1 + d3, d2));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ EntityBoat entityboat = new EntityBoat(world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ());
|
|
+ // CraftBukkit end
|
|
world.spawnEntityInWorld(entityboat);
|
|
- p_82487_2_.splitStack(1);
|
|
+ // p_82487_2_.splitStack(1); // CraftBukkit - handled during event processing
|
|
return p_82487_2_;
|
|
}
|
|
protected void playDispenseSound(IBlockSource p_82485_1_)
|
|
@@ -217,16 +357,67 @@
|
|
private static final String __OBFID = "CL_00001399";
|
|
public ItemStack dispenseStack(IBlockSource p_82487_1_, ItemStack p_82487_2_)
|
|
{
|
|
- ItemBucket itembucket = (ItemBucket)p_82487_2_.getItem();
|
|
+ ItemBucket itembucket = (ItemBucket) p_82487_2_.getItem();
|
|
int i = p_82487_1_.getXInt();
|
|
int j = p_82487_1_.getYInt();
|
|
int k = p_82487_1_.getZInt();
|
|
EnumFacing enumfacing = BlockDispenser.func_149937_b(p_82487_1_.getBlockMetadata());
|
|
+ // CraftBukkit start
|
|
+ World world = p_82487_1_.getWorld();
|
|
+ int x = i + enumfacing.getFrontOffsetX();
|
|
+ int y = j + enumfacing.getFrontOffsetY();
|
|
+ int z = k + enumfacing.getFrontOffsetZ();
|
|
|
|
+ if (world.isAirBlock(x, y, z) || !world.getBlock(x, y, z).getMaterial().isSolid())
|
|
+ {
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(i, j, k);
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(p_82487_2_);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(x, y, z));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ itembucket = (ItemBucket) CraftItemStack.asNMSCopy(event.getItem()).getItem();
|
|
+ }
|
|
+
|
|
+ // CraftBukkit end
|
|
+
|
|
if (itembucket.tryPlaceContainedLiquid(p_82487_1_.getWorld(), i + enumfacing.getFrontOffsetX(), j + enumfacing.getFrontOffsetY(), k + enumfacing.getFrontOffsetZ()))
|
|
{
|
|
- p_82487_2_.func_150996_a(Items.bucket);
|
|
- p_82487_2_.stackSize = 1;
|
|
+ // CraftBukkit start - Handle stacked buckets
|
|
+ Item item = Items.bucket;
|
|
+
|
|
+ if (--p_82487_2_.stackSize == 0)
|
|
+ {
|
|
+ p_82487_2_.func_150996_a(Items.bucket);
|
|
+ p_82487_2_.stackSize = 1;
|
|
+ }
|
|
+ else if (((TileEntityDispenser) p_82487_1_.getBlockTileEntity()).func_146019_a(new ItemStack(item)) < 0)
|
|
+ {
|
|
+ this.field_150841_b.dispense(p_82487_1_, new ItemStack(item));
|
|
+ }
|
|
+
|
|
+ // CraftBukkit end
|
|
return p_82487_2_;
|
|
}
|
|
else
|
|
@@ -266,6 +457,36 @@
|
|
item = Items.lava_bucket;
|
|
}
|
|
|
|
+ // CraftBukkit start
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(p_82487_2_);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(i, j, k));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ // CraftBukkit end
|
|
+
|
|
world.setBlockToAir(i, j, k);
|
|
|
|
if (--p_82487_2_.stackSize == 0)
|
|
@@ -292,16 +513,51 @@
|
|
int i = p_82487_1_.getXInt() + enumfacing.getFrontOffsetX();
|
|
int j = p_82487_1_.getYInt() + enumfacing.getFrontOffsetY();
|
|
int k = p_82487_1_.getZInt() + enumfacing.getFrontOffsetZ();
|
|
+ // CraftBukkit start
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(p_82487_2_);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
|
|
|
- if (world.isAirBlock(i, j, k))
|
|
+ if (!BlockDispenser.eventFired)
|
|
{
|
|
- world.setBlock(i, j, k, Blocks.fire);
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
|
|
- if (p_82487_2_.attemptDamageItem(1, world.rand))
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
{
|
|
- p_82487_2_.stackSize = 0;
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
}
|
|
}
|
|
+
|
|
+ // CraftBukkit end
|
|
+
|
|
+ if (world.isAirBlock(i, j, k))
|
|
+ {
|
|
+ // CraftBukkit start - Ignition by dispensing flint and steel
|
|
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callBlockIgniteEvent(world, i, j, k, p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt()).isCancelled())
|
|
+ {
|
|
+ world.setBlock(i, j, k, Blocks.fire);
|
|
+
|
|
+ if (p_82487_2_.attemptDamageItem(1, world.rand))
|
|
+ {
|
|
+ p_82487_2_.stackSize = 0;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ // CraftBukkit end
|
|
+ }
|
|
else if (world.getBlock(i, j, k) == Blocks.tnt)
|
|
{
|
|
Blocks.tnt.onBlockDestroyedByPlayer(world, i, j, k, 1);
|
|
@@ -339,7 +595,36 @@
|
|
int i = p_82487_1_.getXInt() + enumfacing.getFrontOffsetX();
|
|
int j = p_82487_1_.getYInt() + enumfacing.getFrontOffsetY();
|
|
int k = p_82487_1_.getZInt() + enumfacing.getFrontOffsetZ();
|
|
+ // CraftBukkit start
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asNewCraftStack(p_82487_2_.getItem());
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(0, 0, 0));
|
|
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ // CraftBukkit end
|
|
+
|
|
if (ItemDye.func_150919_a(p_82487_2_, world, i, j, k))
|
|
{
|
|
if (!world.isRemote)
|
|
@@ -381,9 +666,41 @@
|
|
int i = p_82487_1_.getXInt() + enumfacing.getFrontOffsetX();
|
|
int j = p_82487_1_.getYInt() + enumfacing.getFrontOffsetY();
|
|
int k = p_82487_1_.getZInt() + enumfacing.getFrontOffsetZ();
|
|
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double)((float)i + 0.5F), (double)((float)j + 0.5F), (double)((float)k + 0.5F), (EntityLivingBase)null);
|
|
+ // CraftBukkit start
|
|
+ ItemStack itemstack1 = p_82487_2_.splitStack(1);
|
|
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(p_82487_1_.getXInt(), p_82487_1_.getYInt(), p_82487_1_.getZInt());
|
|
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
|
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector(i + 0.5, j + 0.5, k + 0.5));
|
|
+
|
|
+ if (!BlockDispenser.eventFired)
|
|
+ {
|
|
+ world.getServer().getPluginManager().callEvent(event);
|
|
+ }
|
|
+
|
|
+ if (event.isCancelled())
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+
|
|
+ if (!event.getItem().equals(craftItem))
|
|
+ {
|
|
+ p_82487_2_.stackSize++;
|
|
+ // Chain to handler for new item
|
|
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
|
+ IBehaviorDispenseItem ibehaviordispenseitem = (IBehaviorDispenseItem) BlockDispenser.dispenseBehaviorRegistry.getObject(eventStack.getItem());
|
|
+
|
|
+ if (ibehaviordispenseitem != IBehaviorDispenseItem.itemDispenseBehaviorProvider && ibehaviordispenseitem != this)
|
|
+ {
|
|
+ ibehaviordispenseitem.dispense(p_82487_1_, eventStack);
|
|
+ return p_82487_2_;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), (EntityLivingBase) null);
|
|
+ // CraftBukkit end
|
|
world.spawnEntityInWorld(entitytntprimed);
|
|
- --p_82487_2_.stackSize;
|
|
+ // --p_82487_2_.stackSize; // CraftBukkit - handled above
|
|
return p_82487_2_;
|
|
}
|
|
});
|