@@ -16,12 +16,12 @@
|
||||
double d0 = isourceblock.getX() + (double) enumdirection.getAdjacentX();
|
||||
double d1 = (double) ((float) isourceblock.getBlockPosition().getY() + 0.2F);
|
||||
double d2 = isourceblock.getZ() + (double) enumdirection.getAdjacentZ();
|
||||
- Entity entity = ItemMonsterEgg.a(isourceblock.i(), itemstack.getData(), d0, d1, d2);
|
||||
+ // Entity entity = ItemMonsterEgg.a(isourceblock.i(), itemstack.getData(), d0, d1, d2);
|
||||
- Entity entity = ItemMonsterEgg.a(isourceblock.getWorld(), itemstack.getData(), d0, d1, d2);
|
||||
+ // Entity entity = ItemMonsterEgg.a(isourceblock.getWorld(), itemstack.getData(), d0, d1, d2);
|
||||
+
|
||||
+ // CraftBukkit start
|
||||
+ World world = isourceblock.i();
|
||||
+ ItemStack itemstack1 = itemstack.a(1);
|
||||
+ World world = isourceblock.getWorld();
|
||||
+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
||||
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
|
||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
+
|
||||
@@ -39,8 +39,8 @@
|
||||
+ itemstack.count++;
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -48,13 +48,13 @@
|
||||
+
|
||||
+ itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+
|
||||
+ Entity entity = ItemMonsterEgg.spawnCreature(isourceblock.i(), itemstack.getData(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DISPENSE_EGG);
|
||||
+ Entity entity = ItemMonsterEgg.spawnCreature(isourceblock.getWorld(), itemstack.getData(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DISPENSE_EGG);
|
||||
|
||||
if (entity instanceof EntityLiving && itemstack.hasName()) {
|
||||
((EntityInsentient) entity).setCustomName(itemstack.getName());
|
||||
}
|
||||
|
||||
- itemstack.a(1);
|
||||
- itemstack.cloneAndSubtract(1);
|
||||
+ // itemstack.a(1); // Handled during event processing
|
||||
+ // CraftBukkit end
|
||||
return itemstack;
|
||||
@@ -64,10 +64,10 @@
|
||||
double d0 = isourceblock.getX() + (double) enumdirection.getAdjacentX();
|
||||
double d1 = (double) ((float) isourceblock.getBlockPosition().getY() + 0.2F);
|
||||
double d2 = isourceblock.getZ() + (double) enumdirection.getAdjacentZ();
|
||||
- EntityFireworks entityfireworks = new EntityFireworks(isourceblock.i(), d0, d1, d2, itemstack);
|
||||
- EntityFireworks entityfireworks = new EntityFireworks(isourceblock.getWorld(), d0, d1, d2, itemstack);
|
||||
+ // CraftBukkit start
|
||||
+ World world = isourceblock.i();
|
||||
+ ItemStack itemstack1 = itemstack.a(1);
|
||||
+ World world = isourceblock.getWorld();
|
||||
+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
||||
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
|
||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
+
|
||||
@@ -85,18 +85,18 @@
|
||||
+ itemstack.count++;
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ itemstack1 = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ EntityFireworks entityfireworks = new EntityFireworks(isourceblock.i(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), itemstack1);
|
||||
+ EntityFireworks entityfireworks = new EntityFireworks(isourceblock.getWorld(), event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), itemstack1);
|
||||
|
||||
isourceblock.i().addEntity(entityfireworks);
|
||||
- itemstack.a(1);
|
||||
isourceblock.getWorld().addEntity(entityfireworks);
|
||||
- itemstack.cloneAndSubtract(1);
|
||||
+ // itemstack.a(1); // Handled during event processing
|
||||
+ // CraftBukkit end
|
||||
return itemstack;
|
||||
@@ -107,9 +107,9 @@
|
||||
double d5 = random.nextGaussian() * 0.05D + (double) enumdirection.getAdjacentZ();
|
||||
|
||||
- world.addEntity(new EntitySmallFireball(world, d0, d1, d2, d3, d4, d5));
|
||||
- itemstack.a(1);
|
||||
- itemstack.cloneAndSubtract(1);
|
||||
+ // CraftBukkit start
|
||||
+ ItemStack itemstack1 = itemstack.a(1);
|
||||
+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
||||
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
|
||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
+
|
||||
@@ -127,8 +127,8 @@
|
||||
+ itemstack.count++;
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -150,7 +150,7 @@
|
||||
- EntityBoat entityboat = new EntityBoat(world, d0, d1 + d3, d2);
|
||||
+ // EntityBoat entityboat = new EntityBoat(world, d0, d1 + d3, d2);
|
||||
+ // CraftBukkit start
|
||||
+ ItemStack itemstack1 = itemstack.a(1);
|
||||
+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
||||
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
|
||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
+
|
||||
@@ -168,8 +168,8 @@
|
||||
+ itemstack.count++;
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -179,7 +179,7 @@
|
||||
+ // CraftBukkit end
|
||||
|
||||
world.addEntity(entityboat);
|
||||
- itemstack.a(1);
|
||||
- itemstack.cloneAndSubtract(1);
|
||||
+ // itemstack.a(1); // CraftBukkit - handled during event processing
|
||||
return itemstack;
|
||||
}
|
||||
@@ -189,7 +189,7 @@
|
||||
BlockPosition blockposition = isourceblock.getBlockPosition().shift(BlockDispenser.b(isourceblock.f()));
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ World world = isourceblock.i();
|
||||
+ World world = isourceblock.getWorld();
|
||||
+ int x = blockposition.getX();
|
||||
+ int y = blockposition.getY();
|
||||
+ int z = blockposition.getZ();
|
||||
@@ -209,8 +209,8 @@
|
||||
+ if (!event.getItem().equals(craftItem)) {
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -220,7 +220,7 @@
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
if (itembucket.a(isourceblock.i(), blockposition)) {
|
||||
if (itembucket.a(isourceblock.getWorld(), blockposition)) {
|
||||
- itemstack.setItem(Items.BUCKET);
|
||||
- itemstack.count = 1;
|
||||
+ // CraftBukkit start - Handle stacked buckets
|
||||
@@ -255,8 +255,8 @@
|
||||
+ if (!event.getItem().equals(craftItem)) {
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -267,7 +267,7 @@
|
||||
if (--itemstack.count == 0) {
|
||||
itemstack.setItem(item);
|
||||
@@ -215,11 +402,39 @@
|
||||
World world = isourceblock.i();
|
||||
World world = isourceblock.getWorld();
|
||||
BlockPosition blockposition = isourceblock.getBlockPosition().shift(BlockDispenser.b(isourceblock.f()));
|
||||
|
||||
+ // CraftBukkit start
|
||||
@@ -286,8 +286,8 @@
|
||||
+ if (!event.getItem().equals(craftItem)) {
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -310,7 +310,7 @@
|
||||
Blocks.TNT.postBreak(world, blockposition, Blocks.TNT.getBlockData().set(BlockTNT.EXPLODE, Boolean.valueOf(true)));
|
||||
world.setAir(blockposition);
|
||||
@@ -247,6 +462,30 @@
|
||||
World world = isourceblock.i();
|
||||
World world = isourceblock.getWorld();
|
||||
BlockPosition blockposition = isourceblock.getBlockPosition().shift(BlockDispenser.b(isourceblock.f()));
|
||||
|
||||
+ // CraftBukkit start
|
||||
@@ -329,8 +329,8 @@
|
||||
+ if (!event.getItem().equals(craftItem)) {
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
@@ -342,13 +342,13 @@
|
||||
world.triggerEffect(2005, blockposition, 0);
|
||||
@@ -274,11 +513,40 @@
|
||||
protected ItemStack b(ISourceBlock isourceblock, ItemStack itemstack) {
|
||||
World world = isourceblock.i();
|
||||
World world = isourceblock.getWorld();
|
||||
BlockPosition blockposition = isourceblock.getBlockPosition().shift(BlockDispenser.b(isourceblock.f()));
|
||||
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D, (EntityLiving) null);
|
||||
+ // EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D, (EntityLiving) null);
|
||||
+
|
||||
+ // CraftBukkit start
|
||||
+ ItemStack itemstack1 = itemstack.a(1);
|
||||
+ ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
|
||||
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
|
||||
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
|
||||
+
|
||||
@@ -366,8 +366,8 @@
|
||||
+ itemstack.count++;
|
||||
+ // Chain to handler for new item
|
||||
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) {
|
||||
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
|
||||
+ if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
|
||||
+ idispensebehavior.a(isourceblock, eventStack);
|
||||
+ return itemstack;
|
||||
+ }
|
||||
|
||||
Reference in New Issue
Block a user