Update for minor remapping changes.

This commit is contained in:
md_5 2015-07-30 16:56:52 +10:00
parent de5c26123f
commit 9935adc4ed
24 changed files with 135 additions and 189 deletions

View File

@ -2,7 +2,7 @@
+++ b/net/minecraft/server/BlockDispenser.java +++ b/net/minecraft/server/BlockDispenser.java
@@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
public static final BlockStateBoolean TRIGGERED = BlockStateBoolean.of("triggered"); public static final BlockStateBoolean TRIGGERED = BlockStateBoolean.of("triggered");
public static final RegistryDefault<Item, IDispenseBehavior> N = new RegistryDefault(new DispenseBehaviorItem()); public static final RegistryDefault<Item, IDispenseBehavior> REGISTRY = new RegistryDefault(new DispenseBehaviorItem());
protected Random O = new Random(); protected Random O = new Random();
+ public static boolean eventFired = false; // CraftBukkit + public static boolean eventFired = false; // CraftBukkit
@ -10,7 +10,7 @@
super(Material.STONE); super(Material.STONE);
@@ -83,6 +84,7 @@ @@ -83,6 +84,7 @@
if (idispensebehavior != IDispenseBehavior.a) { if (idispensebehavior != IDispenseBehavior.NONE) {
ItemStack itemstack1 = idispensebehavior.a(sourceblock, itemstack); ItemStack itemstack1 = idispensebehavior.a(sourceblock, itemstack);
+ eventFired = false; // CraftBukkit - reset event status + eventFired = false; // CraftBukkit - reset event status

View File

@ -11,23 +11,14 @@
public class BlockDropper extends BlockDispenser { public class BlockDropper extends BlockDispenser {
private final IDispenseBehavior P = new DispenseBehaviorItem(); private final IDispenseBehavior P = new DispenseBehaviorItem();
@@ -14,7 +19,7 @@
return new TileEntityDropper();
}
- protected void dispense(World world, BlockPosition blockposition) {
+ public void dispense(World world, BlockPosition blockposition) { // CraftBukkit - public
SourceBlock sourceblock = new SourceBlock(world, blockposition);
TileEntityDispenser tileentitydispenser = (TileEntityDispenser) sourceblock.getTileEntity();
@@ -38,8 +43,25 @@ @@ -38,8 +43,25 @@
itemstack1 = null; itemstack1 = null;
} }
} else { } else {
- itemstack1 = TileEntityHopper.addItem(iinventory, itemstack.cloneItemStack().a(1), enumdirection.opposite()); - itemstack1 = TileEntityHopper.addItem(iinventory, itemstack.cloneItemStack().cloneAndSubtract(1), enumdirection.opposite());
- if (itemstack1 == null) { - if (itemstack1 == null) {
+ // CraftBukkit start - Fire event when pushing items into other inventories + // CraftBukkit start - Fire event when pushing items into other inventories
+ CraftItemStack oitemstack = CraftItemStack.asCraftMirror(itemstack.cloneItemStack().a(1)); + CraftItemStack oitemstack = CraftItemStack.asCraftMirror(itemstack.cloneItemStack().cloneAndSubtract(1));
+ +
+ org.bukkit.inventory.Inventory destinationInventory; + org.bukkit.inventory.Inventory destinationInventory;
+ // Have to special case large chests as they work oddly + // Have to special case large chests as they work oddly

View File

@ -24,7 +24,7 @@
} }
} else if (!flag && ((Boolean) iblockdata.get(BlockPiston.EXTENDED)).booleanValue()) { } else if (!flag && ((Boolean) iblockdata.get(BlockPiston.EXTENDED)).booleanValue()) {
+ // CraftBukkit start + // CraftBukkit start
+ if (!this.N) { + if (!this.sticky) {
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); + org.bukkit.block.Block block = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
+ BlockPistonRetractEvent event = new BlockPistonRetractEvent(block, ImmutableList.<org.bukkit.block.Block>of(), CraftBlock.notchToBlockFace(enumdirection)); + BlockPistonRetractEvent event = new BlockPistonRetractEvent(block, ImmutableList.<org.bukkit.block.Block>of(), CraftBlock.notchToBlockFace(enumdirection));
+ world.getServer().getPluginManager().callEvent(event); + world.getServer().getPluginManager().callEvent(event);

View File

@ -24,18 +24,18 @@
BlockPortal.Shape blockportal_shape = new BlockPortal.Shape(world, blockposition, EnumDirection.EnumAxis.X); BlockPortal.Shape blockportal_shape = new BlockPortal.Shape(world, blockposition, EnumDirection.EnumAxis.X);
if (blockportal_shape.d() && blockportal_shape.e == 0) { if (blockportal_shape.d() && blockportal_shape.e == 0) {
- blockportal_shape.e(); - blockportal_shape.createPortal();
- return true; - return true;
+ // CraftBukkit start - return portalcreator + // CraftBukkit start - return portalcreator
+ return blockportal_shape.e(); + return blockportal_shape.createPortal();
+ // return true; + // return true;
} else { } else {
BlockPortal.Shape blockportal_shape1 = new BlockPortal.Shape(world, blockposition, EnumDirection.EnumAxis.Z); BlockPortal.Shape blockportal_shape1 = new BlockPortal.Shape(world, blockposition, EnumDirection.EnumAxis.Z);
if (blockportal_shape1.d() && blockportal_shape1.e == 0) { if (blockportal_shape1.d() && blockportal_shape1.e == 0) {
- blockportal_shape1.e(); - blockportal_shape1.createPortal();
- return true; - return true;
+ return blockportal_shape1.e(); + return blockportal_shape1.createPortal();
+ // return true; + // return true;
+ // CraftBukkit end + // CraftBukkit end
} else { } else {
@ -53,9 +53,9 @@
} }
@@ -185,6 +195,7 @@ @@ -185,6 +195,7 @@
private BlockPosition f; private BlockPosition position;
private int g; private int height;
private int h; private int width;
+ java.util.Collection<org.bukkit.block.Block> blocks = new java.util.HashSet<org.bukkit.block.Block>(); // CraftBukkit - add field + java.util.Collection<org.bukkit.block.Block> blocks = new java.util.HashSet<org.bukkit.block.Block>(); // CraftBukkit - add field
public Shape(World world, BlockPosition blockposition, EnumDirection.EnumAxis enumdirection_enumaxis) { public Shape(World world, BlockPosition blockposition, EnumDirection.EnumAxis enumdirection_enumaxis) {
@ -81,7 +81,7 @@
+ blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ())); + blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()));
+ // CraftBukkit end + // CraftBukkit end
} }
} else if (i == this.h - 1) { } else if (i == this.width - 1) {
block = this.a.getType(blockposition.shift(this.c)).getBlock(); block = this.a.getType(blockposition.shift(this.c)).getBlock();
if (block != Blocks.OBSIDIAN) { if (block != Blocks.OBSIDIAN) {
break label56; break label56;
@ -94,31 +94,31 @@
} }
} }
@@ -277,6 +302,11 @@ @@ -277,6 +302,11 @@
if (this.a.getType(this.f.shift(this.c, i).up(this.g)).getBlock() != Blocks.OBSIDIAN) { if (this.a.getType(this.position.shift(this.c, i).up(this.height)).getBlock() != Blocks.OBSIDIAN) {
this.g = 0; this.height = 0;
break; break;
+ // CraftBukkit start - add the block to our list + // CraftBukkit start - add the block to our list
+ } else { + } else {
+ BlockPosition pos = this.f.shift(this.c, i).up(this.g); + BlockPosition pos = this.position.shift(this.c, i).up(this.height);
+ blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ())); + blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()));
+ // CraftBukkit end + // CraftBukkit end
} }
} }
@@ -298,7 +328,27 @@ @@ -298,7 +328,27 @@
return this.f != null && this.h >= 2 && this.h <= 21 && this.g >= 3 && this.g <= 21; return this.position != null && this.width >= 2 && this.width <= 21 && this.height >= 3 && this.height <= 21;
} }
- public void e() { - public void createPortal() {
+ // CraftBukkit start - return boolean + // CraftBukkit start - return boolean
+ public boolean e() { + public boolean createPortal() {
+ org.bukkit.World bworld = this.a.getWorld(); + org.bukkit.World bworld = this.a.getWorld();
+ +
+ // Copy below for loop + // Copy below for loop
+ for (int i = 0; i < this.h; ++i) { + for (int i = 0; i < this.width; ++i) {
+ BlockPosition blockposition = this.f.shift(this.c, i); + BlockPosition blockposition = this.position.shift(this.c, i);
+ +
+ for (int j = 0; j < this.g; ++j) { + for (int j = 0; j < this.height; ++j) {
+ BlockPosition pos = blockposition.up(j); + BlockPosition pos = blockposition.up(j);
+ blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ())); + blocks.add(bworld.getBlockAt(pos.getX(), pos.getY(), pos.getZ()));
+ } + }
@ -131,8 +131,8 @@
+ return false; + return false;
+ } + }
+ // CraftBukkit end + // CraftBukkit end
for (int i = 0; i < this.h; ++i) { for (int i = 0; i < this.width; ++i) {
BlockPosition blockposition = this.f.shift(this.c, i); BlockPosition blockposition = this.position.shift(this.c, i);
@@ -307,6 +357,7 @@ @@ -307,6 +357,7 @@
} }

View File

@ -12,11 +12,11 @@
} }
protected int f(World world, BlockPosition blockposition) { protected int f(World world, BlockPosition blockposition) {
- int i = Math.min(world.a(Entity.class, this.a(blockposition)).size(), this.b); - int i = Math.min(world.a(Entity.class, this.getBoundingBox(blockposition)).size(), this.weight);
+ // CraftBukkit start + // CraftBukkit start
+ //int i = Math.min(world.a(Entity.class, this.a(blockposition)).size(), this.b); + //int i = Math.min(world.a(Entity.class, this.a(blockposition)).size(), this.b);
+ int i = 0; + int i = 0;
+ java.util.Iterator iterator = world.a(Entity.class, this.a(blockposition)).iterator(); + java.util.Iterator iterator = world.a(Entity.class, this.getBoundingBox(blockposition)).iterator();
+ +
+ while (iterator.hasNext()) { + while (iterator.hasNext()) {
+ Entity entity = (Entity) iterator.next(); + Entity entity = (Entity) iterator.next();
@ -36,8 +36,8 @@
+ } + }
+ } + }
+ +
+ i = Math.min(i, this.b); + i = Math.min(i, this.weight);
+ // CraftBukkit end + // CraftBukkit end
if (i > 0) { if (i > 0) {
float f = (float) Math.min(this.b, i) / (float) this.b; float f = (float) Math.min(this.weight, i) / (float) this.weight;

View File

@ -21,16 +21,16 @@
for (i = 0; i < this.getDetectorSnowGolem().b(); ++i) { for (i = 0; i < this.getDetectorSnowGolem().b(); ++i) {
ShapeDetectorBlock shapedetectorblock = shapedetector_shapedetectorcollection.a(0, i, 0); ShapeDetectorBlock shapedetectorblock = shapedetector_shapedetectorcollection.a(0, i, 0);
- world.setTypeAndData(shapedetectorblock.d(), Blocks.AIR.getBlockData(), 2); - world.setTypeAndData(shapedetectorblock.getPosition(), Blocks.AIR.getBlockData(), 2);
+ // CraftBukkit start + // CraftBukkit start
+ // world.setTypeAndData(shapedetectorblock.d(), Blocks.AIR.getBlockData(), 2); + // world.setTypeAndData(shapedetectorblock.d(), Blocks.AIR.getBlockData(), 2);
+ BlockPosition pos = shapedetectorblock.d(); + BlockPosition pos = shapedetectorblock.getPosition();
+ blockList.setTypeId(pos.getX(), pos.getY(), pos.getZ(), 0); + blockList.setTypeId(pos.getX(), pos.getY(), pos.getZ(), 0);
+ // CraftBukkit end + // CraftBukkit end
} }
EntitySnowman entitysnowman = new EntitySnowman(world); EntitySnowman entitysnowman = new EntitySnowman(world);
BlockPosition blockposition1 = shapedetector_shapedetectorcollection.a(0, 2, 0).d(); BlockPosition blockposition1 = shapedetector_shapedetectorcollection.a(0, 2, 0).getPosition();
entitysnowman.setPositionRotation((double) blockposition1.getX() + 0.5D, (double) blockposition1.getY() + 0.05D, (double) blockposition1.getZ() + 0.5D, 0.0F, 0.0F); entitysnowman.setPositionRotation((double) blockposition1.getX() + 0.5D, (double) blockposition1.getY() + 0.05D, (double) blockposition1.getZ() + 0.5D, 0.0F, 0.0F);
- world.addEntity(entitysnowman); - world.addEntity(entitysnowman);
@ -42,17 +42,17 @@
world.addParticle(EnumParticle.SNOW_SHOVEL, (double) blockposition1.getX() + world.random.nextDouble(), (double) blockposition1.getY() + world.random.nextDouble() * 2.5D, (double) blockposition1.getZ() + world.random.nextDouble(), 0.0D, 0.0D, 0.0D, new int[0]); world.addParticle(EnumParticle.SNOW_SHOVEL, (double) blockposition1.getX() + world.random.nextDouble(), (double) blockposition1.getY() + world.random.nextDouble() * 2.5D, (double) blockposition1.getZ() + world.random.nextDouble(), 0.0D, 0.0D, 0.0D, new int[0]);
@@ -61,10 +74,16 @@ @@ -61,10 +74,16 @@
world.update(shapedetectorblock1.d(), Blocks.AIR); world.update(shapedetectorblock1.getPosition(), Blocks.AIR);
} }
+ } // CraftBukkit end + } // CraftBukkit end
} else if ((shapedetector_shapedetectorcollection = this.getDetectorIronGolem().a(world, blockposition)) != null) { } else if ((shapedetector_shapedetectorcollection = this.getDetectorIronGolem().a(world, blockposition)) != null) {
+ BlockStateListPopulator blockList = new BlockStateListPopulator(world.getWorld()); // CraftBukkit - Use BlockStateListPopulator + BlockStateListPopulator blockList = new BlockStateListPopulator(world.getWorld()); // CraftBukkit - Use BlockStateListPopulator
for (i = 0; i < this.getDetectorIronGolem().c(); ++i) { for (i = 0; i < this.getDetectorIronGolem().c(); ++i) {
for (int k = 0; k < this.getDetectorIronGolem().b(); ++k) { for (int k = 0; k < this.getDetectorIronGolem().b(); ++k) {
- world.setTypeAndData(shapedetector_shapedetectorcollection.a(i, k, 0).d(), Blocks.AIR.getBlockData(), 2); - world.setTypeAndData(shapedetector_shapedetectorcollection.a(i, k, 0).getPosition(), Blocks.AIR.getBlockData(), 2);
+ // CraftBukkit start + // CraftBukkit start
+ // world.setTypeAndData(shapedetectorcollection.a(i, k, 0).d(), Blocks.AIR.getBlockData(), 2); + // world.setTypeAndData(shapedetectorcollection.a(i, k, 0).d(), Blocks.AIR.getBlockData(), 2);
+ BlockPosition pos = shapedetector_shapedetectorcollection.a(i, k, 0).d(); + BlockPosition pos = shapedetector_shapedetectorcollection.a(i, k, 0).getPosition();
+ blockList.setTypeId(pos.getX(), pos.getY(), pos.getZ(), 0); + blockList.setTypeId(pos.getX(), pos.getY(), pos.getZ(), 0);
+ // CraftBukkit end + // CraftBukkit end
} }
@ -71,7 +71,7 @@
for (j = 0; j < 120; ++j) { for (j = 0; j < 120; ++j) {
world.addParticle(EnumParticle.SNOWBALL, (double) blockposition2.getX() + world.random.nextDouble(), (double) blockposition2.getY() + world.random.nextDouble() * 3.9D, (double) blockposition2.getZ() + world.random.nextDouble(), 0.0D, 0.0D, 0.0D, new int[0]); world.addParticle(EnumParticle.SNOWBALL, (double) blockposition2.getX() + world.random.nextDouble(), (double) blockposition2.getY() + world.random.nextDouble() * 3.9D, (double) blockposition2.getZ() + world.random.nextDouble(), 0.0D, 0.0D, 0.0D, new int[0]);
@@ -86,6 +108,7 @@ @@ -86,6 +108,7 @@
world.update(shapedetectorblock2.d(), Blocks.AIR); world.update(shapedetectorblock2.getPosition(), Blocks.AIR);
} }
} }
+ } // CraftBukkit end + } // CraftBukkit end

View File

@ -69,10 +69,10 @@
for (i = 0; i < 3; ++i) { for (i = 0; i < 3; ++i) {
ShapeDetectorBlock shapedetectorblock = shapedetector_shapedetectorcollection.a(i, 0, 0); ShapeDetectorBlock shapedetectorblock = shapedetector_shapedetectorcollection.a(i, 0, 0);
- world.setTypeAndData(shapedetectorblock.d(), shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true)), 2); - world.setTypeAndData(shapedetectorblock.getPosition(), shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true)), 2);
+ // CraftBukkit start + // CraftBukkit start
+ // world.setTypeAndData(shapedetectorblock.d(), shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true)), 2); + // world.setTypeAndData(shapedetectorblock.getPosition(), shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true)), 2);
+ BlockPosition pos = shapedetectorblock.d(); + BlockPosition pos = shapedetectorblock.getPosition();
+ IBlockData data = shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true)); + IBlockData data = shapedetectorblock.a().set(BlockSkull.NODROP, Boolean.valueOf(true));
+ blockList.setTypeAndData(pos.getX(), pos.getY(), pos.getZ(), data.getBlock(), data.getBlock().toLegacyData(data), 2); + blockList.setTypeAndData(pos.getX(), pos.getY(), pos.getZ(), data.getBlock(), data.getBlock().toLegacyData(data), 2);
+ // CraftBukkit end + // CraftBukkit end
@ -82,10 +82,10 @@
for (int j = 0; j < shapedetector.b(); ++j) { for (int j = 0; j < shapedetector.b(); ++j) {
ShapeDetectorBlock shapedetectorblock1 = shapedetector_shapedetectorcollection.a(i, j, 0); ShapeDetectorBlock shapedetectorblock1 = shapedetector_shapedetectorcollection.a(i, j, 0);
- world.setTypeAndData(shapedetectorblock1.d(), Blocks.AIR.getBlockData(), 2); - world.setTypeAndData(shapedetectorblock1.getPosition(), Blocks.AIR.getBlockData(), 2);
+ // CraftBukkit start + // CraftBukkit start
+ // world.setTypeAndData(shapedetectorblock1.d(), Blocks.AIR.getBlockData(), 2); + // world.setTypeAndData(shapedetectorblock1.getPosition(), Blocks.AIR.getBlockData(), 2);
+ BlockPosition pos = shapedetectorblock1.d(); + BlockPosition pos = shapedetectorblock1.getPosition();
+ blockList.setTypeAndData(pos.getX(), pos.getY(), pos.getZ(), Blocks.AIR, 0, 2); + blockList.setTypeAndData(pos.getX(), pos.getY(), pos.getZ(), Blocks.AIR, 0, 2);
+ // CraftBukkit end + // CraftBukkit end
} }
@ -111,7 +111,7 @@
for (k = 0; k < 120; ++k) { for (k = 0; k < 120; ++k) {
@@ -178,6 +218,7 @@ @@ -178,6 +218,7 @@
world.update(shapedetectorblock2.d(), Blocks.AIR); world.update(shapedetectorblock2.getPosition(), Blocks.AIR);
} }
} }
+ } // CraftBukkit end + } // CraftBukkit end

View File

@ -28,8 +28,8 @@
@@ -43,16 +54,35 @@ @@ -43,16 +54,35 @@
} }
public void a(World world, BlockPosition blockposition, Entity entity, float f) { public void fallOn(World world, BlockPosition blockposition, Entity entity, float f) {
+ super.a(world, blockposition, entity, f); // CraftBukkit - moved here as game rules / events shouldn't affect fall damage. + super.fallOn(world, blockposition, entity, f); // CraftBukkit - moved here as game rules / events shouldn't affect fall damage.
if (entity instanceof EntityLiving) { if (entity instanceof EntityLiving) {
if (!world.isClientSide && world.random.nextFloat() < f - 0.5F) { if (!world.isClientSide && world.random.nextFloat() < f - 0.5F) {
if (!(entity instanceof EntityHuman) && !world.getGameRules().getBoolean("mobGriefing")) { if (!(entity instanceof EntityHuman) && !world.getGameRules().getBoolean("mobGriefing")) {
@ -57,8 +57,8 @@
world.setTypeUpdate(blockposition, Blocks.DIRT.getBlockData()); world.setTypeUpdate(blockposition, Blocks.DIRT.getBlockData());
} }
- super.a(world, blockposition, entity, f); - super.fallOn(world, blockposition, entity, f);
+ // super.a(world, blockposition, entity, f); // CraftBukkit - moved up + // super.fallOn(world, blockposition, entity, f); // CraftBukkit - moved up
} }
} }

View File

@ -33,23 +33,23 @@
+ org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition2.getX(), blockposition2.getY(), blockposition2.getZ()); + org.bukkit.block.Block bukkitBlock = world.getWorld().getBlockAt(blockposition2.getX(), blockposition2.getY(), blockposition2.getZ());
+ +
if (flag1 && this.c(world.getType(blockposition3).getBlock())) { if (flag1 && this.c(world.getType(blockposition3).getBlock())) {
- world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection1), Boolean.valueOf(true)), 2); - world.setTypeAndData(blockposition2, this.getBlockData().set(getDirection(enumdirection1), Boolean.valueOf(true)), 2);
+ // world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection1), Boolean.valueOf(true)), 2); + // world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection1), Boolean.valueOf(true)), 2);
+ CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(a(enumdirection1), Boolean.valueOf(true)))); + CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(getDirection(enumdirection1), Boolean.valueOf(true))));
} else if (flag2 && this.c(world.getType(blockposition4).getBlock())) { } else if (flag2 && this.c(world.getType(blockposition4).getBlock())) {
- world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection2), Boolean.valueOf(true)), 2); - world.setTypeAndData(blockposition2, this.getBlockData().set(getDirection(enumdirection2), Boolean.valueOf(true)), 2);
+ // world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection2), Boolean.valueOf(true)), 2); + // world.setTypeAndData(blockposition2, this.getBlockData().set(a(enumdirection2), Boolean.valueOf(true)), 2);
+ CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(a(enumdirection2), Boolean.valueOf(true)))); + CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(getDirection(enumdirection2), Boolean.valueOf(true))));
} else if (flag1 && world.isEmpty(blockposition3) && this.c(world.getType(blockposition.shift(enumdirection1)).getBlock())) { } else if (flag1 && world.isEmpty(blockposition3) && this.c(world.getType(blockposition.shift(enumdirection1)).getBlock())) {
- world.setTypeAndData(blockposition3, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2); - world.setTypeAndData(blockposition3, this.getBlockData().set(getDirection(enumdirection.opposite()), Boolean.valueOf(true)), 2);
+ // world.setTypeAndData(blockposition3, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2); + // world.setTypeAndData(blockposition3, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2);
+ bukkitBlock = world.getWorld().getBlockAt(blockposition3.getX(), blockposition3.getY(), blockposition3.getZ()); + bukkitBlock = world.getWorld().getBlockAt(blockposition3.getX(), blockposition3.getY(), blockposition3.getZ());
+ CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)))); + CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(getDirection(enumdirection.opposite()), Boolean.valueOf(true))));
} else if (flag2 && world.isEmpty(blockposition4) && this.c(world.getType(blockposition.shift(enumdirection2)).getBlock())) { } else if (flag2 && world.isEmpty(blockposition4) && this.c(world.getType(blockposition.shift(enumdirection2)).getBlock())) {
- world.setTypeAndData(blockposition4, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2); - world.setTypeAndData(blockposition4, this.getBlockData().set(getDirection(enumdirection.opposite()), Boolean.valueOf(true)), 2);
+ // world.setTypeAndData(blockposition4, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2); + // world.setTypeAndData(blockposition4, this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)), 2);
+ bukkitBlock = world.getWorld().getBlockAt(blockposition4.getX(), blockposition4.getY(), blockposition4.getZ()); + bukkitBlock = world.getWorld().getBlockAt(blockposition4.getX(), blockposition4.getY(), blockposition4.getZ());
+ CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(a(enumdirection.opposite()), Boolean.valueOf(true)))); + CraftEventFactory.handleBlockSpreadEvent(bukkitBlock, source, this, toLegacyData(this.getBlockData().set(getDirection(enumdirection.opposite()), Boolean.valueOf(true))));
} else if (this.c(world.getType(blockposition2.up()).getBlock())) { } else if (this.c(world.getType(blockposition2.up()).getBlock())) {
- world.setTypeAndData(blockposition2, this.getBlockData(), 2); - world.setTypeAndData(blockposition2, this.getBlockData(), 2);
+ // world.setTypeAndData(blockposition2, this.getBlockData(), 2); + // world.setTypeAndData(blockposition2, this.getBlockData(), 2);
@ -57,7 +57,7 @@
} }
+ // CraftBukkit end + // CraftBukkit end
} else if (block.material.k() && block.d()) { } else if (block.material.k() && block.d()) {
world.setTypeAndData(blockposition, iblockdata.set(a(enumdirection), Boolean.valueOf(true)), 2); world.setTypeAndData(blockposition, iblockdata.set(getDirection(enumdirection), Boolean.valueOf(true)), 2);
} }
@@ -257,7 +277,12 @@ @@ -257,7 +277,12 @@
} }

View File

@ -110,12 +110,12 @@
} }
if (j == 1) { if (j == 1) {
- entityhuman.drop(playerinventory.getCarried().a(1), true); - entityhuman.drop(playerinventory.getCarried().cloneAndSubtract(1), true);
- if (playerinventory.getCarried().count == 0) { - if (playerinventory.getCarried().count == 0) {
+ // CraftBukkit start - Store a reference + // CraftBukkit start - Store a reference
+ ItemStack itemstack4 = playerinventory.getCarried(); + ItemStack itemstack4 = playerinventory.getCarried();
+ if (itemstack4.count > 0) { + if (itemstack4.count > 0) {
+ entityhuman.drop(itemstack4.a(1), true); + entityhuman.drop(itemstack4.cloneAndSubtract(1), true);
+ } + }
+ +
+ if (itemstack4.count == 0) { + if (itemstack4.count == 0) {
@ -136,7 +136,7 @@
} else if (slot2.isAllowed(entityhuman)) { } else if (slot2.isAllowed(entityhuman)) {
if (itemstack4 == null) { if (itemstack4 == null) {
@@ -249,7 +315,11 @@ @@ -249,7 +315,11 @@
itemstack4.a(k1); itemstack4.cloneAndSubtract(k1);
if (itemstack4.count == 0) { if (itemstack4.count == 0) {
playerinventory.setCarried((ItemStack) null); playerinventory.setCarried((ItemStack) null);
+ // CraftBukkit start - Update client cursor if we didn't empty it + // CraftBukkit start - Update client cursor if we didn't empty it

View File

@ -7,7 +7,7 @@
+ +
public class ContainerBeacon extends Container { public class ContainerBeacon extends Container {
private IInventory a; private IInventory beacon;
private final ContainerBeacon.SlotBeacon f; private final ContainerBeacon.SlotBeacon f;
+ // CraftBukkit start + // CraftBukkit start
+ private CraftInventoryView bukkitEntity = null; + private CraftInventoryView bukkitEntity = null;
@ -16,7 +16,7 @@
public ContainerBeacon(IInventory iinventory, IInventory iinventory1) { public ContainerBeacon(IInventory iinventory, IInventory iinventory1) {
+ player = (PlayerInventory) iinventory; // CraftBukkit - TODO: check this + player = (PlayerInventory) iinventory; // CraftBukkit - TODO: check this
this.a = iinventory1; this.beacon = iinventory1;
this.a((Slot) (this.f = new ContainerBeacon.SlotBeacon(iinventory1, 0, 136, 110))); this.a((Slot) (this.f = new ContainerBeacon.SlotBeacon(iinventory1, 0, 136, 110)));
byte b0 = 36; byte b0 = 36;
@@ -47,6 +54,7 @@ @@ -47,6 +54,7 @@
@ -24,7 +24,7 @@
public boolean a(EntityHuman entityhuman) { public boolean a(EntityHuman entityhuman) {
+ if (!this.checkReachable) return true; // CraftBukkit + if (!this.checkReachable) return true; // CraftBukkit
return this.a.a(entityhuman); return this.beacon.a(entityhuman);
} }
@@ -110,4 +118,17 @@ @@ -110,4 +118,17 @@
@ -39,7 +39,7 @@
+ return bukkitEntity; + return bukkitEntity;
+ } + }
+ +
+ org.bukkit.craftbukkit.inventory.CraftInventory inventory = new org.bukkit.craftbukkit.inventory.CraftInventoryBeacon((TileEntityBeacon) this.a); // TODO - check this + org.bukkit.craftbukkit.inventory.CraftInventory inventory = new org.bukkit.craftbukkit.inventory.CraftInventoryBeacon((TileEntityBeacon) this.beacon); // TODO - check this
+ bukkitEntity = new CraftInventoryView(this.player.player.getBukkitEntity(), inventory, this); + bukkitEntity = new CraftInventoryView(this.player.player.getBukkitEntity(), inventory, this);
+ return bukkitEntity; + return bukkitEntity;
+ } + }

View File

@ -86,7 +86,7 @@
boolean flag = itemstack.getItem() == Items.BOOK; boolean flag = itemstack.getItem() == Items.BOOK;
if (list != null) { if (list != null) {
- entityhuman.b(j); - entityhuman.enchantDone(j);
+ // CraftBukkit start + // CraftBukkit start
+ Map<org.bukkit.enchantments.Enchantment, Integer> enchants = new java.util.HashMap<org.bukkit.enchantments.Enchantment, Integer>(); + Map<org.bukkit.enchantments.Enchantment, Integer> enchants = new java.util.HashMap<org.bukkit.enchantments.Enchantment, Integer>();
+ for (Object obj : list) { + for (Object obj : list) {
@ -130,7 +130,7 @@
} }
} }
+ entityhuman.b(j); + entityhuman.enchantDone(j);
+ // CraftBukkit end + // CraftBukkit end
+ +
+ // CraftBukkit - TODO: let plugins change this + // CraftBukkit - TODO: let plugins change this

View File

@ -1,6 +1,6 @@
--- a/net/minecraft/server/CraftingManager.java --- a/net/minecraft/server/CraftingManager.java
+++ b/net/minecraft/server/CraftingManager.java +++ b/net/minecraft/server/CraftingManager.java
@@ -9,16 +9,22 @@ @@ -9,10 +9,16 @@
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
@ -17,13 +17,6 @@
public static CraftingManager getInstance() { public static CraftingManager getInstance() {
return CraftingManager.a; return CraftingManager.a;
}
- private CraftingManager() {
+ public CraftingManager() { // PAIL: Public
(new RecipesTools()).a(this);
(new RecipesWeapons()).a(this);
(new RecipeIngots()).a(this);
@@ -167,7 +173,12 @@ @@ -167,7 +173,12 @@
this.registerShapedRecipe(new ItemStack(Blocks.DAYLIGHT_DETECTOR), new Object[] { "GGG", "QQQ", "WWW", Character.valueOf('G'), Blocks.GLASS, Character.valueOf('Q'), Items.QUARTZ, Character.valueOf('W'), Blocks.WOODEN_SLAB}); this.registerShapedRecipe(new ItemStack(Blocks.DAYLIGHT_DETECTOR), new Object[] { "GGG", "QQQ", "WWW", Character.valueOf('G'), Blocks.GLASS, Character.valueOf('Q'), Items.QUARTZ, Character.valueOf('W'), Blocks.WOODEN_SLAB});
this.registerShapedRecipe(new ItemStack(Blocks.HOPPER), new Object[] { "I I", "ICI", " I ", Character.valueOf('I'), Items.IRON_INGOT, Character.valueOf('C'), Blocks.CHEST}); this.registerShapedRecipe(new ItemStack(Blocks.HOPPER), new Object[] { "I I", "ICI", " I ", Character.valueOf('I'), Items.IRON_INGOT, Character.valueOf('C'), Blocks.CHEST});
@ -49,10 +42,10 @@
irecipe = (IRecipe) iterator.next(); irecipe = (IRecipe) iterator.next();
} while (!irecipe.a(inventorycrafting, world)); } while (!irecipe.a(inventorycrafting, world));
- return irecipe.a(inventorycrafting); - return irecipe.craftItem(inventorycrafting);
+ // CraftBukkit start - INVENTORY_PRE_CRAFT event + // CraftBukkit start - INVENTORY_PRE_CRAFT event
+ inventorycrafting.currentRecipe = irecipe; + inventorycrafting.currentRecipe = irecipe;
+ ItemStack result = irecipe.a(inventorycrafting); + ItemStack result = irecipe.craftItem(inventorycrafting);
+ return CraftEventFactory.callPreCraftEvent(inventorycrafting, result, lastCraftView, false); + return CraftEventFactory.callPreCraftEvent(inventorycrafting, result, lastCraftView, false);
+ // CraftBukkit end + // CraftBukkit end
} }

View File

@ -13,11 +13,11 @@
public DispenseBehaviorItem() {} public DispenseBehaviorItem() {}
@@ -17,11 +22,18 @@ @@ -17,11 +22,18 @@
IPosition iposition = BlockDispenser.a(isourceblock); IPosition iposition = BlockDispenser.a(isourceblock);
ItemStack itemstack1 = itemstack.a(1); ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
- a(isourceblock.i(), itemstack1, 6, enumdirection, iposition); - a(isourceblock.getWorld(), itemstack1, 6, enumdirection, iposition);
+ // CraftBukkit start + // CraftBukkit start
+ if (!a(isourceblock.i(), itemstack1, 6, enumdirection, isourceblock)) { + if (!a(isourceblock.getWorld(), itemstack1, 6, enumdirection, isourceblock)) {
+ itemstack.count++; + itemstack.count++;
+ } + }
+ // CraftBukkit end + // CraftBukkit end
@ -58,8 +58,8 @@
+ if (!event.getItem().getType().equals(craftItem.getType())) { + if (!event.getItem().getType().equals(craftItem.getType())) {
+ // Chain to handler for new item + // Chain to handler for new item
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); + ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem()); + IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior.getClass() != DispenseBehaviorItem.class) { + if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior.getClass() != DispenseBehaviorItem.class) {
+ idispensebehavior.a(isourceblock, eventStack); + idispensebehavior.a(isourceblock, eventStack);
+ } else { + } else {
+ world.addEntity(entityitem); + world.addEntity(entityitem);

View File

@ -15,10 +15,10 @@
EnumDirection enumdirection = BlockDispenser.b(isourceblock.f()); EnumDirection enumdirection = BlockDispenser.b(isourceblock.f());
IProjectile iprojectile = this.a(world, iposition); IProjectile iprojectile = this.a(world, iposition);
- iprojectile.shoot((double) enumdirection.getAdjacentX(), (double) ((float) enumdirection.getAdjacentY() + 0.1F), (double) enumdirection.getAdjacentZ(), this.b(), this.a()); - iprojectile.shoot((double) enumdirection.getAdjacentX(), (double) ((float) enumdirection.getAdjacentY() + 0.1F), (double) enumdirection.getAdjacentZ(), this.getPower(), this.a());
+ // iprojectile.shoot((double) enumdirection.getAdjacentX(), (double) ((float) enumdirection.getAdjacentY() + 0.1F), (double) enumdirection.getAdjacentZ(), this.b(), this.a()); + // iprojectile.shoot((double) enumdirection.getAdjacentX(), (double) ((float) enumdirection.getAdjacentY() + 0.1F), (double) enumdirection.getAdjacentZ(), this.b(), this.a());
+ // CraftBukkit start + // 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()); + org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); + CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
+ +
@ -36,18 +36,18 @@
+ itemstack.count++; + itemstack.count++;
+ // Chain to handler for new item + // Chain to handler for new item
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); + ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem()); + IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) { + if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
+ idispensebehavior.a(isourceblock, eventStack); + idispensebehavior.a(isourceblock, eventStack);
+ return itemstack; + return itemstack;
+ } + }
+ } + }
+ +
+ iprojectile.shoot(event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), this.b(), this.a()); + iprojectile.shoot(event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), this.getPower(), this.a());
+ ((Entity) iprojectile).projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource((TileEntityDispenser) isourceblock.getTileEntity()); + ((Entity) iprojectile).projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource((TileEntityDispenser) isourceblock.getTileEntity());
+ // CraftBukkit end + // CraftBukkit end
world.addEntity((Entity) iprojectile); world.addEntity((Entity) iprojectile);
- itemstack.a(1); - itemstack.cloneAndSubtract(1);
+ // itemstack.a(1); // CraftBukkit - Handled during event processing + // itemstack.a(1); // CraftBukkit - Handled during event processing
return itemstack; return itemstack;
} }

View File

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

View File

@ -18,12 +18,8 @@
public class EntityEnderDragon extends EntityInsentient implements IComplex, IMonster { public class EntityEnderDragon extends EntityInsentient implements IComplex, IMonster {
public double a; public double a;
@@ -24,9 +35,10 @@ @@ -27,6 +38,7 @@
public float bv; public Entity target;
public boolean bw;
public boolean bx;
- private Entity bA;
+ public Entity bA; // CraftBukkit - public // PAIL: Target
public int by; public int by;
public EntityEnderCrystal bz; public EntityEnderCrystal bz;
+ private Explosion explosionSource = new Explosion(null, this, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, true); // CraftBukkit - reusable source for CraftTNTPrimed.getSource() + private Explosion explosionSource = new Explosion(null, this, Double.NaN, Double.NaN, Double.NaN, Float.NaN, true, true); // CraftBukkit - reusable source for CraftTNTPrimed.getSource()
@ -57,7 +53,7 @@
} }
if (this.random.nextInt(2) == 0 && !arraylist.isEmpty()) { if (this.random.nextInt(2) == 0 && !arraylist.isEmpty()) {
- this.bA = (Entity) arraylist.get(this.random.nextInt(arraylist.size())); - this.target = (Entity) arraylist.get(this.random.nextInt(arraylist.size()));
+ // CraftBukkit start + // CraftBukkit start
+ Entity target = (Entity) this.world.players.get(this.random.nextInt(this.world.players.size())); + Entity target = (Entity) this.world.players.get(this.random.nextInt(this.world.players.size()));
+ EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), target.getBukkitEntity(), EntityTargetEvent.TargetReason.RANDOM_TARGET); + EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), target.getBukkitEntity(), EntityTargetEvent.TargetReason.RANDOM_TARGET);
@ -65,9 +61,9 @@
+ +
+ if (!event.isCancelled()) { + if (!event.isCancelled()) {
+ if (event.getTarget() == null) { + if (event.getTarget() == null) {
+ this.bA = null; + this.target = null;
+ } else { + } else {
+ this.bA = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle(); + this.target = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle();
+ } + }
+ } + }
+ // CraftBukkit end + // CraftBukkit end

View File

@ -16,17 +16,6 @@
public abstract class EntityInsentient extends EntityLiving { public abstract class EntityInsentient extends EntityLiving {
public int a_; public int a_;
@@ -13,8 +22,8 @@
protected ControllerJump g;
private EntityAIBodyControl b;
protected NavigationAbstract navigation;
- public final PathfinderGoalSelector goalSelector;
- public final PathfinderGoalSelector targetSelector;
+ public PathfinderGoalSelector goalSelector; // PAIL: -final
+ public PathfinderGoalSelector targetSelector; // PAIL: -final
private EntityLiving goalTarget;
private EntitySenses bk;
private ItemStack[] equipment = new ItemStack[5];
@@ -40,6 +49,9 @@ @@ -40,6 +49,9 @@
this.dropChances[i] = 0.085F; this.dropChances[i] = 0.085F;
} }

View File

@ -139,13 +139,12 @@
} }
} }
} }
@@ -197,7 +266,10 @@ @@ -197,7 +266,9 @@
} }
public EntityLiving c() { public EntityLiving getSource() {
- return this.source == null ? null : (this.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) this.source).getSource() : (this.source instanceof EntityLiving ? (EntityLiving) this.source : null)); - return this.source == null ? null : (this.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) this.source).getSource() : (this.source instanceof EntityLiving ? (EntityLiving) this.source : null));
+ // CraftBukkit start - obtain Fireball shooter for explosion tracking + // CraftBukkit start - obtain Fireball shooter for explosion tracking
+ // PAIL: Rename
+ return this.source == null ? null : (this.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) this.source).getSource() : (this.source instanceof EntityLiving ? (EntityLiving) this.source : (this.source instanceof EntityFireball ? ((EntityFireball) this.source).shooter : null))); + return this.source == null ? null : (this.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) this.source).getSource() : (this.source instanceof EntityLiving ? (EntityLiving) this.source : (this.source instanceof EntityFireball ? ((EntityFireball) this.source).shooter : null)));
+ // CraftBukkit end + // CraftBukkit end
} }

View File

@ -64,7 +64,7 @@
this.b.close(chatcomponenttext); this.b.close(chatcomponenttext);
} else { } else {
this.b.a((PacketListener) (new LoginListener(this.a, this.b))); this.b.a((PacketListener) (new LoginListener(this.a, this.b)));
+ ((LoginListener) this.b.getPacketListener()).hostname = packethandshakinginsetprotocol.b + ":" + packethandshakinginsetprotocol.c; // CraftBukkit - set hostname + ((LoginListener) this.b.getPacketListener()).hostname = packethandshakinginsetprotocol.hostname + ":" + packethandshakinginsetprotocol.port; // CraftBukkit - set hostname
} }
break; break;

View File

@ -19,8 +19,8 @@
- ItemStack itemstack1 = itemstack.cloneItemStack(); - ItemStack itemstack1 = itemstack.cloneItemStack();
+ +
+ // CraftBukkit start + // CraftBukkit start
+ ItemStack itemstack1 = itemstack.a(1); + ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
+ World world = isourceblock.i(); + World world = isourceblock.getWorld();
+ org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ()); + org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); + CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
+ +
@ -38,8 +38,8 @@
+ itemstack.count++; + itemstack.count++;
+ // Chain to handler for new item + // Chain to handler for new item
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); + ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem()); + IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) { + if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
+ idispensebehavior.a(isourceblock, eventStack); + idispensebehavior.a(isourceblock, eventStack);
+ return itemstack; + return itemstack;
+ } + }

View File

@ -18,7 +18,7 @@
- EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.a(world, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).b); - EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.a(world, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).b);
+ // CraftBukkit start + // CraftBukkit start
+ // EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.a(world, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).b); + // EntityMinecartAbstract entityminecartabstract = EntityMinecartAbstract.a(world, d0, d1 + d3, d2, ((ItemMinecart) itemstack.getItem()).b);
+ ItemStack itemstack1 = itemstack.a(1); + ItemStack itemstack1 = itemstack.cloneAndSubtract(1);
+ org.bukkit.block.Block block2 = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ()); + org.bukkit.block.Block block2 = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
+ CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1); + CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
+ +
@ -36,8 +36,8 @@
+ itemstack.count++; + itemstack.count++;
+ // Chain to handler for new item + // Chain to handler for new item
+ ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem()); + ItemStack eventStack = CraftItemStack.asNMSCopy(event.getItem());
+ IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.N.get(eventStack.getItem()); + IDispenseBehavior idispensebehavior = (IDispenseBehavior) BlockDispenser.REGISTRY.get(eventStack.getItem());
+ if (idispensebehavior != IDispenseBehavior.a && idispensebehavior != this) { + if (idispensebehavior != IDispenseBehavior.NONE && idispensebehavior != this) {
+ idispensebehavior.a(isourceblock, eventStack); + idispensebehavior.a(isourceblock, eventStack);
+ return itemstack; + return itemstack;
+ } + }
@ -51,7 +51,7 @@
} }
world.addEntity(entityminecartabstract); world.addEntity(entityminecartabstract);
- itemstack.a(1); - itemstack.cloneAndSubtract(1);
+ // itemstack.a(1); // CraftBukkit - handled during event processing + // itemstack.a(1); // CraftBukkit - handled during event processing
+ // CraftBukkit end + // CraftBukkit end
return itemstack; return itemstack;

View File

@ -1,22 +0,0 @@
--- a/net/minecraft/server/PacketHandshakingInSetProtocol.java
+++ b/net/minecraft/server/PacketHandshakingInSetProtocol.java
@@ -5,8 +5,8 @@
public class PacketHandshakingInSetProtocol implements Packet<PacketHandshakingInListener> {
private int a;
- private String b;
- private int c;
+ public String b; // CraftBukkit - public // PAIL: hostname
+ public int c; // CraftBukkit - public // PAIL: port
private EnumProtocol d;
public PacketHandshakingInSetProtocol() {}
@@ -36,8 +36,4 @@
public int b() {
return this.a;
}
-
- public void a(PacketListener packetlistener) {
- this.a((PacketHandshakingInListener) packetlistener);
- }
}

View File

@ -413,7 +413,7 @@ public class CraftEventFactory {
EntityDamageEvent event; EntityDamageEvent event;
if (damager == null) { if (damager == null) {
event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.BLOCK_EXPLOSION, modifiers, modifierFunctions); event = new EntityDamageByBlockEvent(null, entity.getBukkitEntity(), DamageCause.BLOCK_EXPLOSION, modifiers, modifierFunctions);
} else if (entity instanceof EntityEnderDragon && ((EntityEnderDragon) entity).bA == damager) { } else if (entity instanceof EntityEnderDragon && ((EntityEnderDragon) entity).target == damager) {
event = new EntityDamageEvent(entity.getBukkitEntity(), DamageCause.ENTITY_EXPLOSION, modifiers, modifierFunctions); event = new EntityDamageEvent(entity.getBukkitEntity(), DamageCause.ENTITY_EXPLOSION, modifiers, modifierFunctions);
} else { } else {
if (damager instanceof org.bukkit.entity.TNTPrimed) { if (damager instanceof org.bukkit.entity.TNTPrimed) {