From 483a878b8bcf1feb789cb5fd9374d0a060cc4d8a Mon Sep 17 00:00:00 2001 From: Erik Broes Date: Wed, 20 Apr 2011 19:05:14 +0200 Subject: [PATCH] Update for 1.4_00_01 -- if you bypassed Bukkit, you will most likely break. --- pom.xml | 34 +- .../net/minecraft/server/BlockBloodStone.java | 4 +- .../net/minecraft/server/BlockButton.java | 70 ++- .../net/minecraft/server/BlockCactus.java | 18 +- .../net/minecraft/server/BlockDispenser.java | 46 +- .../java/net/minecraft/server/BlockDoor.java | 57 +- .../java/net/minecraft/server/BlockFire.java | 30 +- .../net/minecraft/server/BlockFlowing.java | 22 +- .../net/minecraft/server/BlockLeaves.java | 8 +- .../java/net/minecraft/server/BlockLever.java | 54 +- .../minecraft/server/BlockPressurePlate.java | 32 +- .../net/minecraft/server/BlockPumpkin.java | 14 +- .../minecraft/server/BlockRedstoneTorch.java | 61 +- .../minecraft/server/BlockRedstoneWire.java | 69 +-- .../java/net/minecraft/server/BlockSign.java | 9 +- .../java/net/minecraft/server/BlockSoil.java | 42 +- .../net/minecraft/server/BlockStationary.java | 8 +- src/main/java/net/minecraft/server/Chunk.java | 207 +++---- .../minecraft/server/ChunkProviderServer.java | 162 +++-- .../server/ConsoleCommandHandler.java | 186 +++--- .../minecraft/server/ConsoleLogManager.java | 3 +- .../java/net/minecraft/server/Entity.java | 162 ++--- .../net/minecraft/server/EntityArrow.java | 60 +- .../java/net/minecraft/server/EntityBoat.java | 41 +- .../java/net/minecraft/server/EntityCow.java | 4 +- .../net/minecraft/server/EntityCreature.java | 93 ++- .../net/minecraft/server/EntityCreeper.java | 38 +- .../java/net/minecraft/server/EntityEgg.java | 68 +- .../net/minecraft/server/EntityFireball.java | 42 +- .../java/net/minecraft/server/EntityFish.java | 88 +-- .../net/minecraft/server/EntityHuman.java | 124 ++-- .../java/net/minecraft/server/EntityItem.java | 53 +- .../net/minecraft/server/EntityLiving.java | 88 +-- .../net/minecraft/server/EntityMinecart.java | 177 +++--- .../net/minecraft/server/EntityMonster.java | 32 +- .../net/minecraft/server/EntityPigZombie.java | 46 +- .../net/minecraft/server/EntityPlayer.java | 113 ++-- .../net/minecraft/server/EntitySkeleton.java | 6 +- .../net/minecraft/server/EntitySnowball.java | 58 +- .../net/minecraft/server/EntitySpider.java | 10 +- .../net/minecraft/server/EntityTNTPrimed.java | 16 +- .../net/minecraft/server/EntityTracker.java | 18 +- .../minecraft/server/EntityTrackerEntry.java | 188 +++--- .../net/minecraft/server/EntityZombie.java | 4 +- .../java/net/minecraft/server/Explosion.java | 144 ++--- .../java/net/minecraft/server/IInventory.java | 12 +- .../server/InventoryCraftResult.java | 26 +- .../minecraft/server/InventoryCrafting.java | 40 +- .../minecraft/server/InventoryLargeChest.java | 34 +- .../net/minecraft/server/InventoryPlayer.java | 160 ++--- .../java/net/minecraft/server/ItemBed.java | 6 +- .../java/net/minecraft/server/ItemBlock.java | 90 +-- .../java/net/minecraft/server/ItemBoat.java | 20 +- .../java/net/minecraft/server/ItemBucket.java | 46 +- .../java/net/minecraft/server/ItemDoor.java | 12 +- .../minecraft/server/ItemFlintAndSteel.java | 8 +- .../java/net/minecraft/server/ItemHoe.java | 16 +- .../minecraft/server/ItemInWorldManager.java | 97 ++- .../net/minecraft/server/ItemMinecart.java | 2 +- .../net/minecraft/server/ItemRedstone.java | 4 +- .../java/net/minecraft/server/ItemReed.java | 24 +- .../java/net/minecraft/server/ItemSeeds.java | 10 +- .../java/net/minecraft/server/ItemSign.java | 6 +- .../java/net/minecraft/server/ItemStack.java | 18 +- .../net/minecraft/server/MinecraftServer.java | 208 +++---- .../net/minecraft/server/NetLoginHandler.java | 67 +- .../minecraft/server/NetServerHandler.java | 556 +++++++++-------- .../net/minecraft/server/NetworkManager.java | 53 +- .../java/net/minecraft/server/Packet.java | 3 +- .../net/minecraft/server/PlayerInstance.java | 102 +-- .../net/minecraft/server/PlayerManager.java | 22 +- .../net/minecraft/server/PropertyManager.java | 29 +- .../server/ServerConfigurationManager.java | 218 ++++--- src/main/java/net/minecraft/server/Slot.java | 24 +- .../minecraft/server/ThreadCommandReader.java | 14 +- .../minecraft/server/ThreadLoginVerifier.java | 107 ++-- .../net/minecraft/server/TileEntityChest.java | 56 +- .../minecraft/server/TileEntityDispenser.java | 60 +- .../minecraft/server/TileEntityFurnace.java | 128 ++-- .../server/TileEntityMobSpawner.java | 64 +- src/main/java/net/minecraft/server/World.java | 584 +++++++++--------- .../java/net/minecraft/server/WorldData.java | 16 +- .../net/minecraft/server/WorldGenBigTree.java | 10 +- .../net/minecraft/server/WorldGenForest.java | 6 +- .../net/minecraft/server/WorldGenTaiga1.java | 6 +- .../net/minecraft/server/WorldGenTaiga2.java | 6 +- .../net/minecraft/server/WorldGenTrees.java | 6 +- .../net/minecraft/server/WorldManager.java | 14 +- .../net/minecraft/server/WorldServer.java | 54 +- .../org/bukkit/craftbukkit/CraftChunk.java | 22 +- .../org/bukkit/craftbukkit/CraftServer.java | 60 +- .../org/bukkit/craftbukkit/CraftWorld.java | 142 ++--- .../bukkit/craftbukkit/block/CraftBlock.java | 54 +- .../bukkit/craftbukkit/block/CraftChest.java | 2 +- .../block/CraftCreatureSpawner.java | 14 +- .../craftbukkit/block/CraftDispenser.java | 4 +- .../craftbukkit/block/CraftFurnace.java | 10 +- .../craftbukkit/block/CraftNoteBlock.java | 6 +- .../bukkit/craftbukkit/block/CraftSign.java | 8 +- .../craftbukkit/entity/CraftCreature.java | 10 +- .../craftbukkit/entity/CraftEntity.java | 16 +- .../bukkit/craftbukkit/entity/CraftItem.java | 4 +- .../craftbukkit/entity/CraftLivingEntity.java | 10 +- .../craftbukkit/entity/CraftMinecart.java | 4 +- .../craftbukkit/entity/CraftPlayer.java | 56 +- .../entity/CraftPoweredMinecart.java | 3 +- .../bukkit/craftbukkit/entity/CraftSheep.java | 8 +- .../bukkit/craftbukkit/entity/CraftSlime.java | 2 +- .../craftbukkit/event/CraftEventFactory.java | 6 +- .../craftbukkit/inventory/CraftInventory.java | 36 +- .../inventory/CraftInventoryPlayer.java | 12 +- .../craftbukkit/inventory/CraftItemStack.java | 2 +- .../craftbukkit/inventory/CraftSlot.java | 6 +- .../craftbukkit/scheduler/CraftScheduler.java | 2 +- .../craftbukkit/util/LongHashtable.java | 8 +- .../util/ServerShutdownThread.java | 2 +- 116 files changed, 3155 insertions(+), 3207 deletions(-) diff --git a/pom.xml b/pom.xml index 28b90568b3..3a3d2f2c5b 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ org.bukkit minecraft-server - 1.4 + 1.4_00_01 jar compile @@ -47,36 +47,11 @@ net.sf.jopt-simple jopt-simple 3.2 - jar - compile jline jline 0.9.94 - jar - compile - - - org.xerial - sqlite-jdbc - 3.7.2 - jar - compile - - - mysql - mysql-connector-java - 5.1.14 - jar - compile - - - org.avaje - ebean - 2.7.3 - jar - provided @@ -149,13 +124,6 @@ shade - - - - junit:junit - - - diff --git a/src/main/java/net/minecraft/server/BlockBloodStone.java b/src/main/java/net/minecraft/server/BlockBloodStone.java index 9b2c0bafa7..5148d3f59f 100644 --- a/src/main/java/net/minecraft/server/BlockBloodStone.java +++ b/src/main/java/net/minecraft/server/BlockBloodStone.java @@ -13,8 +13,8 @@ public class BlockBloodStone extends Block { } // Craftbukkit start - public void a(World world, int i, int j, int k, int l) { - if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].c()) { + public void doPhysics(World world, int i, int j, int k, int l) { + if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].isPowerSource()) { CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftServer server = ((WorldServer) world).getServer(); org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k); diff --git a/src/main/java/net/minecraft/server/BlockButton.java b/src/main/java/net/minecraft/server/BlockButton.java index 9ed938e964..3a36bb9d1a 100644 --- a/src/main/java/net/minecraft/server/BlockButton.java +++ b/src/main/java/net/minecraft/server/BlockButton.java @@ -28,11 +28,11 @@ public class BlockButton extends Block { return false; } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { return world.d(i - 1, j, k) ? true : (world.d(i + 1, j, k) ? true : (world.d(i, j, k - 1) ? true : world.d(i, j, k + 1))); } - public void d(World world, int i, int j, int k, int l) { + public void postPlace(World world, int i, int j, int k, int l) { int i1 = world.getData(i, j, k); int j1 = i1 & 8; @@ -49,14 +49,14 @@ public class BlockButton extends Block { i1 = this.g(world, i, j, k); } - world.c(i, j, k, i1 + j1); + world.setData(i, j, k, i1 + j1); } private int g(World world, int i, int j, int k) { return world.d(i - 1, j, k) ? 1 : (world.d(i + 1, j, k) ? 2 : (world.d(i, j, k - 1) ? 3 : (world.d(i, j, k + 1) ? 4 : 1))); } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { if (this.h(world, i, j, k)) { int i1 = world.getData(i, j, k) & 7; boolean flag = false; @@ -79,15 +79,15 @@ public class BlockButton extends Block { if (flag) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } } } private boolean h(World world, int i, int j, int k) { - if (!this.a(world, i, j, k)) { + if (!this.canPlace(world, i, j, k)) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); return false; } else { return true; @@ -119,10 +119,10 @@ public class BlockButton extends Block { } public void b(World world, int i, int j, int k, EntityHuman entityhuman) { - this.a(world, i, j, k, entityhuman); + this.interact(world, i, j, k, entityhuman); } - public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { int l = world.getData(i, j, k); int i1 = l & 7; int j1 = 8 - (l & 8); @@ -144,20 +144,20 @@ public class BlockButton extends Block { } // CraftBukkit end - world.c(i, j, k, i1 + j1); + world.setData(i, j, k, i1 + j1); world.b(i, j, k, i, j, k); - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); - world.h(i, j, k, this.id); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); + world.applyPhysics(i, j, k, this.id); if (i1 == 1) { - world.h(i - 1, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, this.id); + world.applyPhysics(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } world.c(i, j, k, this.id, this.b()); @@ -165,27 +165,27 @@ public class BlockButton extends Block { } } - public void b(World world, int i, int j, int k) { + public void remove(World world, int i, int j, int k) { int l = world.getData(i, j, k); if ((l & 8) > 0) { - world.h(i, j, k, this.id); + world.applyPhysics(i, j, k, this.id); int i1 = l & 7; if (i1 == 1) { - world.h(i - 1, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, this.id); + world.applyPhysics(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } } - super.b(world, i, j, k); + super.remove(world, i, j, k); } public boolean b(IBlockAccess iblockaccess, int i, int j, int k, int l) { @@ -204,7 +204,7 @@ public class BlockButton extends Block { } } - public boolean c() { + public boolean isPowerSource() { return true; } @@ -217,28 +217,30 @@ public class BlockButton extends Block { CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftServer server = ((WorldServer) world).getServer(); CraftBlock block = (CraftBlock) craftWorld.getBlockAt(i, j, k); + BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, 1, 0); server.getPluginManager().callEvent(eventRedstone); + if (eventRedstone.getNewCurrent() > 0) return; // CraftBukkit end - world.c(i, j, k, l & 7); - world.h(i, j, k, this.id); + world.setData(i, j, k, l & 7); + world.applyPhysics(i, j, k, this.id); int i1 = l & 7; if (i1 == 1) { - world.h(i - 1, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, this.id); + world.applyPhysics(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); world.b(i, j, k, i, j, k); } } diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java index 90aab767fa..c187615e53 100644 --- a/src/main/java/net/minecraft/server/BlockCactus.java +++ b/src/main/java/net/minecraft/server/BlockCactus.java @@ -28,10 +28,10 @@ public class BlockCactus extends Block { int i1 = world.getData(i, j, k); if (i1 == 15) { - world.e(i, j + 1, k, this.id); - world.c(i, j, k, 0); + world.setTypeId(i, j + 1, k, this.id); + world.setData(i, j, k, 0); } else { - world.c(i, j, k, i1 + 1); + world.setData(i, j, k, i1 + 1); } } } @@ -51,14 +51,14 @@ public class BlockCactus extends Block { return false; } - public boolean a(World world, int i, int j, int k) { - return !super.a(world, i, j, k) ? false : this.f(world, i, j, k); + public boolean canPlace(World world, int i, int j, int k) { + return !super.canPlace(world, i, j, k) ? false : this.f(world, i, j, k); } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { if (!this.f(world, i, j, k)) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } } @@ -91,11 +91,11 @@ public class BlockCactus extends Block { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - entity.a((Entity) null, event.getDamage()); + entity.damageEntity((Entity) null, event.getDamage()); } return; } // CraftBukkit end - entity.a((Entity) null, 1); + entity.damageEntity((Entity) null, 1); } } diff --git a/src/main/java/net/minecraft/server/BlockDispenser.java b/src/main/java/net/minecraft/server/BlockDispenser.java index 24abbf9ff4..9adce396aa 100644 --- a/src/main/java/net/minecraft/server/BlockDispenser.java +++ b/src/main/java/net/minecraft/server/BlockDispenser.java @@ -45,14 +45,14 @@ public class BlockDispenser extends BlockContainer { b0 = 4; } - world.c(i, j, k, b0); + world.setData(i, j, k, b0); } public int a(int i) { return i == 1 ? this.textureId + 17 : (i == 0 ? this.textureId + 17 : (i == 3 ? this.textureId + 1 : this.textureId)); } - public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { if (world.isStatic) { return true; } else { @@ -64,7 +64,7 @@ public class BlockDispenser extends BlockContainer { } // CraftBukkit - private->public - public void b(World world, int i, int j, int k, Random random) { + public void dispense(World world, int i, int j, int k, Random random) { int l = world.getData(i, j, k); float f = 0.0F; float f1 = 0.0F; @@ -86,7 +86,7 @@ public class BlockDispenser extends BlockContainer { double d2 = (double) k + (double) f1 * 0.5D + 0.5D; if (itemstack == null) { - world.a((double) i, (double) j, (double) k, "random.click", 1.0F, 1.2F); + world.makeSound((double) i, (double) j, (double) k, "random.click", 1.0F, 1.2F); } else { double d3; @@ -94,20 +94,20 @@ public class BlockDispenser extends BlockContainer { EntityArrow entityarrow = new EntityArrow(world, d0, d1, d2); entityarrow.a((double) f, 0.10000000149011612D, (double) f1, 1.1F, 6.0F); - world.a((Entity) entityarrow); - world.a((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); + world.addEntity(entityarrow); + world.makeSound((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); } else if (itemstack.id == Item.EGG.id) { EntityEgg entityegg = new EntityEgg(world, d0, d1, d2); entityegg.a((double) f, 0.10000000149011612D, (double) f1, 1.1F, 6.0F); - world.a((Entity) entityegg); - world.a((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); + world.addEntity(entityegg); + world.makeSound((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); } else if (itemstack.id == Item.SNOW_BALL.id) { EntitySnowball entitysnowball = new EntitySnowball(world, d0, d1, d2); entitysnowball.a((double) f, 0.10000000149011612D, (double) f1, 1.1F, 6.0F); - world.a((Entity) entitysnowball); - world.a((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); + world.addEntity(entitysnowball); + world.makeSound((double) i, (double) j, (double) k, "random.bow", 1.0F, 1.2F); } else { EntityItem entityitem = new EntityItem(world, d0, d1 - 0.3D, d2, itemstack); @@ -118,8 +118,8 @@ public class BlockDispenser extends BlockContainer { entityitem.motX += random.nextGaussian() * 0.007499999832361937D * 6.0D; entityitem.motY += random.nextGaussian() * 0.007499999832361937D * 6.0D; entityitem.motZ += random.nextGaussian() * 0.007499999832361937D * 6.0D; - world.a((Entity) entityitem); - world.a((double) i, (double) j, (double) k, "random.click", 1.0F, 1.0F); + world.addEntity(entityitem); + world.makeSound((double) i, (double) j, (double) k, "random.click", 1.0F, 1.0F); } for (int i1 = 0; i1 < 10; ++i1) { @@ -136,9 +136,9 @@ public class BlockDispenser extends BlockContainer { } } - public void a(World world, int i, int j, int k, int l) { - if (l > 0 && Block.byId[l].c()) { - boolean flag = world.p(i, j, k) || world.p(i, j + 1, k); + public void doPhysics(World world, int i, int j, int k, int l) { + if (l > 0 && Block.byId[l].isPowerSource()) { + boolean flag = world.isBlockIndirectlyPowered(i, j, k) || world.isBlockIndirectlyPowered(i, j + 1, k); if (flag) { world.c(i, j, k, this.id, this.b()); @@ -147,8 +147,8 @@ public class BlockDispenser extends BlockContainer { } public void a(World world, int i, int j, int k, Random random) { - if (world.p(i, j, k) || world.p(i, j + 1, k)) { - this.b(world, i, j, k, random); + if (world.isBlockIndirectlyPowered(i, j, k) || world.isBlockIndirectlyPowered(i, j + 1, k)) { + this.dispense(world, i, j, k, random); } } @@ -156,23 +156,23 @@ public class BlockDispenser extends BlockContainer { return new TileEntityDispenser(); } - public void a(World world, int i, int j, int k, EntityLiving entityliving) { - int l = MathHelper.b((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; + public void postPlace(World world, int i, int j, int k, EntityLiving entityliving) { + int l = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; if (l == 0) { - world.c(i, j, k, 2); + world.setData(i, j, k, 2); } if (l == 1) { - world.c(i, j, k, 5); + world.setData(i, j, k, 5); } if (l == 2) { - world.c(i, j, k, 3); + world.setData(i, j, k, 3); } if (l == 3) { - world.c(i, j, k, 4); + world.setData(i, j, k, 4); } } } diff --git a/src/main/java/net/minecraft/server/BlockDoor.java b/src/main/java/net/minecraft/server/BlockDoor.java index fea5066040..6a1f8342be 100644 --- a/src/main/java/net/minecraft/server/BlockDoor.java +++ b/src/main/java/net/minecraft/server/BlockDoor.java @@ -51,7 +51,7 @@ public class BlockDoor extends Block { } public AxisAlignedBB d(World world, int i, int j, int k) { - this.a((IBlockAccess) world, i, j, k); + this.a(world, i, j, k); return super.d(world, i, j, k); } @@ -81,10 +81,10 @@ public class BlockDoor extends Block { } public void b(World world, int i, int j, int k, EntityHuman entityhuman) { - this.a(world, i, j, k, entityhuman); + this.interact(world, i, j, k, entityhuman); } - public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { if (this.material == Material.ORE) { return true; } else { @@ -92,21 +92,21 @@ public class BlockDoor extends Block { if ((l & 8) != 0) { if (world.getTypeId(i, j - 1, k) == this.id) { - this.a(world, i, j - 1, k, entityhuman); + this.interact(world, i, j - 1, k, entityhuman); } return true; } else { if (world.getTypeId(i, j + 1, k) == this.id) { - world.c(i, j + 1, k, (l ^ 4) + 8); + world.setData(i, j + 1, k, (l ^ 4) + 8); } - world.c(i, j, k, l ^ 4); + world.setData(i, j, k, l ^ 4); world.b(i, j - 1, k, i, j, k); if (Math.random() < 0.5D) { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.k.nextFloat() * 0.1F + 0.9F); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.random.nextFloat() * 0.1F + 0.9F); } else { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.k.nextFloat() * 0.1F + 0.9F); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.random.nextFloat() * 0.1F + 0.9F); } return true; @@ -114,56 +114,56 @@ public class BlockDoor extends Block { } } - public void a(World world, int i, int j, int k, boolean flag) { + public void setDoor(World world, int i, int j, int k, boolean flag) { int l = world.getData(i, j, k); if ((l & 8) != 0) { if (world.getTypeId(i, j - 1, k) == this.id) { - this.a(world, i, j - 1, k, flag); + this.setDoor(world, i, j - 1, k, flag); } } else { boolean flag1 = (world.getData(i, j, k) & 4) > 0; if (flag1 != flag) { if (world.getTypeId(i, j + 1, k) == this.id) { - world.c(i, j + 1, k, (l ^ 4) + 8); + world.setData(i, j + 1, k, (l ^ 4) + 8); } - world.c(i, j, k, l ^ 4); + world.setData(i, j, k, l ^ 4); world.b(i, j - 1, k, i, j, k); if (Math.random() < 0.5D) { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.k.nextFloat() * 0.1F + 0.9F); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.random.nextFloat() * 0.1F + 0.9F); } else { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.k.nextFloat() * 0.1F + 0.9F); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.random.nextFloat() * 0.1F + 0.9F); } } } } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { int i1 = world.getData(i, j, k); if ((i1 & 8) != 0) { if (world.getTypeId(i, j - 1, k) != this.id) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } - if (l > 0 && Block.byId[l].c()) { - this.a(world, i, j - 1, k, l); + if (l > 0 && Block.byId[l].isPowerSource()) { + this.doPhysics(world, i, j - 1, k, l); } } else { boolean flag = false; if (world.getTypeId(i, j + 1, k) != this.id) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); flag = true; } if (!world.d(i, j - 1, k)) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); flag = true; if (world.getTypeId(i, j + 1, k) == this.id) { - world.e(i, j + 1, k, 0); + world.setTypeId(i, j + 1, k, 0); } } @@ -171,8 +171,8 @@ public class BlockDoor extends Block { if (!world.isStatic) { this.a_(world, i, j, k, i1); } - } else if (l > 0 && Block.byId[l].c()) { - boolean flag1 = world.p(i, j, k) || world.p(i, j + 1, k); + } else if (l > 0 && Block.byId[l].isPowerSource()) { + boolean flag1 = world.isBlockIndirectlyPowered(i, j, k) || world.isBlockIndirectlyPowered(i, j + 1, k); // Craftbukkit start CraftWorld craftWorld = ((WorldServer) world).getWorld(); @@ -185,8 +185,11 @@ public class BlockDoor extends Block { BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, (world.getData(i, j, k) & 4) > 0 ? 15: 0, power); server.getPluginManager().callEvent(eventRedstone); - this.a(world, i, j, k, eventRedstone.getNewCurrent() > 0); + + flag1 = eventRedstone.getNewCurrent() > 0; // Craftbukkit end + + this.setDoor(world, i, j, k, flag1); } } } @@ -196,7 +199,7 @@ public class BlockDoor extends Block { } public MovingObjectPosition a(World world, int i, int j, int k, Vec3D vec3d, Vec3D vec3d1) { - this.a((IBlockAccess) world, i, j, k); + this.a(world, i, j, k); return super.a(world, i, j, k, vec3d, vec3d1); } @@ -204,7 +207,7 @@ public class BlockDoor extends Block { return (i & 4) == 0 ? i - 1 & 3 : i & 3; } - public boolean a(World world, int i, int j, int k) { - return j >= 127 ? false : world.d(i, j - 1, k) && super.a(world, i, j, k) && super.a(world, i, j + 1, k); + public boolean canPlace(World world, int i, int j, int k) { + return j >= 127 ? false : world.d(i, j - 1, k) && super.canPlace(world, i, j, k) && super.canPlace(world, i, j + 1, k); } } diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java index b3cfc9e8ba..aed5742272 100644 --- a/src/main/java/net/minecraft/server/BlockFire.java +++ b/src/main/java/net/minecraft/server/BlockFire.java @@ -53,17 +53,16 @@ public class BlockFire extends Block { int l = world.getData(i, j, k); if (l < 15) { - world.c(i, j, k, l + 1); + world.setData(i, j, k, l + 1); world.c(i, j, k, this.id, this.b()); } if (!flag && !this.g(world, i, j, k)) { if (!world.d(i, j - 1, k) || l > 3) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } - // CraftBukkit - Cast to IBlockAccess - } else if (!flag && !this.b((IBlockAccess) world, i, j - 1, k) && l == 15 && random.nextInt(4) == 0) { - world.e(i, j, k, 0); + } else if (!flag && !this.b(world, i, j - 1, k) && l == 15 && random.nextInt(4) == 0) { + world.setTypeId(i, j, k, 0); } else { if (l % 2 == 0 && l > 2) { this.a(world, i + 1, j, k, 300, random); @@ -106,7 +105,7 @@ public class BlockFire extends Block { } // CraftBukkit end - world.e(i1, k1, j1, this.id); + world.setTypeId(i1, k1, j1, this.id); } } } @@ -142,21 +141,18 @@ public class BlockFire extends Block { // CraftBukkit end if (random.nextInt(2) == 0) { - world.e(i, j, k, this.id); + world.setTypeId(i, j, k, this.id); } else { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } if (flag) { - Block.TNT.b(world, i, j, k, 0); + Block.TNT.postBreak(world, i, j, k, 0); } } } - // CraftBukkit start -- fix cast to IBlockAccess - private boolean g(World world1, int i, int j, int k) { - IBlockAccess world = (IBlockAccess) world1; - // CraftBukkit end + private boolean g(World world, int i, int j, int k) { return this.b(world, i + 1, j, k) ? true : (this.b(world, i - 1, j, k) ? true : (this.b(world, i, j - 1, k) ? true : (this.b(world, i, j + 1, k) ? true : (this.b(world, i, j, k - 1) ? true : this.b(world, i, j, k + 1))))); } @@ -191,20 +187,20 @@ public class BlockFire extends Block { return i1 > l ? i1 : l; } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { return world.d(i, j - 1, k) || this.g(world, i, j, k); } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { if (!world.d(i, j - 1, k) && !this.g(world, i, j, k)) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } } public void e(World world, int i, int j, int k) { if (world.getTypeId(i, j - 1, k) != Block.OBSIDIAN.id || !Block.PORTAL.a_(world, i, j, k)) { if (!world.d(i, j - 1, k) && !this.g(world, i, j, k)) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } else { world.c(i, j, k, this.id, this.b()); } diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java index c7d78b9b11..9848abad23 100644 --- a/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java @@ -23,9 +23,9 @@ public class BlockFlowing extends BlockFluids { private void i(World world, int i, int j, int k) { int l = world.getData(i, j, k); - world.setTypeIdAndData(i, j, k, this.id + 1, l); + world.setRawTypeIdAndData(i, j, k, this.id + 1, l); world.b(i, j, k, i, j, k); - world.g(i, j, k); + world.notify(i, j, k); } public void a(World world, int i, int j, int k, Random random) { @@ -38,7 +38,7 @@ public class BlockFlowing extends BlockFluids { int l = this.g(world, i, j, k); byte b0 = 1; - if (this.material == Material.LAVA && !world.m.d) { + if (this.material == Material.LAVA && !world.worldProvider.d) { b0 = 2; } @@ -85,11 +85,11 @@ public class BlockFlowing extends BlockFluids { if (i1 != l) { l = i1; if (i1 < 0) { - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } else { - world.c(i, j, k, i1); + world.setData(i, j, k, i1); world.c(i, j, k, this.id, this.b()); - world.h(i, j, k, this.id); + world.applyPhysics(i, j, k, this.id); } } else if (flag) { this.i(world, i, j, k); @@ -107,9 +107,9 @@ public class BlockFlowing extends BlockFluids { if (!event.isCancelled()) { if (l >= 8) { - world.b(i, j - 1, k, this.id, l); + world.setTypeIdAndData(i, j - 1, k, this.id, l); } else { - world.b(i, j - 1, k, this.id, l + 8); + world.setTypeIdAndData(i, j - 1, k, this.id, l + 8); } } // CraftBukkit end @@ -137,7 +137,7 @@ public class BlockFlowing extends BlockFluids { } if (!event.isCancelled()) { - this.f(world, i + currentFace.getModX(), j, k + currentFace.getModZ(), i1); + this.flow(world, i + currentFace.getModX(), j, k + currentFace.getModZ(), i1); } } index++; @@ -146,7 +146,7 @@ public class BlockFlowing extends BlockFluids { } } - private void f(World world, int i, int j, int k, int l) { + private void flow(World world, int i, int j, int k, int l) { if (this.l(world, i, j, k)) { int i1 = world.getTypeId(i, j, k); @@ -158,7 +158,7 @@ public class BlockFlowing extends BlockFluids { } } - world.b(i, j, k, this.id, l); + world.setTypeIdAndData(i, j, k, this.id, l); } } diff --git a/src/main/java/net/minecraft/server/BlockLeaves.java b/src/main/java/net/minecraft/server/BlockLeaves.java index bd1a330d5b..05a45eb3a4 100644 --- a/src/main/java/net/minecraft/server/BlockLeaves.java +++ b/src/main/java/net/minecraft/server/BlockLeaves.java @@ -19,7 +19,7 @@ public class BlockLeaves extends BlockLeavesBase { this.a(true); } - public void b(World world, int i, int j, int k) { + public void remove(World world, int i, int j, int k) { byte b0 = 1; int l = b0 + 1; @@ -32,7 +32,7 @@ public class BlockLeaves extends BlockLeavesBase { if (l1 == Block.LEAVES.id) { int i2 = world.getData(i + i1, j + j1, k + k1); - world.d(i + i1, j + j1, k + k1, i2 | 4); + world.setRawData(i + i1, j + j1, k + k1, i2 | 4); } } } @@ -114,7 +114,7 @@ public class BlockLeaves extends BlockLeavesBase { l1 = this.a[k1 * j1 + k1 * b1 + k1]; if (l1 >= 0) { - world.c(i, j, k, l & -5); + world.setData(i, j, k, l & -5); } else { this.g(world, i, j, k); } @@ -133,7 +133,7 @@ public class BlockLeaves extends BlockLeavesBase { // CraftBukkit end this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } public int a(Random random) { diff --git a/src/main/java/net/minecraft/server/BlockLever.java b/src/main/java/net/minecraft/server/BlockLever.java index 71b8def732..aee41afa01 100644 --- a/src/main/java/net/minecraft/server/BlockLever.java +++ b/src/main/java/net/minecraft/server/BlockLever.java @@ -21,17 +21,17 @@ public class BlockLever extends Block { return false; } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { return world.d(i - 1, j, k) ? true : (world.d(i + 1, j, k) ? true : (world.d(i, j, k - 1) ? true : (world.d(i, j, k + 1) ? true : world.d(i, j - 1, k)))); } - public void d(World world, int i, int j, int k, int l) { + public void postPlace(World world, int i, int j, int k, int l) { int i1 = world.getData(i, j, k); int j1 = i1 & 8; i1 &= 7; if (l == 1 && world.d(i, j - 1, k)) { - i1 = 5 + world.k.nextInt(2); + i1 = 5 + world.random.nextInt(2); } if (l == 2 && world.d(i, j, k + 1)) { @@ -50,10 +50,10 @@ public class BlockLever extends Block { i1 = 1; } - world.c(i, j, k, i1 + j1); + world.setData(i, j, k, i1 + j1); } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { if (this.g(world, i, j, k)) { int i1 = world.getData(i, j, k) & 7; boolean flag = false; @@ -80,15 +80,15 @@ public class BlockLever extends Block { if (flag) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } } } private boolean g(World world, int i, int j, int k) { - if (!this.a(world, i, j, k)) { + if (!this.canPlace(world, i, j, k)) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); return false; } else { return true; @@ -114,10 +114,10 @@ public class BlockLever extends Block { } public void b(World world, int i, int j, int k, EntityHuman entityhuman) { - this.a(world, i, j, k, entityhuman); + this.interact(world, i, j, k, entityhuman); } - public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { if (world.isStatic) { return true; } else { @@ -140,47 +140,47 @@ public class BlockLever extends Block { } // CraftBukkit end - world.c(i, j, k, i1 + j1); + world.setData(i, j, k, i1 + j1); world.b(i, j, k, i, j, k); - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, j1 > 0 ? 0.6F : 0.5F); - world.h(i, j, k, this.id); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, j1 > 0 ? 0.6F : 0.5F); + world.applyPhysics(i, j, k, this.id); if (i1 == 1) { - world.h(i - 1, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, this.id); + world.applyPhysics(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } return true; } } - public void b(World world, int i, int j, int k) { + public void remove(World world, int i, int j, int k) { int l = world.getData(i, j, k); if ((l & 8) > 0) { - world.h(i, j, k, this.id); + world.applyPhysics(i, j, k, this.id); int i1 = l & 7; if (i1 == 1) { - world.h(i - 1, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, this.id); + world.applyPhysics(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } } - super.b(world, i, j, k); + super.remove(world, i, j, k); } public boolean b(IBlockAccess iblockaccess, int i, int j, int k, int l) { @@ -199,7 +199,7 @@ public class BlockLever extends Block { } } - public boolean c() { + public boolean isPowerSource() { return true; } } diff --git a/src/main/java/net/minecraft/server/BlockPressurePlate.java b/src/main/java/net/minecraft/server/BlockPressurePlate.java index b48bb22bfe..44efad96f8 100644 --- a/src/main/java/net/minecraft/server/BlockPressurePlate.java +++ b/src/main/java/net/minecraft/server/BlockPressurePlate.java @@ -40,13 +40,13 @@ public class BlockPressurePlate extends Block { return false; } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { return world.d(i, j - 1, k); } public void e(World world, int i, int j, int k) {} - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { boolean flag = false; if (!world.d(i, j - 1, k)) { @@ -55,7 +55,7 @@ public class BlockPressurePlate extends Block { if (flag) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } } @@ -129,19 +129,19 @@ public class BlockPressurePlate extends Block { // CraftBukkit end if (flag1 && !flag) { - world.c(i, j, k, 1); - world.h(i, j, k, this.id); - world.h(i, j - 1, k, this.id); + world.setData(i, j, k, 1); + world.applyPhysics(i, j, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); world.b(i, j, k, i, j, k); - world.a((double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); + world.makeSound((double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); } if (!flag1 && flag) { - world.c(i, j, k, 0); - world.h(i, j, k, this.id); - world.h(i, j - 1, k, this.id); + world.setData(i, j, k, 0); + world.applyPhysics(i, j, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); world.b(i, j, k, i, j, k); - world.a((double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); + world.makeSound((double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); } if (flag1) { @@ -149,15 +149,15 @@ public class BlockPressurePlate extends Block { } } - public void b(World world, int i, int j, int k) { + public void remove(World world, int i, int j, int k) { int l = world.getData(i, j, k); if (l > 0) { - world.h(i, j, k, this.id); - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); } - super.b(world, i, j, k); + super.remove(world, i, j, k); } public void a(IBlockAccess iblockaccess, int i, int j, int k) { @@ -179,7 +179,7 @@ public class BlockPressurePlate extends Block { return world.getData(i, j, k) == 0 ? false : l == 1; } - public boolean c() { + public boolean isPowerSource() { return true; } } diff --git a/src/main/java/net/minecraft/server/BlockPumpkin.java b/src/main/java/net/minecraft/server/BlockPumpkin.java index 0de996b4c5..ccec76bab8 100644 --- a/src/main/java/net/minecraft/server/BlockPumpkin.java +++ b/src/main/java/net/minecraft/server/BlockPumpkin.java @@ -1,10 +1,8 @@ package net.minecraft.server; -// CraftBukkit start import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.event.block.BlockRedstoneEvent; -// CraftBukkit end public class BlockPumpkin extends Block { @@ -41,21 +39,21 @@ public class BlockPumpkin extends Block { super.e(world, i, j, k); } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { int l = world.getTypeId(i, j, k); return (l == 0 || Block.byId[l].material.isLiquid()) && world.d(i, j - 1, k); } - public void a(World world, int i, int j, int k, EntityLiving entityliving) { - int l = MathHelper.b((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; + public void postPlace(World world, int i, int j, int k, EntityLiving entityliving) { + int l = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; - world.c(i, j, k, l); + world.setData(i, j, k, l); } // Craftbukkit start - public void a(World world, int i, int j, int k, int l) { - if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].c()) { + public void doPhysics(World world, int i, int j, int k, int l) { + if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].isPowerSource()) { CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftServer server = ((WorldServer) world).getServer(); org.bukkit.block.Block block = craftWorld.getBlockAt(i, j, k); diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java index 35b458410d..dadad29386 100644 --- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java +++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java @@ -12,7 +12,7 @@ import org.bukkit.plugin.PluginManager; public class BlockRedstoneTorch extends BlockTorch { - private boolean a = false; + private boolean isOn = false; private static List b = new ArrayList(); public int a(int i, int j) { @@ -21,7 +21,7 @@ public class BlockRedstoneTorch extends BlockTorch { private boolean a(World world, int i, int j, int k, boolean flag) { if (flag) { - b.add(new RedstoneUpdateInfo(i, j, k, world.l())); + b.add(new RedstoneUpdateInfo(i, j, k, world.getTime())); } int l = 0; @@ -42,7 +42,7 @@ public class BlockRedstoneTorch extends BlockTorch { protected BlockRedstoneTorch(int i, int j, boolean flag) { super(i, j); - this.a = flag; + this.isOn = flag; this.a(true); } @@ -55,29 +55,29 @@ public class BlockRedstoneTorch extends BlockTorch { super.e(world, i, j, k); } - if (this.a) { - world.h(i, j - 1, k, this.id); - world.h(i, j + 1, k, this.id); - world.h(i - 1, j, k, this.id); - world.h(i + 1, j, k, this.id); - world.h(i, j, k - 1, this.id); - world.h(i, j, k + 1, this.id); + if (this.isOn) { + world.applyPhysics(i, j - 1, k, this.id); + world.applyPhysics(i, j + 1, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); + world.applyPhysics(i, j, k - 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } } - public void b(World world, int i, int j, int k) { - if (this.a) { - world.h(i, j - 1, k, this.id); - world.h(i, j + 1, k, this.id); - world.h(i - 1, j, k, this.id); - world.h(i + 1, j, k, this.id); - world.h(i, j, k - 1, this.id); - world.h(i, j, k + 1, this.id); + public void remove(World world, int i, int j, int k) { + if (this.isOn) { + world.applyPhysics(i, j - 1, k, this.id); + world.applyPhysics(i, j + 1, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); + world.applyPhysics(i, j, k - 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); } } public boolean b(IBlockAccess iblockaccess, int i, int j, int k, int l) { - if (!this.a) { + if (!this.isOn) { return false; } else { int i1 = iblockaccess.getData(i, j, k); @@ -89,24 +89,24 @@ public class BlockRedstoneTorch extends BlockTorch { private boolean g(World world, int i, int j, int k) { int l = world.getData(i, j, k); - return l == 5 && world.j(i, j - 1, k, 0) ? true : (l == 3 && world.j(i, j, k - 1, 2) ? true : (l == 4 && world.j(i, j, k + 1, 3) ? true : (l == 1 && world.j(i - 1, j, k, 4) ? true : l == 2 && world.j(i + 1, j, k, 5)))); + return l == 5 && world.isBlockFaceIndirectlyPowered(i, j - 1, k, 0) ? true : (l == 3 && world.isBlockFaceIndirectlyPowered(i, j, k - 1, 2) ? true : (l == 4 && world.isBlockFaceIndirectlyPowered(i, j, k + 1, 3) ? true : (l == 1 && world.isBlockFaceIndirectlyPowered(i - 1, j, k, 4) ? true : l == 2 && world.isBlockFaceIndirectlyPowered(i + 1, j, k, 5)))); } public void a(World world, int i, int j, int k, Random random) { boolean flag = this.g(world, i, j, k); - while (b.size() > 0 && world.l() - ((RedstoneUpdateInfo) b.get(0)).d > 100L) { + while (b.size() > 0 && world.getTime() - ((RedstoneUpdateInfo) b.get(0)).d > 100L) { b.remove(0); } // CraftBukkit start CraftBlock block = (CraftBlock) ((WorldServer) world).getWorld().getBlockAt(i, j, k); PluginManager man = ((WorldServer) world).getServer().getPluginManager(); - int oldCurrent = this.a ? 15 : 0; + int oldCurrent = this.isOn ? 15 : 0; BlockRedstoneEvent event = new BlockRedstoneEvent(block, oldCurrent, oldCurrent); // CraftBukkit end - if (this.a) { + if (this.isOn) { if (flag) { // CraftBukkit start if (oldCurrent != 0) { @@ -117,9 +117,9 @@ public class BlockRedstoneTorch extends BlockTorch { } } // CraftBukkit end - world.b(i, j, k, Block.REDSTONE_TORCH_OFF.id, world.getData(i, j, k)); + world.setTypeIdAndData(i, j, k, Block.REDSTONE_TORCH_OFF.id, world.getData(i, j, k)); if (this.a(world, i, j, k, true)) { - world.a((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), "random.fizz", 0.5F, 2.6F + (world.k.nextFloat() - world.k.nextFloat()) * 0.8F); + world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), "random.fizz", 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); for (int l = 0; l < 5; ++l) { double d0 = (double) i + random.nextDouble() * 0.6D + 0.2D; @@ -140,25 +140,24 @@ public class BlockRedstoneTorch extends BlockTorch { } } // CraftBukkit end - world.b(i, j, k, Block.REDSTONE_TORCH_ON.id, world.getData(i, j, k)); + world.setTypeIdAndData(i, j, k, Block.REDSTONE_TORCH_ON.id, world.getData(i, j, k)); } } - public void a(World world, int i, int j, int k, int l) { - super.a(world, i, j, k, l); + public void doPhysics(World world, int i, int j, int k, int l) { + super.doPhysics(world, i, j, k, l); world.c(i, j, k, this.id, this.b()); } public boolean c(World world, int i, int j, int k, int l) { - // CraftBukkit -- cast to IBlockAccess - return l == 0 ? this.b((IBlockAccess) world, i, j, k, l) : false; + return l == 0 ? this.b(world, i, j, k, l) : false; } public int a(int i, Random random) { return Block.REDSTONE_TORCH_ON.id; } - public boolean c() { + public boolean isPowerSource() { return true; } } diff --git a/src/main/java/net/minecraft/server/BlockRedstoneWire.java b/src/main/java/net/minecraft/server/BlockRedstoneWire.java index 254399fa67..d9d473fbed 100644 --- a/src/main/java/net/minecraft/server/BlockRedstoneWire.java +++ b/src/main/java/net/minecraft/server/BlockRedstoneWire.java @@ -32,7 +32,7 @@ public class BlockRedstoneWire extends Block { return false; } - public boolean a(World world, int i, int j, int k) { + public boolean canPlace(World world, int i, int j, int k) { return world.d(i, j - 1, k); } @@ -45,7 +45,7 @@ public class BlockRedstoneWire extends Block { for (int l = 0; l < arraylist.size(); ++l) { ChunkPosition chunkposition = (ChunkPosition) arraylist.get(l); - world.h(chunkposition.a, chunkposition.b, chunkposition.c, this.id); + world.applyPhysics(chunkposition.x, chunkposition.y, chunkposition.z, this.id); } } @@ -54,7 +54,7 @@ public class BlockRedstoneWire extends Block { int l1 = 0; this.a = false; - boolean flag = world.p(i, j, k); + boolean flag = world.isBlockIndirectlyPowered(i, j, k); this.a = true; int i2; @@ -84,15 +84,15 @@ public class BlockRedstoneWire extends Block { } if (j2 != l || j != i1 || k2 != j1) { - l1 = this.f(world, j2, j, k2, l1); + l1 = this.getPower(world, j2, j, k2, l1); } if (world.d(j2, j, k2) && !world.d(i, j + 1, k)) { if (j2 != l || j + 1 != i1 || k2 != j1) { - l1 = this.f(world, j2, j + 1, k2, l1); + l1 = this.getPower(world, j2, j + 1, k2, l1); } } else if (!world.d(j2, j, k2) && (j2 != l || j - 1 != i1 || k2 != j1)) { - l1 = this.f(world, j2, j - 1, k2, l1); + l1 = this.getPower(world, j2, j - 1, k2, l1); } } @@ -114,7 +114,7 @@ public class BlockRedstoneWire extends Block { if (k1 != l1) { world.h = true; - world.c(i, j, k, l1); + world.setData(i, j, k, l1); world.b(i, j, k, i, j, k); world.h = false; @@ -144,7 +144,7 @@ public class BlockRedstoneWire extends Block { } boolean flag1 = false; - int i3 = this.f(world, j2, j, k2, -1); + int i3 = this.getPower(world, j2, j, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { @@ -155,7 +155,7 @@ public class BlockRedstoneWire extends Block { this.a(world, j2, j, k2, i, j, k); } - i3 = this.f(world, j2, l2, k2, -1); + i3 = this.getPower(world, j2, l2, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { --l1; @@ -180,13 +180,13 @@ public class BlockRedstoneWire extends Block { private void h(World world, int i, int j, int k) { if (world.getTypeId(i, j, k) == this.id) { - world.h(i, j, k, this.id); - world.h(i - 1, j, k, this.id); - world.h(i + 1, j, k, this.id); - world.h(i, j, k - 1, this.id); - world.h(i, j, k + 1, this.id); - world.h(i, j - 1, k, this.id); - world.h(i, j + 1, k, this.id); + world.applyPhysics(i, j, k, this.id); + world.applyPhysics(i - 1, j, k, this.id); + world.applyPhysics(i + 1, j, k, this.id); + world.applyPhysics(i, j, k - 1, this.id); + world.applyPhysics(i, j, k + 1, this.id); + world.applyPhysics(i, j - 1, k, this.id); + world.applyPhysics(i, j + 1, k, this.id); } } @@ -194,8 +194,8 @@ public class BlockRedstoneWire extends Block { super.e(world, i, j, k); if (!world.isStatic) { this.g(world, i, j, k); - world.h(i, j + 1, k, this.id); - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j + 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); this.h(world, i - 1, j, k); this.h(world, i + 1, j, k); this.h(world, i, j, k - 1); @@ -226,11 +226,11 @@ public class BlockRedstoneWire extends Block { } } - public void b(World world, int i, int j, int k) { - super.b(world, i, j, k); + public void remove(World world, int i, int j, int k) { + super.remove(world, i, j, k); if (!world.isStatic) { - world.h(i, j + 1, k, this.id); - world.h(i, j - 1, k, this.id); + world.applyPhysics(i, j + 1, k, this.id); + world.applyPhysics(i, j - 1, k, this.id); this.g(world, i, j, k); this.h(world, i - 1, j, k); this.h(world, i + 1, j, k); @@ -262,8 +262,8 @@ public class BlockRedstoneWire extends Block { } } - // Craftbukkit private-> public - public int f(World world, int i, int j, int k, int l) { + // Craftbukkit private->public + public int getPower(World world, int i, int j, int k, int l) { if (world.getTypeId(i, j, k) != this.id) { return l; } else { @@ -273,21 +273,21 @@ public class BlockRedstoneWire extends Block { } } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { if (!world.isStatic) { int i1 = world.getData(i, j, k); - boolean flag = this.a(world, i, j, k); + boolean flag = this.canPlace(world, i, j, k); if (!flag) { this.a_(world, i, j, k, i1); - world.e(i, j, k, 0); - } else - // Craftbukkit - if ((Block.byId[l] != null && Block.byId[l].c()) || Block.DIODE_OFF.id == l || Block.DIODE_ON.id == l) { + world.setTypeId(i, j, k, 0); + } else { + // Craftbukkit + if ((Block.byId[l] != null && Block.byId[l].isPowerSource()) || Block.DIODE_OFF.id == l || Block.DIODE_ON.id == l) this.g(world, i, j, k); } - super.a(world, i, j, k, l); + super.doPhysics(world, i, j, k, l); } } @@ -296,8 +296,7 @@ public class BlockRedstoneWire extends Block { } public boolean c(World world, int i, int j, int k, int l) { - // CraftBukkit -- cast to IBlockAccess - return !this.a ? false : this.b((IBlockAccess) world, i, j, k, l); + return !this.a ? false : this.b(world, i, j, k, l); } public boolean b(IBlockAccess iblockaccess, int i, int j, int k, int l) { @@ -335,13 +334,13 @@ public class BlockRedstoneWire extends Block { } } - public boolean c() { + public boolean isPowerSource() { return this.a; } public static boolean b(IBlockAccess iblockaccess, int i, int j, int k) { int l = iblockaccess.getTypeId(i, j, k); - return l == Block.REDSTONE_WIRE.id ? true : (l == 0 ? false : Block.byId[l].c()); + return l == Block.REDSTONE_WIRE.id ? true : (l == 0 ? false : Block.byId[l].isPowerSource()); } } diff --git a/src/main/java/net/minecraft/server/BlockSign.java b/src/main/java/net/minecraft/server/BlockSign.java index f185c62a44..c9dd407fe6 100644 --- a/src/main/java/net/minecraft/server/BlockSign.java +++ b/src/main/java/net/minecraft/server/BlockSign.java @@ -73,7 +73,7 @@ public class BlockSign extends BlockContainer { return Item.SIGN.id; } - public void a(World world, int i, int j, int k, int l) { + public void doPhysics(World world, int i, int j, int k, int l) { boolean flag = false; if (this.b) { @@ -103,17 +103,18 @@ public class BlockSign extends BlockContainer { if (flag) { this.a_(world, i, j, k, world.getData(i, j, k)); - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); } - super.a(world, i, j, k, l); + super.doPhysics(world, i, j, k, l); // CraftBukkit start - if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].c()) { + if (net.minecraft.server.Block.byId[l] != null && net.minecraft.server.Block.byId[l].isPowerSource()) { CraftWorld craftWorld = ((WorldServer) world).getWorld(); CraftServer server = ((WorldServer) world).getServer(); Block block = craftWorld.getBlockAt(i, j, k); int power = block.getBlockPower(); + BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, power, power); server.getPluginManager().callEvent(eventRedstone); } diff --git a/src/main/java/net/minecraft/server/BlockSoil.java b/src/main/java/net/minecraft/server/BlockSoil.java index f88f760955..5e2c42203f 100644 --- a/src/main/java/net/minecraft/server/BlockSoil.java +++ b/src/main/java/net/minecraft/server/BlockSoil.java @@ -1,10 +1,14 @@ package net.minecraft.server; import java.util.Random; + +// CraftBukkit start +import org.bukkit.Bukkit; import org.bukkit.craftbukkit.event.CraftEventFactory; import org.bukkit.event.Cancellable; import org.bukkit.event.block.Action; import org.bukkit.event.entity.EntityInteractEvent; +// CraftBukkit end public class BlockSoil extends Block { @@ -31,34 +35,36 @@ public class BlockSoil extends Block { public void a(World world, int i, int j, int k, Random random) { if (random.nextInt(5) == 0) { if (this.h(world, i, j, k)) { - world.c(i, j, k, 7); + world.setData(i, j, k, 7); } else { int l = world.getData(i, j, k); if (l > 0) { - world.c(i, j, k, l - 1); + world.setData(i, j, k, l - 1); } else if (!this.g(world, i, j, k)) { - world.e(i, j, k, Block.DIRT.id); + world.setTypeId(i, j, k, Block.DIRT.id); } } } } public void b(World world, int i, int j, int k, Entity entity) { - // CraftBukkit start - Interact Soil - Cancellable cancellable; - if (entity instanceof EntityHuman) { - cancellable = CraftEventFactory.callPlayerInteractEvent((EntityHuman) entity, Action.PHYSICAL, i, j, k, -1, null); - } - else { - cancellable = new EntityInteractEvent(entity.getBukkitEntity(), ((WorldServer)world).getWorld().getBlockAt(i, j, k)); - } - if (!cancellable.isCancelled()) { - if (world.k.nextInt(4) == 0) { - world.e(i, j, k, Block.DIRT.id); + if (world.random.nextInt(4) == 0) { + // CraftBukkit start - Interact Soil + Cancellable cancellable; + if (entity instanceof EntityHuman) { + cancellable = CraftEventFactory.callPlayerInteractEvent((EntityHuman) entity, Action.PHYSICAL, i, j, k, -1, null); + } else { + cancellable = new EntityInteractEvent(entity.getBukkitEntity(), ((WorldServer) world).getWorld().getBlockAt(i, j, k)); + Bukkit.getServer().getPluginManager().callEvent((EntityInteractEvent) cancellable); } + if (cancellable.isCancelled()) { + return; + } + // Craftbukkit end + + world.setTypeId(i, j, k, Block.DIRT.id); } - // Craftbukkit end } private boolean g(World world, int i, int j, int k) { @@ -89,12 +95,12 @@ public class BlockSoil extends Block { return false; } - public void a(World world, int i, int j, int k, int l) { - super.a(world, i, j, k, l); + public void doPhysics(World world, int i, int j, int k, int l) { + super.doPhysics(world, i, j, k, l); Material material = world.getMaterial(i, j + 1, k); if (material.isBuildable()) { - world.e(i, j, k, Block.DIRT.id); + world.setTypeId(i, j, k, Block.DIRT.id); } } diff --git a/src/main/java/net/minecraft/server/BlockStationary.java b/src/main/java/net/minecraft/server/BlockStationary.java index 0d38b6fd13..133b32b681 100644 --- a/src/main/java/net/minecraft/server/BlockStationary.java +++ b/src/main/java/net/minecraft/server/BlockStationary.java @@ -20,8 +20,8 @@ public class BlockStationary extends BlockFluids { } } - public void a(World world, int i, int j, int k, int l) { - super.a(world, i, j, k, l); + public void doPhysics(World world, int i, int j, int k, int l) { + super.doPhysics(world, i, j, k, l); if (world.getTypeId(i, j, k) == this.id) { this.i(world, i, j, k); } @@ -31,7 +31,7 @@ public class BlockStationary extends BlockFluids { int l = world.getData(i, j, k); world.h = true; - world.setTypeIdAndData(i, j, k, this.id - 1, l); + world.setRawTypeIdAndData(i, j, k, this.id - 1, l); world.b(i, j, k, i, j, k); world.c(i, j, k, this.id - 1, this.b()); world.h = false; @@ -69,7 +69,7 @@ public class BlockStationary extends BlockFluids { } // CraftBukkit end - world.e(i, j, k, Block.FIRE.id); + world.setTypeId(i, j, k, Block.FIRE.id); return; } } else if (Block.byId[j1].material.isSolid()) { diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java index 8b44d873e2..a36b330fd4 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java @@ -17,36 +17,36 @@ public class Chunk { public static boolean a; public byte[] b; public boolean c; - public World d; + public World world; public NibbleArray e; public NibbleArray f; public NibbleArray g; public byte[] h; public int i; - public final int j; - public final int k; - public Map l; - public List[] m; - public boolean n; + public final int x; + public final int z; + public Map tileEntities; + public List[] entitySlices; + public boolean done; public boolean o; public boolean p; public boolean q; public long r; public Chunk(World world, int i, int j) { - this.l = new HashMap(); - this.m = new List[8]; - this.n = false; + this.tileEntities = new HashMap(); + this.entitySlices = new List[8]; + this.done = false; this.o = false; this.q = false; this.r = 0L; - this.d = world; - this.j = i; - this.k = j; + this.world = world; + this.x = i; + this.z = j; this.h = new byte[256]; - for (int k = 0; k < this.m.length; ++k) { - this.m[k] = new ArrayList(); + for (int k = 0; k < this.entitySlices.length; ++k) { + this.entitySlices[k] = new ArrayList(); } // CraftBukkit start @@ -69,7 +69,7 @@ public class Chunk { } public boolean a(int i, int j) { - return i == this.j && j == this.k; + return i == this.x && j == this.z; } public int b(int i, int j) { @@ -99,7 +99,7 @@ public class Chunk { i = l; } - if (!this.d.m.e) { + if (!this.world.worldProvider.e) { int j1 = 15; int k1 = 127; @@ -126,12 +126,12 @@ public class Chunk { this.o = true; } - public void c() {} + public void loadNOP() {} private void c(int i, int j) { int k = this.b(i, j); - int l = this.j * 16 + i; - int i1 = this.k * 16 + j; + int l = this.x * 16 + i; + int i1 = this.z * 16 + j; this.f(l - 1, i1, k); this.f(l + 1, i1, k); @@ -140,13 +140,13 @@ public class Chunk { } private void f(int i, int j, int k) { - int l = this.d.d(i, j); + int l = this.world.getHighestBlockYAt(i, j); if (l > k) { - this.d.a(EnumSkyBlock.SKY, i, k, j, i, l, j); + this.world.a(EnumSkyBlock.SKY, i, k, j, i, l, j); this.o = true; } else if (l < k) { - this.d.a(EnumSkyBlock.SKY, i, l, j, i, k, j); + this.world.a(EnumSkyBlock.SKY, i, l, j, i, k, j); this.o = true; } } @@ -164,7 +164,7 @@ public class Chunk { } if (i1 != l) { - this.d.g(i, k, i1, l); + this.world.g(i, k, i1, l); this.h[k << 4 | i] = (byte) i1; int k1; int l1; @@ -186,14 +186,14 @@ public class Chunk { this.i = k1; } - k1 = this.j * 16 + i; - l1 = this.k * 16 + k; + k1 = this.x * 16 + i; + l1 = this.z * 16 + k; if (i1 < l) { for (i2 = i1; i2 < l; ++i2) { this.f.a(i, i2, k, 15); } } else { - this.d.a(EnumSkyBlock.SKY, k1, l, l1, k1, i1, l1); + this.world.a(EnumSkyBlock.SKY, k1, l, l1, k1, i1, l1); for (i2 = l; i2 < i1; ++i2) { this.f.a(i, i2, k, 0); @@ -206,7 +206,7 @@ public class Chunk { for (j2 = i1; i1 > 0 && i2 > 0; this.f.a(i, i1, k, i2)) { --i1; - int k2 = Block.q[this.a(i, i1, k)]; + int k2 = Block.q[this.getTypeId(i, i1, k)]; if (k2 == 0) { k2 = 1; @@ -218,19 +218,19 @@ public class Chunk { } } - while (i1 > 0 && Block.q[this.a(i, i1 - 1, k)] == 0) { + while (i1 > 0 && Block.q[this.getTypeId(i, i1 - 1, k)] == 0) { --i1; } if (i1 != j2) { - this.d.a(EnumSkyBlock.SKY, k1 - 1, i1, l1 - 1, k1 + 1, j2, l1 + 1); + this.world.a(EnumSkyBlock.SKY, k1 - 1, i1, l1 - 1, k1 + 1, j2, l1 + 1); } this.o = true; } } - public int a(int i, int j, int k) { + public int getTypeId(int i, int j, int k) { return this.b[i << 11 | k << 7 | j] & 255; } @@ -242,16 +242,16 @@ public class Chunk { if (k1 == l && this.e.a(i, j, k) == i1) { return false; } else { - int l1 = this.j * 16 + i; - int i2 = this.k * 16 + k; + int l1 = this.x * 16 + i; + int i2 = this.z * 16 + k; this.b[i << 11 | k << 7 | j] = (byte) (b0 & 255); - if (k1 != 0 && !this.d.isStatic) { - Block.byId[k1].b(this.d, l1, j, i2); + if (k1 != 0 && !this.world.isStatic) { + Block.byId[k1].remove(this.world, l1, j, i2); } this.e.a(i, j, k, i1); - if (!this.d.m.e) { + if (!this.world.worldProvider.e) { if (Block.q[b0 & 255] != 0) { if (j >= j1) { this.g(i, j + 1, k); @@ -260,14 +260,14 @@ public class Chunk { this.g(i, j, k); } - this.d.a(EnumSkyBlock.SKY, l1, j, i2, l1, j, i2); + this.world.a(EnumSkyBlock.SKY, l1, j, i2, l1, j, i2); } - this.d.a(EnumSkyBlock.BLOCK, l1, j, i2, l1, j, i2); + this.world.a(EnumSkyBlock.BLOCK, l1, j, i2, l1, j, i2); this.c(i, k); this.e.a(i, j, k, i1); if (l != 0) { - Block.byId[l].e(this.d, l1, j, i2); + Block.byId[l].e(this.world, l1, j, i2); } this.o = true; @@ -283,12 +283,12 @@ public class Chunk { if (j1 == l) { return false; } else { - int k1 = this.j * 16 + i; - int l1 = this.k * 16 + k; + int k1 = this.x * 16 + i; + int l1 = this.z * 16 + k; this.b[i << 11 | k << 7 | j] = (byte) (b0 & 255); if (j1 != 0) { - Block.byId[j1].b(this.d, k1, j, l1); + Block.byId[j1].remove(this.world, k1, j, l1); } this.e.a(i, j, k, 0); @@ -300,11 +300,11 @@ public class Chunk { this.g(i, j, k); } - this.d.a(EnumSkyBlock.SKY, k1, j, l1, k1, j, l1); - this.d.a(EnumSkyBlock.BLOCK, k1, j, l1, k1, j, l1); + this.world.a(EnumSkyBlock.SKY, k1, j, l1, k1, j, l1); + this.world.a(EnumSkyBlock.BLOCK, k1, j, l1, k1, j, l1); this.c(i, k); - if (l != 0 && !this.d.isStatic) { - Block.byId[l].e(this.d, k1, j, l1); + if (l != 0 && !this.world.isStatic) { + Block.byId[l].e(this.world, k1, j, l1); } this.o = true; @@ -312,7 +312,7 @@ public class Chunk { } } - public int b(int i, int j, int k) { + public int getData(int i, int j, int k) { return this.e.a(i, j, k); } @@ -357,31 +357,31 @@ public class Chunk { public void a(Entity entity) { this.q = true; - int i = MathHelper.b(entity.locX / 16.0D); - int j = MathHelper.b(entity.locZ / 16.0D); + int i = MathHelper.floor(entity.locX / 16.0D); + int j = MathHelper.floor(entity.locZ / 16.0D); - if (i != this.j || j != this.k) { + if (i != this.x || j != this.z) { System.out.println("Wrong location! " + entity); // CraftBukkit - System.out.println("" + entity.locX + "," + entity.locZ + "(" + i + "," + j + ") vs " + this.j + "," + this.k); + System.out.println("" + entity.locX + "," + entity.locZ + "(" + i + "," + j + ") vs " + this.x + "," + this.z); Thread.dumpStack(); } - int k = MathHelper.b(entity.locY / 16.0D); + int k = MathHelper.floor(entity.locY / 16.0D); if (k < 0) { k = 0; } - if (k >= this.m.length) { - k = this.m.length - 1; + if (k >= this.entitySlices.length) { + k = this.entitySlices.length - 1; } entity.bA = true; - entity.chunkX = this.j; + entity.chunkX = this.x; entity.bC = k; - entity.chunkZ = this.k; - this.m[k].add(entity); + entity.chunkZ = this.z; + this.entitySlices[k].add(entity); } public void b(Entity entity) { @@ -393,11 +393,11 @@ public class Chunk { i = 0; } - if (i >= this.m.length) { - i = this.m.length - 1; + if (i >= this.entitySlices.length) { + i = this.entitySlices.length - 1; } - this.m[i].remove(entity); + this.entitySlices[i].remove(entity); } public boolean c(int i, int j, int k) { @@ -406,28 +406,28 @@ public class Chunk { public TileEntity d(int i, int j, int k) { ChunkPosition chunkposition = new ChunkPosition(i, j, k); - TileEntity tileentity = (TileEntity) this.l.get(chunkposition); + TileEntity tileentity = (TileEntity) this.tileEntities.get(chunkposition); if (tileentity == null) { - int l = this.a(i, j, k); + int l = this.getTypeId(i, j, k); - if (!Block.p[l]) { + if (!Block.isTileEntity[l]) { return null; } BlockContainer blockcontainer = (BlockContainer) Block.byId[l]; - blockcontainer.e(this.d, this.j * 16 + i, j, this.k * 16 + k); - tileentity = (TileEntity) this.l.get(chunkposition); + blockcontainer.e(this.world, this.x * 16 + i, j, this.z * 16 + k); + tileentity = (TileEntity) this.tileEntities.get(chunkposition); } return tileentity; } public void a(TileEntity tileentity) { - int i = tileentity.e - this.j * 16; + int i = tileentity.e - this.x * 16; int j = tileentity.f; - int k = tileentity.g - this.k * 16; + int k = tileentity.g - this.z * 16; this.a(i, j, k, tileentity); } @@ -435,20 +435,20 @@ public class Chunk { public void a(int i, int j, int k, TileEntity tileentity) { ChunkPosition chunkposition = new ChunkPosition(i, j, k); - tileentity.d = this.d; - tileentity.e = this.j * 16 + i; + tileentity.world = this.world; + tileentity.e = this.x * 16 + i; tileentity.f = j; - tileentity.g = this.k * 16 + k; - if (this.a(i, j, k) != 0 && Block.byId[this.a(i, j, k)] instanceof BlockContainer) { + tileentity.g = this.z * 16 + k; + if (this.getTypeId(i, j, k) != 0 && Block.byId[this.getTypeId(i, j, k)] instanceof BlockContainer) { if (this.c) { - if (this.l.get(chunkposition) != null) { - this.d.c.remove(this.l.get(chunkposition)); + if (this.tileEntities.get(chunkposition) != null) { + this.world.c.remove(this.tileEntities.get(chunkposition)); } - this.d.c.add(tileentity); + this.world.c.add(tileentity); } - this.l.put(chunkposition, tileentity); + this.tileEntities.put(chunkposition, tileentity); } else { System.out.println("Attempted to place a tile entity where there was no entity tile!"); } @@ -458,41 +458,40 @@ public class Chunk { ChunkPosition chunkposition = new ChunkPosition(i, j, k); if (this.c) { - this.d.c.remove(this.l.remove(chunkposition)); + this.world.c.remove(this.tileEntities.remove(chunkposition)); } } - public void d() { + public void addEntities() { this.c = true; - this.d.c.addAll(this.l.values()); + this.world.c.addAll(this.tileEntities.values()); - for (int i = 0; i < this.m.length; ++i) { - this.d.a(this.m[i]); + for (int i = 0; i < this.entitySlices.length; ++i) { + this.world.a(this.entitySlices[i]); } } - public void e() { + public void removeEntities() { this.c = false; - this.d.c.removeAll(this.l.values()); - - for (int i = 0; i < this.m.length; ++i) { - Iterator iter = this.m[i].iterator(); + this.world.c.removeAll(this.tileEntities.values()); + for (int i = 0; i < this.entitySlices.length; ++i) { // Craftbukkit start - while(iter.hasNext()) { - Entity e = (Entity)iter.next(); - int cx = Location.locToBlock(e.locX) >> 4; - int cz = Location.locToBlock(e.locZ) >> 4; + Iterator iter = this.entitySlices[i].iterator(); + while (iter.hasNext()) { + Entity entity = (Entity) iter.next(); + int cx = Location.locToBlock(entity.locX) >> 4; + int cz = Location.locToBlock(entity.locZ) >> 4; - if ((e instanceof EntityPlayer) && ((cx != this.j) || (cz != this.k))) { - EntityPlayer player = (EntityPlayer)e; + if ((entity instanceof EntityPlayer) && ((cx != this.x) || (cz != this.z))) { + EntityPlayer player = (EntityPlayer) entity; iter.remove(); // Do not pass along players, as doing so can get them stuck outside of time. // (which for example disables inventory icon updates and prevents block breaking) } } // Craftbukkit end - this.d.b(this.m[i]); + this.world.b(this.entitySlices[i]); } } @@ -501,19 +500,19 @@ public class Chunk { } public void a(Entity entity, AxisAlignedBB axisalignedbb, List list) { - int i = MathHelper.b((axisalignedbb.b - 2.0D) / 16.0D); - int j = MathHelper.b((axisalignedbb.e + 2.0D) / 16.0D); + int i = MathHelper.floor((axisalignedbb.b - 2.0D) / 16.0D); + int j = MathHelper.floor((axisalignedbb.e + 2.0D) / 16.0D); if (i < 0) { i = 0; } - if (j >= this.m.length) { - j = this.m.length - 1; + if (j >= this.entitySlices.length) { + j = this.entitySlices.length - 1; } for (int k = i; k <= j; ++k) { - List list1 = this.m[k]; + List list1 = this.entitySlices[k]; for (int l = 0; l < list1.size(); ++l) { Entity entity1 = (Entity) list1.get(l); @@ -526,19 +525,19 @@ public class Chunk { } public void a(Class oclass, AxisAlignedBB axisalignedbb, List list) { - int i = MathHelper.b((axisalignedbb.b - 2.0D) / 16.0D); - int j = MathHelper.b((axisalignedbb.e + 2.0D) / 16.0D); + int i = MathHelper.floor((axisalignedbb.b - 2.0D) / 16.0D); + int j = MathHelper.floor((axisalignedbb.e + 2.0D) / 16.0D); if (i < 0) { i = 0; } - if (j >= this.m.length) { - j = this.m.length - 1; + if (j >= this.entitySlices.length) { + j = this.entitySlices.length - 1; } for (int k = i; k <= j; ++k) { - List list1 = this.m[k]; + List list1 = this.entitySlices[k]; for (int l = 0; l < list1.size(); ++l) { Entity entity = (Entity) list1.get(l); @@ -555,10 +554,10 @@ public class Chunk { return false; } else { if (flag) { - if (this.q && this.d.l() != this.r) { + if (this.q && this.world.getTime() != this.r) { return true; } - } else if (this.q && this.d.l() >= this.r + 600L) { + } else if (this.q && this.world.getTime() >= this.r + 600L) { return true; } @@ -612,7 +611,7 @@ public class Chunk { } public Random a(long i) { - return new Random(this.d.k() + (long) (this.j * this.j * 4987142) + (long) (this.j * 5947611) + (long) (this.k * this.k) * 4392871L + (long) (this.k * 389711) ^ i); + return new Random(this.world.getSeed() + (long) (this.x * this.x * 4987142) + (long) (this.x * 5947611) + (long) (this.z * this.z) * 4392871L + (long) (this.z * 389711) ^ i); } public boolean g() { diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index 1f7282f044..5255e861a6 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -21,62 +21,62 @@ import org.bukkit.event.world.ChunkUnloadEvent; public class ChunkProviderServer implements IChunkProvider { // CraftBukkit start - public LongHashset a = new LongHashset(); - public Chunk b; - public IChunkProvider c; + public LongHashset unloadQueue = new LongHashset(); + public Chunk emptyChunk; + public IChunkProvider chunkProvider; // CraftBukkit private IChunkLoader d; - public LongHashtable e = new LongHashtable(); - public List f = new ArrayList(); - public WorldServer g; + public LongHashtable chunks = new LongHashtable(); + public List chunkList = new ArrayList(); + public WorldServer world; // CraftBukkit end public ChunkProviderServer(WorldServer worldserver, IChunkLoader ichunkloader, IChunkProvider ichunkprovider) { - this.b = new EmptyChunk(worldserver, new byte['\u8000'], 0, 0); - this.g = worldserver; + this.emptyChunk = new EmptyChunk(worldserver, new byte['\u8000'], 0, 0); + this.world = worldserver; this.d = ichunkloader; - this.c = ichunkprovider; + this.chunkProvider = ichunkprovider; } - public boolean a(int i, int j) { - return this.e.containsKey(i, j); // CraftBukkit + public boolean isChunkLoaded(int i, int j) { + return this.chunks.containsKey(i, j); // CraftBukkit } - public void d(int i, int j) { - ChunkCoordinates chunkcoordinates = this.g.m(); - int k = i * 16 + 8 - chunkcoordinates.a; - int l = j * 16 + 8 - chunkcoordinates.c; + public void queueUnload(int i, int j) { + ChunkCoordinates chunkcoordinates = this.world.getSpawn(); + int k = i * 16 + 8 - chunkcoordinates.x; + int l = j * 16 + 8 - chunkcoordinates.z; short short1 = 128; if (k < -short1 || k > short1 || l < -short1 || l > short1) { - this.a.add(i, j); // CraftBukkit + this.unloadQueue.add(i, j); // CraftBukkit } } - public Chunk c(int i, int j) { + public Chunk getChunkAt(int i, int j) { // CraftBukkit start - this.a.remove(i, j); - Chunk chunk = (Chunk) this.e.get(i, j); + this.unloadQueue.remove(i, j); + Chunk chunk = (Chunk) this.chunks.get(i, j); // CraftBukkit end if (chunk == null) { - chunk = this.e(i, j); + chunk = this.loadChunk(i, j); if (chunk == null) { - if (this.c == null) { - chunk = this.b; + if (this.chunkProvider == null) { + chunk = this.emptyChunk; } else { - chunk = this.c.b(i, j); + chunk = this.chunkProvider.getOrCreateChunk(i, j); } } - this.e.put(i, j, chunk); // CraftBukkit - this.f.add(chunk); + this.chunks.put(i, j, chunk); // CraftBukkit + this.chunkList.add(chunk); if (chunk != null) { - chunk.c(); - chunk.d(); + chunk.loadNOP(); + chunk.addEntities(); } // CraftBukkit start - CraftServer server = g.getServer(); + CraftServer server = this.world.getServer(); if (server != null) { /* * If it's a new world, the first few chunks are generated inside @@ -87,53 +87,52 @@ public class ChunkProviderServer implements IChunkProvider { } // CraftBukkit end - if (!chunk.n && this.a(i + 1, j + 1) && this.a(i, j + 1) && this.a(i + 1, j)) { - this.a(this, i, j); + if (!chunk.done && this.isChunkLoaded(i + 1, j + 1) && this.isChunkLoaded(i, j + 1) && this.isChunkLoaded(i + 1, j)) { + this.getChunkAt(this, i, j); } - if (this.a(i - 1, j) && !this.b(i - 1, j).n && this.a(i - 1, j + 1) && this.a(i, j + 1) && this.a(i - 1, j)) { - this.a(this, i - 1, j); + if (this.isChunkLoaded(i - 1, j) && !this.getOrCreateChunk(i - 1, j).done && this.isChunkLoaded(i - 1, j + 1) && this.isChunkLoaded(i, j + 1) && this.isChunkLoaded(i - 1, j)) { + this.getChunkAt(this, i - 1, j); } - if (this.a(i, j - 1) && !this.b(i, j - 1).n && this.a(i + 1, j - 1) && this.a(i, j - 1) && this.a(i + 1, j)) { - this.a(this, i, j - 1); + if (this.isChunkLoaded(i, j - 1) && !this.getOrCreateChunk(i, j - 1).done && this.isChunkLoaded(i + 1, j - 1) && this.isChunkLoaded(i, j - 1) && this.isChunkLoaded(i + 1, j)) { + this.getChunkAt(this, i, j - 1); } - if (this.a(i - 1, j - 1) && !this.b(i - 1, j - 1).n && this.a(i - 1, j - 1) && this.a(i, j - 1) && this.a(i - 1, j)) { - this.a(this, i - 1, j - 1); + if (this.isChunkLoaded(i - 1, j - 1) && !this.getOrCreateChunk(i - 1, j - 1).done && this.isChunkLoaded(i - 1, j - 1) && this.isChunkLoaded(i, j - 1) && this.isChunkLoaded(i - 1, j)) { + this.getChunkAt(this, i - 1, j - 1); } } return chunk; } - public Chunk b(int i, int j) { + public Chunk getOrCreateChunk(int i, int j) { // CraftBukkit start - Chunk chunk = (Chunk) this.e.get(i, j); + Chunk chunk = (Chunk) this.chunks.get(i, j); - chunk = chunk == null ? (this.g.r ? this.c(i, j) : this.b) : chunk; - if (chunk == this.b) return chunk; - if (i != chunk.j || j != chunk.k) { - MinecraftServer.a.info("Chunk (" + chunk.j + ", " + chunk.k +") stored at (" + i + ", " + j + ")"); - MinecraftServer.a.info(chunk.getClass().getName()); - Throwable x = new Throwable(); - x.fillInStackTrace(); - x.printStackTrace(); + chunk = chunk == null ? (this.world.isLoading ? this.getChunkAt(i, j) : this.emptyChunk) : chunk; + if (chunk == this.emptyChunk) return chunk; + if (i != chunk.x || j != chunk.z) { + MinecraftServer.log.info("Chunk (" + chunk.x + ", " + chunk.z +") stored at (" + i + ", " + j + ")"); + MinecraftServer.log.info(chunk.getClass().getName()); + Throwable ex = new Throwable(); + ex.fillInStackTrace(); + ex.printStackTrace(); } return chunk; // CraftBukkit end } - // CraftBukkit - private->public - public Chunk e(int i, int j) { + public Chunk loadChunk(int i, int j) {// CraftBukkit - private->public if (this.d == null) { return null; } else { try { - Chunk chunk = this.d.a(this.g, i, j); + Chunk chunk = this.d.a(this.world, i, j); if (chunk != null) { - chunk.r = this.g.l(); + chunk.r = this.world.getTime(); } return chunk; @@ -144,53 +143,51 @@ public class ChunkProviderServer implements IChunkProvider { } } - // CraftBukkit - private->public - public void a(Chunk chunk) { + public void saveChunkNOP(Chunk chunk) { // CraftBukkit - private->public if (this.d != null) { try { - this.d.b(this.g, chunk); + this.d.b(this.world, chunk); } catch (Exception exception) { exception.printStackTrace(); } } } - // CraftBukkit - private->public - public void b(Chunk chunk) { + public void saveChunk(Chunk chunk) { // CraftBukkit - private->public if (this.d != null) { try { - chunk.r = this.g.l(); - this.d.a(this.g, chunk); + chunk.r = this.world.getTime(); + this.d.a(this.world, chunk); } catch (Exception ioexception) { // CraftBukkit - IOException -> Exception ioexception.printStackTrace(); } } } - public void a(IChunkProvider ichunkprovider, int i, int j) { - Chunk chunk = this.b(i, j); + public void getChunkAt(IChunkProvider ichunkprovider, int i, int j) { + Chunk chunk = this.getOrCreateChunk(i, j); - if (!chunk.n) { - chunk.n = true; - if (this.c != null) { - this.c.a(ichunkprovider, i, j); + if (!chunk.done) { + chunk.done = true; + if (this.chunkProvider != null) { + this.chunkProvider.getChunkAt(ichunkprovider, i, j); chunk.f(); } } } - public boolean a(boolean flag, IProgressUpdate iprogressupdate) { + public boolean saveChunks(boolean flag, IProgressUpdate iprogressupdate) { int i = 0; - for (int j = 0; j < this.f.size(); ++j) { - Chunk chunk = (Chunk) this.f.get(j); + for (int j = 0; j < this.chunkList.size(); ++j) { + Chunk chunk = (Chunk) this.chunkList.get(j); if (flag && !chunk.p) { - this.a(chunk); + this.saveChunkNOP(chunk); } if (chunk.a(flag)) { - this.b(chunk); + this.saveChunk(chunk); chunk.o = false; ++i; if (i == 24 && !flag) { @@ -210,25 +207,26 @@ public class ChunkProviderServer implements IChunkProvider { return true; } - public boolean a() { - if (!this.g.w) { + public boolean unloadChunks() { + if (!this.world.w) { // CraftBukkit start - Server server = g.getServer(); - for (int i = 0; i < 50 && !this.a.isEmpty(); i++) { - long chunkcoordinates = this.a.popFirst(); - Chunk chunk = e.get(chunkcoordinates); + Server server = this.world.getServer(); + for (int i = 0; i < 50 && !this.unloadQueue.isEmpty(); i++) { + long chunkcoordinates = this.unloadQueue.popFirst(); + Chunk chunk = this.chunks.get(chunkcoordinates); if (chunk == null) continue; ChunkUnloadEvent event = new ChunkUnloadEvent(chunk.bukkitChunk); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - g.getWorld().preserveChunk( (CraftChunk) chunk.bukkitChunk ); + this.world.getWorld().preserveChunk( (CraftChunk) chunk.bukkitChunk ); - chunk.e(); - this.b(chunk); - this.a(chunk); - this.e.remove(chunkcoordinates); - this.f.remove(chunk); + chunk.removeEntities(); + this.saveChunk(chunk); + this.saveChunkNOP(chunk); + //this.unloadQueue.remove(integer); + this.chunks.remove(chunkcoordinates); // CraftBukkit + this.chunkList.remove(chunk); } } // CraftBukkit end @@ -238,10 +236,10 @@ public class ChunkProviderServer implements IChunkProvider { } } - return this.c.a(); + return this.chunkProvider.unloadChunks(); } public boolean b() { - return !this.g.w; + return !this.world.w; } } diff --git a/src/main/java/net/minecraft/server/ConsoleCommandHandler.java b/src/main/java/net/minecraft/server/ConsoleCommandHandler.java index 255e90d60e..54447619f2 100644 --- a/src/main/java/net/minecraft/server/ConsoleCommandHandler.java +++ b/src/main/java/net/minecraft/server/ConsoleCommandHandler.java @@ -7,39 +7,36 @@ import java.util.logging.Logger; public class ConsoleCommandHandler { private static Logger a = Logger.getLogger("Minecraft"); - private MinecraftServer b; + private MinecraftServer server; + private ICommandListener listener; // CraftBukkit public ConsoleCommandHandler(MinecraftServer minecraftserver) { - this.b = minecraftserver; + this.server = minecraftserver; } - // CraftBukkit - All calls to the following below: - // this.a( String s1, String msg ); - // are changed to: - // this.notify( ICommandListener icommandlistener, String msg ); - - public boolean a(ServerCommand servercommand) { // CraftBukkit - returns boolean - String s = servercommand.a; + public boolean handle(ServerCommand servercommand) { // CraftBukkit - returns boolean + String s = servercommand.command; ICommandListener icommandlistener = servercommand.b; - String s1 = icommandlistener.c(); - WorldServer worldserver = this.b.worlds.get(0); // CraftBukkit - ServerConfigurationManager serverconfigurationmanager = this.b.f; + String s1 = icommandlistener.getName(); + WorldServer worldserver = this.server.worlds.get(0); // CraftBukkit + listener = icommandlistener; // CraftBukkit + ServerConfigurationManager serverconfigurationmanager = this.server.serverConfigurationManager; if (!s.toLowerCase().startsWith("help") && !s.toLowerCase().startsWith("?")) { if (s.toLowerCase().startsWith("list")) { - icommandlistener.b("Connected players: " + serverconfigurationmanager.c()); + icommandlistener.sendMessage("Connected players: " + serverconfigurationmanager.c()); } else if (s.toLowerCase().startsWith("stop")) { - this.notify(icommandlistener, "Stopping the server.."); // CraftBukkit - notify command sender - this.b.a(); + this.print(s1, "Stopping the server.."); + this.server.a(); } else if (s.toLowerCase().startsWith("save-all")) { - this.notify(icommandlistener, "Forcing save.."); // CraftBukkit - notify command sender - this.b.f(); // CraftBukkit - We should save all worlds on save-all. - this.notify(icommandlistener, "Save complete."); // CraftBukkit - notify command sender + this.print(s1, "Forcing save.."); + this.server.saveChunks(); // CraftBukkit - We should save all worlds on save-all. + this.print(s1, "Save complete."); } else if (s.toLowerCase().startsWith("save-off")) { - this.notify(icommandlistener, "Disabling level saving.."); // CraftBukkit - notify command sender + this.print(s1, "Disabling level saving.."); worldserver.w = true; } else if (s.toLowerCase().startsWith("save-on")) { - this.notify(icommandlistener, "Enabling level saving.."); // CraftBukkit - notify command sender + this.print(s1, "Enabling level saving.."); worldserver.w = false; } else { String s2; @@ -47,36 +44,36 @@ public class ConsoleCommandHandler { if (s.toLowerCase().startsWith("op ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.e(s2); - this.notify(icommandlistener, "Opping " + s2); // CraftBukkit - notify command sender + this.print(s1, "Opping " + s2); serverconfigurationmanager.a(s2, "\u00A7eYou are now op!"); } else if (s.toLowerCase().startsWith("deop ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.f(s2); serverconfigurationmanager.a(s2, "\u00A7eYou are no longer op!"); - this.notify(icommandlistener, "De-opping " + s2); // CraftBukkit - notify command sender + this.print(s1, "De-opping " + s2); } else if (s.toLowerCase().startsWith("ban-ip ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.c(s2); - this.notify(icommandlistener, "Banning ip " + s2); // CraftBukkit - notify command sender + this.print(s1, "Banning ip " + s2); } else if (s.toLowerCase().startsWith("pardon-ip ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.d(s2); - this.notify(icommandlistener, "Pardoning ip " + s2); // CraftBukkit - notify command sender + this.print(s1, "Pardoning ip " + s2); } else { EntityPlayer entityplayer; if (s.toLowerCase().startsWith("ban ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.a(s2); - this.notify(icommandlistener, "Banning " + s2); // CraftBukkit - notify command sender + this.print(s1, "Banning " + s2); entityplayer = serverconfigurationmanager.i(s2); if (entityplayer != null) { - entityplayer.a.a("Banned by admin"); + entityplayer.netServerHandler.disconnect("Banned by admin"); } } else if (s.toLowerCase().startsWith("pardon ")) { s2 = s.substring(s.indexOf(" ")).trim(); serverconfigurationmanager.b(s2); - this.notify(icommandlistener, "Pardoning " + s2); // CraftBukkit - notify command sender + this.print(s1, "Pardoning " + s2); } else { int i; @@ -87,8 +84,8 @@ public class ConsoleCommandHandler { // CraftBukkit end entityplayer = null; - for (i = 0; i < serverconfigurationmanager.b.size(); ++i) { - EntityPlayer entityplayer1 = (EntityPlayer) serverconfigurationmanager.b.get(i); + for (i = 0; i < serverconfigurationmanager.players.size(); ++i) { + EntityPlayer entityplayer1 = (EntityPlayer) serverconfigurationmanager.players.get(i); if (entityplayer1.name.equalsIgnoreCase(s2)) { entityplayer = entityplayer1; @@ -96,10 +93,10 @@ public class ConsoleCommandHandler { } if (entityplayer != null) { - entityplayer.a.a("Kicked by admin"); - this.notify(icommandlistener, "Kicking " + entityplayer.name); // CraftBukkit - notify command sender + entityplayer.netServerHandler.disconnect("Kicked by admin"); + this.print(s1, "Kicking " + entityplayer.name); } else { - icommandlistener.b("Can\'t find user " + s2 + ". No kick."); + icommandlistener.sendMessage("Can\'t find user " + s2 + ". No kick."); } } else { String[] astring; @@ -111,15 +108,15 @@ public class ConsoleCommandHandler { entityplayer = serverconfigurationmanager.i(astring[1]); entityplayer2 = serverconfigurationmanager.i(astring[2]); if (entityplayer == null) { - icommandlistener.b("Can\'t find user " + astring[1] + ". No tp."); + icommandlistener.sendMessage("Can\'t find user " + astring[1] + ". No tp."); } else if (entityplayer2 == null) { - icommandlistener.b("Can\'t find user " + astring[2] + ". No tp."); + icommandlistener.sendMessage("Can\'t find user " + astring[2] + ". No tp."); } else { - entityplayer.a.a(entityplayer2.locX, entityplayer2.locY, entityplayer2.locZ, entityplayer2.yaw, entityplayer2.pitch); - this.notify(icommandlistener, "Teleporting " + astring[1] + " to " + astring[2] + "."); // CraftBukkit - notify command sender + entityplayer.netServerHandler.a(entityplayer2.locX, entityplayer2.locY, entityplayer2.locZ, entityplayer2.yaw, entityplayer2.pitch); + this.print(s1, "Teleporting " + astring[1] + " to " + astring[2] + "."); } } else { - icommandlistener.b("Syntax error, please provice a source and a target."); + icommandlistener.sendMessage("Syntax error, please provice a source and a target."); } } else { String s3; @@ -127,7 +124,7 @@ public class ConsoleCommandHandler { if (s.toLowerCase().startsWith("give ")) { astring = s.split(" "); if (astring.length != 3 && astring.length != 4) { - return true; + return true; // CraftBukkit } s3 = astring[1]; @@ -137,7 +134,7 @@ public class ConsoleCommandHandler { int j = Integer.parseInt(astring[2]); if (Item.byId[j] != null) { - this.notify(icommandlistener, "Giving " + entityplayer2.name + " some " + j); // CraftBukkit - notify command sender + this.print(s1, "Giving " + entityplayer2.name + " some " + j); int k = 1; if (astring.length > 3) { @@ -154,18 +151,18 @@ public class ConsoleCommandHandler { entityplayer2.b(new ItemStack(j, k, 0)); } else { - icommandlistener.b("There\'s no item with id " + j); + icommandlistener.sendMessage("There\'s no item with id " + j); } } catch (NumberFormatException numberformatexception) { - icommandlistener.b("There\'s no item with id " + astring[2]); + icommandlistener.sendMessage("There\'s no item with id " + astring[2]); } } else { - icommandlistener.b("Can\'t find user " + s3); + icommandlistener.sendMessage("Can\'t find user " + s3); } } else if (s.toLowerCase().startsWith("time ")) { astring = s.split(" "); if (astring.length != 3) { - return true; + return true; // CraftBukkit } s3 = astring[1]; @@ -173,21 +170,21 @@ public class ConsoleCommandHandler { try { i = Integer.parseInt(astring[2]); if ("add".equalsIgnoreCase(s3)) { - worldserver.a(worldserver.k() + (long) i); - this.notify(icommandlistener, "Added " + i + " to time"); // CraftBukkit - notify command sender + worldserver.setTime(worldserver.getTime() + (long) i); + this.print(s1, "Added " + i + " to time"); } else if ("set".equalsIgnoreCase(s3)) { - worldserver.a((long) i); - this.notify(icommandlistener, "Set time to " + i); // CraftBukkit - notify command sender + worldserver.setTime((long) i); + this.print(s1, "Set time to " + i); } else { - icommandlistener.b("Unknown method, use either \"add\" or \"set\""); + icommandlistener.sendMessage("Unknown method, use either \"add\" or \"set\""); } } catch (NumberFormatException numberformatexception1) { - icommandlistener.b("Unable to convert time value, " + astring[2]); + icommandlistener.sendMessage("Unable to convert time value, " + astring[2]); } } else if (s.toLowerCase().startsWith("say ")) { s = s.substring(s.indexOf(" ")).trim(); a.info("[" + s1 + "] " + s); - serverconfigurationmanager.a((Packet) (new Packet3Chat("\u00A7d[Server] " + s))); + serverconfigurationmanager.sendAll(new Packet3Chat("\u00A7d[Server] " + s)); } else if (s.toLowerCase().startsWith("tell ")) { astring = s.split(" "); if (astring.length >= 3) { @@ -197,14 +194,14 @@ public class ConsoleCommandHandler { s = "\u00A77" + s1 + " whispers " + s; a.info(s); if (!serverconfigurationmanager.a(astring[1], (Packet) (new Packet3Chat(s)))) { - icommandlistener.b("There\'s no player by that name online."); + icommandlistener.sendMessage("There\'s no player by that name online."); } } } else if (s.toLowerCase().startsWith("whitelist ")) { this.a(s1, s, icommandlistener); } else { - icommandlistener.b("Unknown console command. Type \"help\" for help."); // CraftBukkit - Send to listener not log - return false; + icommandlistener.sendMessage("Unknown console command. Type \"help\" for help."); // CraftBukkit + return false; // CraftBukkit } } } @@ -215,23 +212,24 @@ public class ConsoleCommandHandler { this.a(icommandlistener); } - return true; + return true; // CraftBukkit } private void a(String s, String s1, ICommandListener icommandlistener) { String[] astring = s1.split(" "); + listener = icommandlistener; // CraftBukkit if (astring.length >= 2) { String s2 = astring[1].toLowerCase(); if ("on".equals(s2)) { - this.notify(icommandlistener, "Turned on white-listing"); // CraftBukkit - notify command sender - this.b.d.b("white-list", true); + this.print(s, "Turned on white-listing"); + this.server.propertyManager.b("white-list", true); } else if ("off".equals(s2)) { - this.notify(icommandlistener, "Turned off white-listing"); // CraftBukkit - notify command sender - this.b.d.b("white-list", false); + this.print(s, "Turned off white-listing"); + this.server.propertyManager.b("white-list", false); } else if ("list".equals(s2)) { - Set set = this.b.f.e(); + Set set = this.server.serverConfigurationManager.e(); String s3 = ""; String s4; @@ -240,63 +238,55 @@ public class ConsoleCommandHandler { s4 = (String) iterator.next(); } - icommandlistener.b("White-listed players: " + s3); + icommandlistener.sendMessage("White-listed players: " + s3); } else { String s5; if ("add".equals(s2) && astring.length == 3) { s5 = astring[2].toLowerCase(); - this.b.f.k(s5); - this.notify(icommandlistener, "Added " + s5 + " to white-list"); // CraftBukkit - notify command sender + this.server.serverConfigurationManager.k(s5); + this.print(s, "Added " + s5 + " to white-list"); } else if ("remove".equals(s2) && astring.length == 3) { s5 = astring[2].toLowerCase(); - this.b.f.l(s5); - this.notify(icommandlistener, "Removed " + s5 + " from white-list"); // CraftBukkit - notify command sender + this.server.serverConfigurationManager.l(s5); + this.print(s, "Removed " + s5 + " from white-list"); } else if ("reload".equals(s2)) { - this.b.f.f(); - this.notify(icommandlistener, "Reloaded white-list from file"); // CraftBukkit - notify command sender + this.server.serverConfigurationManager.f(); + this.print(s, "Reloaded white-list from file"); } } } } private void a(ICommandListener icommandlistener) { - icommandlistener.b("To run the server without a gui, start it like this:"); - icommandlistener.b(" java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui"); - icommandlistener.b("Console commands:"); - icommandlistener.b(" help or ? shows this message"); - icommandlistener.b(" kick removes a player from the server"); - icommandlistener.b(" ban bans a player from the server"); - icommandlistener.b(" pardon pardons a banned player so that they can connect again"); - icommandlistener.b(" ban-ip bans an IP address from the server"); - icommandlistener.b(" pardon-ip pardons a banned IP address so that they can connect again"); - icommandlistener.b(" op turns a player into an op"); - icommandlistener.b(" deop removes op status from a player"); - icommandlistener.b(" tp moves one player to the same location as another player"); - icommandlistener.b(" give [num] gives a player a resource"); - icommandlistener.b(" tell sends a private message to a player"); - icommandlistener.b(" stop gracefully stops the server"); - icommandlistener.b(" save-all forces a server-wide level save"); - icommandlistener.b(" save-off disables terrain saving (useful for backup scripts)"); - icommandlistener.b(" save-on re-enables terrain saving"); - icommandlistener.b(" list lists all currently connected players"); - icommandlistener.b(" say broadcasts a message to all players"); - icommandlistener.b(" time adds to or sets the world time (0-24000)"); + icommandlistener.sendMessage("To run the server without a gui, start it like this:"); + icommandlistener.sendMessage(" java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui"); + icommandlistener.sendMessage("Console commands:"); + icommandlistener.sendMessage(" help or ? shows this message"); + icommandlistener.sendMessage(" kick removes a player from the server"); + icommandlistener.sendMessage(" ban bans a player from the server"); + icommandlistener.sendMessage(" pardon pardons a banned player so that they can connect again"); + icommandlistener.sendMessage(" ban-ip bans an IP address from the server"); + icommandlistener.sendMessage(" pardon-ip pardons a banned IP address so that they can connect again"); + icommandlistener.sendMessage(" op turns a player into an op"); + icommandlistener.sendMessage(" deop removes op status from a player"); + icommandlistener.sendMessage(" tp moves one player to the same location as another player"); + icommandlistener.sendMessage(" give [num] gives a player a resource"); + icommandlistener.sendMessage(" tell sends a private message to a player"); + icommandlistener.sendMessage(" stop gracefully stops the server"); + icommandlistener.sendMessage(" save-all forces a server-wide level save"); + icommandlistener.sendMessage(" save-off disables terrain saving (useful for backup scripts)"); + icommandlistener.sendMessage(" save-on re-enables terrain saving"); + icommandlistener.sendMessage(" list lists all currently connected players"); + icommandlistener.sendMessage(" say broadcasts a message to all players"); + icommandlistener.sendMessage(" time adds to or sets the world time (0-24000)"); } - // CraftBukkit start - // Notify sender and ops / log - private void notify(ICommandListener commandListener, String msg ) { - commandListener.b( msg ); - this.a( commandListener.c(), msg ); - } - // CraftBukkit end - - private void a(String s, String s1) { + private void print(String s, String s1) { + listener.sendMessage(s1); // CraftBukkit String s2 = s + ": " + s1; - // CraftBukkit - This notifies ops and logs - this.b.f.j("\u00A77(" + s2 + ")"); + this.server.serverConfigurationManager.j("\u00A77(" + s2 + ")"); a.info(s2); } diff --git a/src/main/java/net/minecraft/server/ConsoleLogManager.java b/src/main/java/net/minecraft/server/ConsoleLogManager.java index a4da25d320..d7708b412a 100644 --- a/src/main/java/net/minecraft/server/ConsoleLogManager.java +++ b/src/main/java/net/minecraft/server/ConsoleLogManager.java @@ -20,7 +20,7 @@ public class ConsoleLogManager { public ConsoleLogManager() {} // Craftbukkit - change of method signature! - public static void a(MinecraftServer server) { + public static void init(MinecraftServer server) { ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter(); a.setUseParentHandlers(false); @@ -34,6 +34,7 @@ public class ConsoleLogManager { consolehandler.setFormatter(new ShortConsoleLogFormatter(server)); global.addHandler(consolehandler); // CraftBukkit end + a.addHandler(consolehandler); try { diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index 84df26774c..9e551c8f1a 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -42,10 +42,10 @@ public abstract class Entity { public float lastPitch; public final AxisAlignedBB boundingBox; public boolean onGround; - public boolean aW; + public boolean positionChanged; public boolean aX; public boolean aY; - public boolean aZ; + public boolean velocityChanged; public boolean ba; public boolean dead; public float height; @@ -88,7 +88,7 @@ public abstract class Entity { this.boundingBox = AxisAlignedBB.a(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D); this.onGround = false; this.aY = false; - this.aZ = false; + this.velocityChanged = false; this.ba = true; this.dead = false; this.height = 0.0F; @@ -116,7 +116,7 @@ public abstract class Entity { this.datawatcher = new DataWatcher(); this.bA = false; this.world = world; - this.a(0.0D, 0.0D, 0.0D); + this.setPosition(0.0D, 0.0D, 0.0D); this.datawatcher.a(0, Byte.valueOf((byte) 0)); this.a(); } @@ -135,7 +135,7 @@ public abstract class Entity { return this.id; } - public void D() { + public void die() { this.dead = true; } @@ -148,16 +148,16 @@ public abstract class Entity { // Craftbukkit start if ((f == Float.POSITIVE_INFINITY) || (f == Float.NEGATIVE_INFINITY) || (Float.isNaN(f))) { if (this instanceof EntityPlayer) { - System.err.println(((CraftPlayer)this.getBukkitEntity()).getName() + " was caught trying to crash the server with an invalid yaw"); - ((CraftPlayer)this.getBukkitEntity()).kickPlayer("Nope"); + System.err.println(((CraftPlayer) this.getBukkitEntity()).getName() + " was caught trying to crash the server with an invalid yaw"); + ((CraftPlayer) this.getBukkitEntity()).kickPlayer("Nope"); } f = 0; } if ((f1 == Float.POSITIVE_INFINITY) || (f1 == Float.NEGATIVE_INFINITY) || (Float.isNaN(f1))) { if (this instanceof EntityPlayer) { - System.err.println(((CraftPlayer)this.getBukkitEntity()).getName() + " was caught trying to crash the server with an invalid pitch"); - ((CraftPlayer)this.getBukkitEntity()).kickPlayer("Nope"); + System.err.println(((CraftPlayer) this.getBukkitEntity()).getName() + " was caught trying to crash the server with an invalid pitch"); + ((CraftPlayer) this.getBukkitEntity()).kickPlayer("Nope"); } f1 = 0; } @@ -167,7 +167,7 @@ public abstract class Entity { // Craftbukkit end } - public void a(double d0, double d1, double d2) { + public void setPosition(double d0, double d1, double d2) { this.locX = d0; this.locY = d1; this.locZ = d2; @@ -201,8 +201,8 @@ public abstract class Entity { f = 1.0F; } - this.world.a(this, "random.splash", f, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); - float f1 = (float) MathHelper.b(this.boundingBox.b); + this.world.makeSound(this, "random.splash", f, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); + float f1 = (float) MathHelper.floor(this.boundingBox.b); int i; float f2; @@ -250,10 +250,10 @@ public abstract class Entity { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - this.a((Entity) null, event.getDamage()); + this.damageEntity((Entity) null, event.getDamage()); } } else { - this.a((Entity) null, 1); + this.damageEntity((Entity) null, 1); } // CraftBukkit end } @@ -293,7 +293,7 @@ public abstract class Entity { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - this.a((Entity) null, event.getDamage()); + this.damageEntity((Entity) null, event.getDamage()); } if (this.fireTicks <= 0) { @@ -311,23 +311,23 @@ public abstract class Entity { } // CraftBukkit end - this.a((Entity) null, 4); + this.damageEntity((Entity) null, 4); this.fireTicks = 600; } } protected void R() { - this.D(); + this.die(); } public boolean b(double d0, double d1, double d2) { AxisAlignedBB axisalignedbb = this.boundingBox.c(d0, d1, d2); - List list = this.world.a(this, axisalignedbb); + List list = this.world.getEntities(this, axisalignedbb); return list.size() > 0 ? false : !this.world.b(axisalignedbb); } - public void c(double d0, double d1, double d2) { + public void move(double d0, double d1, double d2) { if (this.bn) { this.boundingBox.d(d0, d1, d2); this.locX = (this.boundingBox.a + this.boundingBox.d) / 2.0D; @@ -339,13 +339,13 @@ public abstract class Entity { double d5 = d0; double d6 = d1; double d7 = d2; - AxisAlignedBB axisalignedbb = this.boundingBox.b(); - boolean flag = this.onGround && this.Z(); + AxisAlignedBB axisalignedbb = this.boundingBox.clone(); + boolean flag = this.onGround && this.isSneaking(); if (flag) { double d8; - for (d8 = 0.05D; d0 != 0.0D && this.world.a(this, this.boundingBox.c(d0, -1.0D, 0.0D)).size() == 0; d5 = d0) { + for (d8 = 0.05D; d0 != 0.0D && this.world.getEntities(this, this.boundingBox.c(d0, -1.0D, 0.0D)).size() == 0; d5 = d0) { if (d0 < d8 && d0 >= -d8) { d0 = 0.0D; } else if (d0 > 0.0D) { @@ -355,7 +355,7 @@ public abstract class Entity { } } - for (; d2 != 0.0D && this.world.a(this, this.boundingBox.c(0.0D, -1.0D, d2)).size() == 0; d7 = d2) { + for (; d2 != 0.0D && this.world.getEntities(this, this.boundingBox.c(0.0D, -1.0D, d2)).size() == 0; d7 = d2) { if (d2 < d8 && d2 >= -d8) { d2 = 0.0D; } else if (d2 > 0.0D) { @@ -366,7 +366,7 @@ public abstract class Entity { } } - List list = this.world.a(this, this.boundingBox.a(d0, d1, d2)); + List list = this.world.getEntities(this, this.boundingBox.a(d0, d1, d2)); for (int i = 0; i < list.size(); ++i) { d1 = ((AxisAlignedBB) list.get(i)).b(this.boundingBox, d1); @@ -417,10 +417,10 @@ public abstract class Entity { d0 = d5; d1 = (double) this.bm; d2 = d7; - AxisAlignedBB axisalignedbb1 = this.boundingBox.b(); + AxisAlignedBB axisalignedbb1 = this.boundingBox.clone(); this.boundingBox.b(axisalignedbb); - list = this.world.a(this, this.boundingBox.a(d5, d1, d7)); + list = this.world.getEntities(this, this.boundingBox.a(d5, d1, d7)); for (k = 0; k < list.size(); ++k) { d1 = ((AxisAlignedBB) list.get(k)).b(this.boundingBox, d1); @@ -468,10 +468,10 @@ public abstract class Entity { this.locX = (this.boundingBox.a + this.boundingBox.d) / 2.0D; this.locY = this.boundingBox.b + (double) this.height - (double) this.bl; this.locZ = (this.boundingBox.c + this.boundingBox.f) / 2.0D; - this.aW = d5 != d0 || d7 != d2; + this.positionChanged = d5 != d0 || d7 != d2; this.aX = d6 != d1; this.onGround = d6 != d1 && d6 < 0.0D; - this.aY = this.aW || this.aX; + this.aY = this.positionChanged || this.aX; this.a(d1, this.onGround); if (d5 != d0) { this.motX = 0.0D; @@ -492,10 +492,10 @@ public abstract class Entity { int j1; // CraftBukkit start - if ((this.aW) && (getBukkitEntity() instanceof Vehicle)) { + if ((this.positionChanged) && (getBukkitEntity() instanceof Vehicle)) { Vehicle vehicle = (Vehicle) getBukkitEntity(); org.bukkit.World wrld = ((WorldServer) world).getWorld(); - org.bukkit.block.Block block = wrld.getBlockAt(MathHelper.b(locX), MathHelper.b(locY - 0.20000000298023224D - (double) this.height), MathHelper.b(locZ)); + org.bukkit.block.Block block = wrld.getBlockAt(MathHelper.floor(locX), MathHelper.floor(locY - 0.20000000298023224D - (double) this.height), MathHelper.floor(locZ)); if (d5 > d0) { block = block.getFace(BlockFace.SOUTH); @@ -514,9 +514,9 @@ public abstract class Entity { if (this.l() && !flag) { this.bg = (float) ((double) this.bg + (double) MathHelper.a(d9 * d9 + d10 * d10) * 0.6D); - l = MathHelper.b(this.locX); - i1 = MathHelper.b(this.locY - 0.20000000298023224D - (double) this.height); - j1 = MathHelper.b(this.locZ); + l = MathHelper.floor(this.locX); + i1 = MathHelper.floor(this.locY - 0.20000000298023224D - (double) this.height); + j1 = MathHelper.floor(this.locZ); k = this.world.getTypeId(l, i1, j1); if (this.bg > (float) this.b && k > 0) { ++this.b; @@ -524,21 +524,21 @@ public abstract class Entity { if (this.world.getTypeId(l, i1 + 1, j1) == Block.SNOW.id) { stepsound = Block.SNOW.stepSound; - this.world.a(this, stepsound.c(), stepsound.a() * 0.15F, stepsound.b()); + this.world.makeSound(this, stepsound.getName(), stepsound.getVolume1() * 0.15F, stepsound.getVolume2()); } else if (!Block.byId[k].material.isLiquid()) { - this.world.a(this, stepsound.c(), stepsound.a() * 0.15F, stepsound.b()); + this.world.makeSound(this, stepsound.getName(), stepsound.getVolume1() * 0.15F, stepsound.getVolume2()); } Block.byId[k].b(this.world, l, i1, j1, this); } } - l = MathHelper.b(this.boundingBox.a); - i1 = MathHelper.b(this.boundingBox.b); - j1 = MathHelper.b(this.boundingBox.c); - k = MathHelper.b(this.boundingBox.d); - int k1 = MathHelper.b(this.boundingBox.e); - int l1 = MathHelper.b(this.boundingBox.f); + l = MathHelper.floor(this.boundingBox.a); + i1 = MathHelper.floor(this.boundingBox.b); + j1 = MathHelper.floor(this.boundingBox.c); + k = MathHelper.floor(this.boundingBox.d); + int k1 = MathHelper.floor(this.boundingBox.e); + int l1 = MathHelper.floor(this.boundingBox.f); if (this.world.a(l, i1, j1, k, k1, l1)) { for (int i2 = l; i2 <= k; ++i2) { @@ -583,7 +583,7 @@ public abstract class Entity { } if (flag2 && this.fireTicks > 0) { - this.world.a(this, "random.fizz", 0.7F, 1.6F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); + this.world.makeSound(this, "random.fizz", 0.7F, 1.6F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); this.fireTicks = -this.maxFireTicks; } } @@ -620,14 +620,14 @@ public abstract class Entity { EntityDamageEvent event = new EntityDamageEvent(damagee, damageType, damageDone); server.getPluginManager().callEvent(event); - if (event.isCancelled() || event.getDamage() == 0) { + if (event.isCancelled()) { return; } i = event.getDamage(); } // CraftBukkit end - this.a((Entity) null, i); + this.damageEntity((Entity) null, i); } } @@ -639,9 +639,9 @@ public abstract class Entity { public boolean a(Material material) { double d0 = this.locY + (double) this.q(); - int i = MathHelper.b(this.locX); - int j = MathHelper.d((float) MathHelper.b(d0)); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.d((float) MathHelper.floor(d0)); + int k = MathHelper.floor(this.locZ); int l = this.world.getTypeId(i, j, k); if (l != 0 && Block.byId[l].material == material) { @@ -673,8 +673,8 @@ public abstract class Entity { f3 = f2 / f3; f *= f3; f1 *= f3; - float f4 = MathHelper.a(this.yaw * 3.1415927F / 180.0F); - float f5 = MathHelper.b(this.yaw * 3.1415927F / 180.0F); + float f4 = MathHelper.sin(this.yaw * 3.1415927F / 180.0F); + float f5 = MathHelper.cos(this.yaw * 3.1415927F / 180.0F); this.motX += (double) (f * f5 - f1 * f4); this.motZ += (double) (f1 * f5 + f * f4); @@ -682,15 +682,15 @@ public abstract class Entity { } public float c(float f) { - int i = MathHelper.b(this.locX); + int i = MathHelper.floor(this.locX); double d0 = (this.boundingBox.e - this.boundingBox.b) * 0.66D; - int j = MathHelper.b(this.locY - (double) this.height + d0); - int k = MathHelper.b(this.locZ); + int j = MathHelper.floor(this.locY - (double) this.height + d0); + int k = MathHelper.floor(this.locZ); - return this.world.a(MathHelper.b(this.boundingBox.a), MathHelper.b(this.boundingBox.b), MathHelper.b(this.boundingBox.c), MathHelper.b(this.boundingBox.d), MathHelper.b(this.boundingBox.e), MathHelper.b(this.boundingBox.f)) ? this.world.l(i, j, k) : 0.0F; + return this.world.a(MathHelper.floor(this.boundingBox.a), MathHelper.floor(this.boundingBox.b), MathHelper.floor(this.boundingBox.c), MathHelper.floor(this.boundingBox.d), MathHelper.floor(this.boundingBox.e), MathHelper.floor(this.boundingBox.f)) ? this.world.l(i, j, k) : 0.0F; } - public void b(double d0, double d1, double d2, float f, float f1) { + public void setLocation(double d0, double d1, double d2, float f, float f1) { this.lastX = this.locX = d0; this.lastY = this.locY = d1; this.lastZ = this.locZ = d2; @@ -707,17 +707,17 @@ public abstract class Entity { this.lastYaw -= 360.0F; } - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); this.c(f, f1); } - public void c(double d0, double d1, double d2, float f, float f1) { + public void setPositionRotation(double d0, double d1, double d2, float f, float f1) { this.bi = this.lastX = this.locX = d0; this.bj = this.lastY = this.locY = d1 + (double) this.height; this.bk = this.lastZ = this.locZ = d2; this.yaw = f; this.pitch = f1; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } public float f(Entity entity) { @@ -754,7 +754,7 @@ public abstract class Entity { public void b(EntityHuman entityhuman) {} - public void h(Entity entity) { + public void collide(Entity entity) { if (entity.passenger != this && entity.vehicle != this) { double d0 = entity.locX - this.locX; double d1 = entity.locZ - this.locZ; @@ -789,10 +789,10 @@ public abstract class Entity { } protected void W() { - this.aZ = true; + this.velocityChanged = true; } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { this.W(); return false; } @@ -811,7 +811,7 @@ public abstract class Entity { String s = this.X(); if (!this.dead && s != null) { - nbttagcompound.a("id", s); + nbttagcompound.setString("id", s); this.d(nbttagcompound); return true; } else { @@ -827,7 +827,7 @@ public abstract class Entity { nbttagcompound.a("Fire", (short) this.fireTicks); nbttagcompound.a("Air", (short) this.airTicks); nbttagcompound.a("OnGround", this.onGround); - nbttagcompound.a("World", world.q.j); // CraftBukkit + nbttagcompound.setString("World", world.worldData.name); // CraftBukkit this.a(nbttagcompound); } @@ -836,7 +836,7 @@ public abstract class Entity { NBTTagList nbttaglist1 = nbttagcompound.l("Motion"); NBTTagList nbttaglist2 = nbttagcompound.l("Rotation"); - this.a(0.0D, 0.0D, 0.0D); + this.setPosition(0.0D, 0.0D, 0.0D); this.motX = ((NBTTagDouble) nbttaglist1.a(0)).a; this.motY = ((NBTTagDouble) nbttaglist1.a(1)).a; this.motZ = ((NBTTagDouble) nbttaglist1.a(2)).a; @@ -868,16 +868,16 @@ public abstract class Entity { this.onGround = nbttagcompound.m("OnGround"); // CraftBukkit start - if (nbttagcompound.b("World")) { - String worldName = nbttagcompound.i("World"); + if (nbttagcompound.hasKey("World")) { + String worldName = nbttagcompound.getString("World"); for (WorldServer world: ((WorldServer) this.world).getServer().getServer().worlds) { - if ((world.q.j.equals(worldName)) && (world != this.world)) { + if ((world.worldData.name.equals(worldName)) && (world != this.world)) { this.world = world; if (this instanceof EntityHuman) { EntityPlayer player = (EntityPlayer)this; - player.c = new ItemInWorldManager(world); - player.c.a = player; + player.itemInWorldManager = new ItemInWorldManager(world); + player.itemInWorldManager.player = player; } break; } @@ -885,7 +885,7 @@ public abstract class Entity { } // CraftBukkit end - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); this.b(nbttagcompound); } @@ -936,8 +936,8 @@ public abstract class Entity { public EntityItem a(ItemStack itemstack, float f) { EntityItem entityitem = new EntityItem(this.world, this.locX, this.locY + (double) f, this.locZ, itemstack); - entityitem.c = 10; - this.world.a((Entity) entityitem); + entityitem.pickupDelay = 10; + this.world.addEntity(entityitem); return entityitem; } @@ -946,9 +946,9 @@ public abstract class Entity { } public boolean E() { - int i = MathHelper.b(this.locX); - int j = MathHelper.b(this.locY + (double) this.q()); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.locY + (double) this.q()); + int k = MathHelper.floor(this.locZ); return this.world.d(i, j, k); } @@ -1016,7 +1016,7 @@ public abstract class Entity { } public void h_() { - this.passenger.a(this.locX, this.locY + this.k() + this.passenger.C(), this.locZ); + this.passenger.setPosition(this.locX, this.locY + this.k() + this.passenger.C(), this.locZ); } public double C() { @@ -1027,7 +1027,7 @@ public abstract class Entity { return (double) this.width * 0.75D; } - public void b(Entity entity) { + public void mount(Entity entity) { // CraftBukkit start setPassengerOf(entity); } @@ -1060,7 +1060,7 @@ public abstract class Entity { } // CraftBukkit end - this.c(this.vehicle.locX, this.vehicle.boundingBox.b + (double) this.vehicle.width, this.vehicle.locZ, this.yaw, this.pitch); + this.setPositionRotation(this.vehicle.locX, this.vehicle.boundingBox.b + (double) this.vehicle.width, this.vehicle.locZ, this.yaw, this.pitch); this.vehicle.passenger = null; } @@ -1078,7 +1078,7 @@ public abstract class Entity { this.vehicle.passenger = null; this.vehicle = null; - this.c(entity.locX, entity.boundingBox.b + (double) entity.width, entity.locZ, this.yaw, this.pitch); + this.setPositionRotation(entity.locX, entity.boundingBox.b + (double) entity.width, entity.locZ, this.yaw, this.pitch); } else { if (this.vehicle != null) { this.vehicle.passenger = null; @@ -1099,15 +1099,15 @@ public abstract class Entity { public void Y() {} - public ItemStack[] k_() { + public ItemStack[] getEquipment() { return null; } - public boolean Z() { + public boolean isSneaking() { return this.d(1); } - public void e(boolean flag) { + public void setSneak(boolean flag) { this.a(1, flag); } diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java index 509e1181fa..140ae88228 100644 --- a/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java @@ -17,7 +17,7 @@ public class EntityArrow extends Entity { private int f = 0; private boolean g = false; public int a = 0; - public EntityLiving b; + public EntityLiving shooter; private int h; private int i = 0; @@ -29,23 +29,23 @@ public class EntityArrow extends Entity { public EntityArrow(World world, double d0, double d1, double d2) { super(world); this.b(0.5F, 0.5F); - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); this.height = 0.0F; } public EntityArrow(World world, EntityLiving entityliving) { super(world); - this.b = entityliving; + this.shooter = entityliving; this.b(0.5F, 0.5F); - this.c(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); - this.locX -= (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPositionRotation(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); + this.locX -= (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * 0.16F); this.locY -= 0.10000000149011612D; - this.locZ -= (double) (MathHelper.a(this.yaw / 180.0F * 3.1415927F) * 0.16F); - this.a(this.locX, this.locY, this.locZ); + this.locZ -= (double) (MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPosition(this.locX, this.locY, this.locZ); this.height = 0.0F; - this.motX = (double) (-MathHelper.a(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F)); - this.motZ = (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F)); - this.motY = (double) (-MathHelper.a(this.pitch / 180.0F * 3.1415927F)); + this.motX = (double) (-MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F)); + this.motZ = (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F)); + this.motY = (double) (-MathHelper.sin(this.pitch / 180.0F * 3.1415927F)); this.a(this.motX, this.motY, this.motZ, 1.5F, 1.0F); } @@ -92,7 +92,7 @@ public class EntityArrow extends Entity { if (i == this.f) { ++this.h; if (this.h == 1200) { - this.D(); + this.die(); } return; @@ -108,14 +108,14 @@ public class EntityArrow extends Entity { ++this.i; } - Vec3D vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - Vec3D vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vec3D vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + Vec3D vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { - vec3d1 = Vec3D.b(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); + vec3d1 = Vec3D.create(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); } Entity entity = null; @@ -127,7 +127,7 @@ public class EntityArrow extends Entity { for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity) list.get(j); - if (entity1.d_() && (entity1 != this.b || this.i >= 5)) { + if (entity1.d_() && (entity1 != this.shooter || this.i >= 5)) { f1 = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.b((double) f1, (double) f1, (double) f1); MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1); @@ -150,7 +150,7 @@ public class EntityArrow extends Entity { float f2; if (movingobjectposition != null) { - if (movingobjectposition.g != null) { + if (movingobjectposition.entity != null) { // CraftBukkit start boolean stick; if (entity instanceof EntityLiving) { @@ -158,8 +158,8 @@ public class EntityArrow extends Entity { // TODO decide if we should create DamageCause.ARROW, DamageCause.PROJECTILE // or leave as DamageCause.ENTITY_ATTACK - org.bukkit.entity.Entity shooter = (this.b == null) ? null : this.b.getBukkitEntity(); - org.bukkit.entity.Entity damagee = movingobjectposition.g.getBukkitEntity(); + org.bukkit.entity.Entity shooter = (this.shooter == null) ? null : this.shooter.getBukkitEntity(); + org.bukkit.entity.Entity damagee = movingobjectposition.entity.getBukkitEntity(); org.bukkit.entity.Entity projectile = this.getBukkitEntity(); // TODO deal with arrows being fired from a non-entity DamageCause damageCause = EntityDamageEvent.DamageCause.ENTITY_ATTACK; @@ -169,18 +169,18 @@ public class EntityArrow extends Entity { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { // this function returns if the arrow should stick in or not, i.e. !bounce - stick = movingobjectposition.g.a(this.b, event.getDamage()); + stick = movingobjectposition.entity.damageEntity(this.shooter, event.getDamage()); } else { // event was cancelled, get if the arrow should bounce or not stick = !event.getBounce(); } } else { - stick = movingobjectposition.g.a(this.b, 4); + stick = movingobjectposition.entity.damageEntity(this.shooter, 4); } if (stick) { // CraftBukkit end - this.world.a(this, "random.drr", 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F)); - this.D(); + this.world.makeSound(this, "random.drr", 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F)); + this.die(); } else { this.motX *= -0.10000000149011612D; this.motY *= -0.10000000149011612D; @@ -201,7 +201,7 @@ public class EntityArrow extends Entity { this.locX -= this.motX / (double) f2 * 0.05000000074505806D; this.locY -= this.motY / (double) f2 * 0.05000000074505806D; this.locZ -= this.motZ / (double) f2 * 0.05000000074505806D; - this.world.a(this, "random.drr", 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F)); + this.world.makeSound(this, "random.drr", 1.0F, 1.2F / (this.random.nextFloat() * 0.2F + 0.9F)); this.g = true; this.a = 7; } @@ -248,7 +248,7 @@ public class EntityArrow extends Entity { this.motY *= (double) f3; this.motZ *= (double) f3; this.motY -= (double) f1; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } public void a(NBTTagCompound nbttagcompound) { @@ -271,10 +271,10 @@ public class EntityArrow extends Entity { public void b(EntityHuman entityhuman) { if (!this.world.isStatic) { - if (this.g && this.b == entityhuman && this.a <= 0 && entityhuman.inventory.a(new ItemStack(Item.ARROW, 1))) { - this.world.a(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); - entityhuman.b(this, 1); - this.D(); + if (this.g && this.shooter == entityhuman && this.a <= 0 && entityhuman.inventory.canHold(new ItemStack(Item.ARROW, 1))) { + this.world.makeSound(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); + entityhuman.receive(this, 1); + this.die(); } } } diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java index 51f83379e4..365c0a808f 100644 --- a/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java @@ -18,7 +18,7 @@ import org.bukkit.event.vehicle.VehicleUpdateEvent; public class EntityBoat extends Entity { - public int a; + public int damage; public int b; public int c; private int d; @@ -31,7 +31,8 @@ public class EntityBoat extends Entity { // CraftBukkit start public double maxSpeed = 0.4D; - public void h(Entity entity) { + @Override + public void collide(Entity entity) { CraftServer server = ((WorldServer) this.world).getServer(); Vehicle vehicle = (Vehicle) this.getBukkitEntity(); org.bukkit.entity.Entity hitEntity = (entity == null) ? null : entity.getBukkitEntity(); @@ -43,13 +44,13 @@ public class EntityBoat extends Entity { return; } - super.h(entity); + super.collide(entity); } // CraftBukkit end public EntityBoat(World world) { super(world); - this.a = 0; + this.damage = 0; this.b = 0; this.c = 1; this.aD = true; @@ -77,7 +78,7 @@ public class EntityBoat extends Entity { public EntityBoat(World world, double d0, double d1, double d2) { this(world); - this.a(d0, d1 + (double) this.height, d2); + this.setPosition(d0, d1 + (double) this.height, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; @@ -97,7 +98,7 @@ public class EntityBoat extends Entity { return (double) this.width * 0.0D - 0.30000001192092896D; } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { if (!this.world.isStatic && !this.dead) { // CraftBukkit start Vehicle vehicle = (Vehicle) this.getBukkitEntity(); @@ -114,16 +115,16 @@ public class EntityBoat extends Entity { this.c = -this.c; this.b = 10; - this.a += i * 10; + this.damage += i * 10; this.W(); - if (this.a > 40) { + if (this.damage > 40) { // CraftBukkit start VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, attacker); ((WorldServer) this.world).getServer().getPluginManager().callEvent(destroyEvent); if (destroyEvent.isCancelled()) { - this.a = 40; // Maximize damage so this doesn't get triggered again right away + this.damage = 40; // Maximize damage so this doesn't get triggered again right away return true; } // CraftBukkit end @@ -138,7 +139,7 @@ public class EntityBoat extends Entity { this.a(Item.STICK.id, 1, 0.0F); } - this.D(); + this.die(); } return true; @@ -165,8 +166,8 @@ public class EntityBoat extends Entity { --this.b; } - if (this.a > 0) { - --this.a; + if (this.damage > 0) { + --this.damage; } this.lastX = this.locX; @@ -207,13 +208,13 @@ public class EntityBoat extends Entity { this.yaw = (float) ((double) this.yaw + d6 / (double) this.d); this.pitch = (float) ((double) this.pitch + (this.i - (double) this.pitch) / (double) this.d); --this.d; - this.a(d3, d4, d5); + this.setPosition(d3, d4, d5); this.c(this.yaw, this.pitch); } else { d3 = this.locX + this.motX; d4 = this.locY + this.motY; d5 = this.locZ + this.motZ; - this.a(d3, d4, d5); + this.setPosition(d3, d4, d5); if (this.onGround) { this.motX *= 0.5D; this.motY *= 0.5D; @@ -256,7 +257,7 @@ public class EntityBoat extends Entity { this.motZ *= 0.5D; } - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); d5 = Math.sqrt(this.motX * this.motX + this.motZ * this.motZ); double d7; @@ -282,9 +283,9 @@ public class EntityBoat extends Entity { } } - if (this.aW && d5 > 0.15D) { + if (this.positionChanged && d5 > 0.15D) { if (!this.world.isStatic) { - this.D(); + this.die(); int k; @@ -354,7 +355,7 @@ public class EntityBoat extends Entity { Entity entity = (Entity) list.get(l); if (entity != this.passenger && entity.e_() && entity instanceof EntityBoat) { - entity.h(this); + entity.collide(this); } } } @@ -370,7 +371,7 @@ public class EntityBoat extends Entity { double d0 = Math.cos((double) this.yaw * 3.141592653589793D / 180.0D) * 0.4D; double d1 = Math.sin((double) this.yaw * 3.141592653589793D / 180.0D) * 0.4D; - this.passenger.a(this.locX + d0, this.locY + this.k() + this.passenger.C(), this.locZ + d1); + this.passenger.setPosition(this.locX + d0, this.locY + this.k() + this.passenger.C(), this.locZ + d1); } } @@ -396,7 +397,7 @@ public class EntityBoat extends Entity { } // CraftBukkit end - entityhuman.b((Entity) this); + entityhuman.mount(this); } return true; diff --git a/src/main/java/net/minecraft/server/EntityCow.java b/src/main/java/net/minecraft/server/EntityCow.java index 7e7b175f34..e14d4ea672 100644 --- a/src/main/java/net/minecraft/server/EntityCow.java +++ b/src/main/java/net/minecraft/server/EntityCow.java @@ -44,7 +44,7 @@ public class EntityCow extends EntityAnimal { } public boolean a(EntityHuman entityhuman) { - ItemStack itemstack = entityhuman.inventory.b(); + ItemStack itemstack = entityhuman.inventory.getItemInHand(); if (itemstack != null && itemstack.id == Item.BUCKET.id) { // CraftBukkit start - got milk? @@ -59,7 +59,7 @@ public class EntityCow extends EntityAnimal { byte data = itemInHand.getData() == null ? (byte) 0 : itemInHand.getData().getData(); itemstack = new ItemStack(itemInHand.getTypeId(), itemInHand.getAmount(), data ); - entityhuman.inventory.a(entityhuman.inventory.c, itemstack); + entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, itemstack); // CraftBukkit end return true; diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java index af2eb83f28..8b73c92d50 100644 --- a/src/main/java/net/minecraft/server/EntityCreature.java +++ b/src/main/java/net/minecraft/server/EntityCreature.java @@ -9,10 +9,9 @@ import org.bukkit.event.entity.EntityTargetEvent.TargetReason; // CraftBukkit end public class EntityCreature extends EntityLiving { - // CraftBukkit start - both public - public PathEntity a; - public Entity d; - // CraftBukkit end + + public PathEntity pathEntity; // CraftBukkit - public + public Entity target; // CraftBukkit - public protected boolean e = false; public EntityCreature(World world) { @@ -27,9 +26,9 @@ public class EntityCreature extends EntityLiving { this.e = this.u(); float f = 16.0F; - if (this.d == null) { + if (this.target == null) { // CraftBukkit start - Entity target = this.m(); + Entity target = this.findTarget(); if (target != null) { EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), target.getBukkitEntity(), TargetReason.CLOSEST_PLAYER); CraftServer server = ((WorldServer) this.world).getServer(); @@ -37,17 +36,17 @@ public class EntityCreature extends EntityLiving { if (!event.isCancelled()) { if (event.getTarget() == null) { - this.d = null; + this.target = null; } else { - this.d = ((CraftEntity) event.getTarget()).getHandle(); + this.target = ((CraftEntity) event.getTarget()).getHandle(); } } } // CraftBukkit end - if (this.d != null) { - this.a = this.world.a(this, this.d, f); + if (this.target != null) { + this.pathEntity = this.world.findPath(this, this.target, f); } - } else if (!this.d.N()) { + } else if (!this.target.N()) { // CraftBukkit start EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), null, TargetReason.TARGET_DIED); CraftServer server = ((WorldServer) this.world).getServer(); @@ -55,23 +54,23 @@ public class EntityCreature extends EntityLiving { if (!event.isCancelled()) { if (event.getTarget() == null) { - this.d = null; + this.target = null; } else { - this.d = ((CraftEntity) event.getTarget()).getHandle(); + this.target = ((CraftEntity) event.getTarget()).getHandle(); } } // CraftBukkit end } else { - float f1 = this.d.f(this); + float f1 = this.target.f(this); - if (this.e(this.d)) { - this.a(this.d, f1); + if (this.e(this.target)) { + this.a(this.target, f1); } } - if (!this.e && this.d != null && (this.a == null || this.random.nextInt(20) == 0)) { - this.a = this.world.a(this, this.d, f); - } else if (!this.e && (this.a == null && this.random.nextInt(80) == 0 || this.random.nextInt(80) == 0)) { + if (!this.e && this.target != null && (this.pathEntity == null || this.random.nextInt(20) == 0)) { + this.pathEntity = this.world.findPath(this, this.target, f); + } else if (!this.e && (this.pathEntity == null && this.random.nextInt(80) == 0 || this.random.nextInt(80) == 0)) { boolean flag = false; int i = -1; int j = -1; @@ -79,9 +78,9 @@ public class EntityCreature extends EntityLiving { float f2 = -99999.0F; for (int l = 0; l < 10; ++l) { - int i1 = MathHelper.b(this.locX + (double) this.random.nextInt(13) - 6.0D); - int j1 = MathHelper.b(this.locY + (double) this.random.nextInt(7) - 3.0D); - int k1 = MathHelper.b(this.locZ + (double) this.random.nextInt(13) - 6.0D); + int i1 = MathHelper.floor(this.locX + (double) this.random.nextInt(13) - 6.0D); + int j1 = MathHelper.floor(this.locY + (double) this.random.nextInt(7) - 3.0D); + int k1 = MathHelper.floor(this.locZ + (double) this.random.nextInt(13) - 6.0D); float f3 = this.a(i1, j1, k1); if (f3 > f2) { @@ -94,26 +93,26 @@ public class EntityCreature extends EntityLiving { } if (flag) { - this.a = this.world.a(this, i, j, k, 10.0F); + this.pathEntity = this.world.a(this, i, j, k, 10.0F); } } - int l1 = MathHelper.b(this.boundingBox.b); + int l1 = MathHelper.floor(this.boundingBox.b); boolean flag1 = this.g_(); boolean flag2 = this.V(); this.pitch = 0.0F; - if (this.a != null && this.random.nextInt(100) != 0) { - Vec3D vec3d = this.a.a(this); + if (this.pathEntity != null && this.random.nextInt(100) != 0) { + Vec3D vec3d = this.pathEntity.a(this); double d0 = (double) (this.length * 2.0F); while (vec3d != null && vec3d.d(this.locX, vec3d.b, this.locZ) < d0 * d0) { - this.a.a(); - if (this.a.b()) { + this.pathEntity.a(); + if (this.pathEntity.b()) { vec3d = null; - this.a = null; + this.pathEntity = null; } else { - vec3d = this.a.a(this); + vec3d = this.pathEntity.a(this); } } @@ -143,15 +142,15 @@ public class EntityCreature extends EntityLiving { } this.yaw += f5; - if (this.e && this.d != null) { - double d4 = this.d.locX - this.locX; - double d5 = this.d.locZ - this.locZ; + if (this.e && this.target != null) { + double d4 = this.target.locX - this.locX; + double d5 = this.target.locZ - this.locZ; float f6 = this.yaw; this.yaw = (float) (Math.atan2(d5, d4) * 180.0D / 3.1415927410125732D) - 90.0F; f5 = (f6 - this.yaw + 90.0F) * 3.1415927F / 180.0F; - this.au = -MathHelper.a(f5) * this.av * 1.0F; - this.av = MathHelper.b(f5) * this.av * 1.0F; + this.au = -MathHelper.sin(f5) * this.av * 1.0F; + this.av = MathHelper.cos(f5) * this.av * 1.0F; } if (d3 > 0.0D) { @@ -159,11 +158,11 @@ public class EntityCreature extends EntityLiving { } } - if (this.d != null) { - this.a(this.d, 30.0F, 30.0F); + if (this.target != null) { + this.a(this.target, 30.0F, 30.0F); } - if (this.aW) { + if (this.positionChanged) { this.ax = true; } @@ -172,7 +171,7 @@ public class EntityCreature extends EntityLiving { } } else { super.c_(); - this.a = null; + this.pathEntity = null; } } @@ -182,31 +181,31 @@ public class EntityCreature extends EntityLiving { return 0.0F; } - protected Entity m() { + protected Entity findTarget() { return null; } public boolean b() { - int i = MathHelper.b(this.locX); - int j = MathHelper.b(this.boundingBox.b); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.boundingBox.b); + int k = MathHelper.floor(this.locZ); return super.b() && this.a(i, j, k) >= 0.0F; } public boolean z() { - return this.a != null; + return this.pathEntity != null; } public void a(PathEntity pathentity) { - this.a = pathentity; + this.pathEntity = pathentity; } public Entity A() { - return this.d; + return this.target; } public void c(Entity entity) { - this.d = entity; + this.target = entity; } } diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java index e7439d79ff..cc6a97a669 100644 --- a/src/main/java/net/minecraft/server/EntityCreeper.java +++ b/src/main/java/net/minecraft/server/EntityCreeper.java @@ -8,7 +8,7 @@ import org.bukkit.event.entity.ExplosionPrimeEvent; public class EntityCreeper extends EntityMonster { - int a; + int fuseTicks; int b; public EntityCreeper(World world) { @@ -30,21 +30,21 @@ public class EntityCreeper extends EntityMonster { } public void f_() { - this.b = this.a; + this.b = this.fuseTicks; if (this.world.isStatic) { int i = this.v(); - if (i > 0 && this.a == 0) { - this.world.a(this, "random.fuse", 1.0F, 0.5F); + if (i > 0 && this.fuseTicks == 0) { + this.world.makeSound(this, "random.fuse", 1.0F, 0.5F); } - this.a += i; - if (this.a < 0) { - this.a = 0; + this.fuseTicks += i; + if (this.fuseTicks < 0) { + this.fuseTicks = 0; } - if (this.a >= 30) { - this.a = 30; + if (this.fuseTicks >= 30) { + this.fuseTicks = 30; } } @@ -71,18 +71,18 @@ public class EntityCreeper extends EntityMonster { if ((i > 0 || f >= 3.0F) && (i <= 0 || f >= 7.0F)) { this.e(-1); - --this.a; - if (this.a < 0) { - this.a = 0; + --this.fuseTicks; + if (this.fuseTicks < 0) { + this.fuseTicks = 0; } } else { - if (this.a == 0) { - this.world.a(this, "random.fuse", 1.0F, 0.5F); + if (this.fuseTicks == 0) { + this.world.makeSound(this, "random.fuse", 1.0F, 0.5F); } this.e(1); - ++this.a; - if (this.a >= 30) { + ++this.fuseTicks; + if (this.fuseTicks >= 30) { // CraftBukkit start CraftServer server = ((WorldServer) this.world).getServer(); @@ -90,10 +90,10 @@ public class EntityCreeper extends EntityMonster { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - this.world.a(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); - this.D(); + this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); + this.die(); } else { - this.a = 0; + this.fuseTicks = 0; } // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/EntityEgg.java b/src/main/java/net/minecraft/server/EntityEgg.java index 220e020ded..32efe8912d 100644 --- a/src/main/java/net/minecraft/server/EntityEgg.java +++ b/src/main/java/net/minecraft/server/EntityEgg.java @@ -21,7 +21,7 @@ public class EntityEgg extends Entity { private int e = 0; private boolean f = false; public int a = 0; - private EntityLiving g; + private EntityLiving thrower; private int h; private int i = 0; @@ -34,19 +34,19 @@ public class EntityEgg extends Entity { public EntityEgg(World world, EntityLiving entityliving) { super(world); - this.g = entityliving; + this.thrower = entityliving; this.b(0.25F, 0.25F); - this.c(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); - this.locX -= (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPositionRotation(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); + this.locX -= (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * 0.16F); this.locY -= 0.10000000149011612D; - this.locZ -= (double) (MathHelper.a(this.yaw / 180.0F * 3.1415927F) * 0.16F); - this.a(this.locX, this.locY, this.locZ); + this.locZ -= (double) (MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPosition(this.locX, this.locY, this.locZ); this.height = 0.0F; float f = 0.4F; - this.motX = (double) (-MathHelper.a(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motZ = (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motY = (double) (-MathHelper.a(this.pitch / 180.0F * 3.1415927F) * f); + this.motX = (double) (-MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motZ = (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motY = (double) (-MathHelper.sin(this.pitch / 180.0F * 3.1415927F) * f); this.a(this.motX, this.motY, this.motZ, 1.5F, 1.0F); } @@ -54,7 +54,7 @@ public class EntityEgg extends Entity { super(world); this.h = 0; this.b(0.25F, 0.25F); - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); this.height = 0.0F; } @@ -95,7 +95,7 @@ public class EntityEgg extends Entity { if (i == this.e) { ++this.h; if (this.h == 1200) { - this.D(); + this.die(); } return; @@ -111,14 +111,14 @@ public class EntityEgg extends Entity { ++this.i; } - Vec3D vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - Vec3D vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vec3D vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + Vec3D vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { - vec3d1 = Vec3D.b(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); + vec3d1 = Vec3D.create(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); } if (!this.world.isStatic) { @@ -129,7 +129,7 @@ public class EntityEgg extends Entity { for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity) list.get(j); - if (entity1.d_() && (entity1 != this.g || this.i >= 5)) { + if (entity1.d_() && (entity1 != this.thrower || this.i >= 5)) { float f = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.b((double) f, (double) f, (double) f); MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1); @@ -152,12 +152,12 @@ public class EntityEgg extends Entity { if (movingobjectposition != null) { // CraftBukkit start - if (movingobjectposition.g != null) { + if (movingobjectposition.entity != null) { boolean stick; - if (movingobjectposition.g instanceof EntityLiving) { + if (movingobjectposition.entity instanceof EntityLiving) { CraftServer server = ((WorldServer) this.world).getServer(); - org.bukkit.entity.Entity shooter = (this.g == null) ? null : this.g.getBukkitEntity(); - org.bukkit.entity.Entity damagee = movingobjectposition.g.getBukkitEntity(); + org.bukkit.entity.Entity shooter = (this.thrower == null) ? null : this.thrower.getBukkitEntity(); + org.bukkit.entity.Entity damagee = movingobjectposition.entity.getBukkitEntity(); org.bukkit.entity.Entity projectile = this.getBukkitEntity(); DamageCause damageCause = EntityDamageEvent.DamageCause.ENTITY_ATTACK; int damage = 0; @@ -168,13 +168,13 @@ public class EntityEgg extends Entity { if (!event.isCancelled()) { // this function returns if the egg should stick or not, i.e. !bounce - stick = movingobjectposition.g.a(this.g, event.getDamage()); + stick = movingobjectposition.entity.damageEntity(this.thrower, event.getDamage()); } else { // event was cancelled, get if the egg should bounce or not stick = !event.getBounce(); } } else { - stick = movingobjectposition.g.a(this.g, 0); + stick = movingobjectposition.entity.damageEntity(this.thrower, 0); } if (stick) { @@ -190,9 +190,9 @@ public class EntityEgg extends Entity { CreatureType hatchingType = CreatureType.CHICKEN; - if (this.g instanceof EntityPlayer) { + if (this.thrower instanceof EntityPlayer) { CraftServer server = ((WorldServer) this.world).getServer(); - Player player = (this.g == null) ? null : (Player) this.g.getBukkitEntity(); + Player player = (this.thrower == null) ? null : (Player) this.thrower.getBukkitEntity(); PlayerEggThrowEvent event = new PlayerEggThrowEvent(player, (Egg) this.getBukkitEntity(), hatching, (byte) numHatching, hatchingType); server.getPluginManager().callEvent(event); @@ -258,9 +258,9 @@ public class EntityEgg extends Entity { // The world we're spawning in accepts this creature boolean isAnimal = entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal; - if ((isAnimal && this.world.E) || (!isAnimal && this.world.D)) { - entity.c(this.locX, this.locY, this.locZ, this.yaw, 0.0F); - this.world.a(entity); + if ((isAnimal && this.world.allowAnimals) || (!isAnimal && this.world.allowMonsters)) { + entity.setPositionRotation(this.locX, this.locY, this.locZ, this.yaw, 0.0F); + this.world.addEntity(entity); } } } @@ -270,7 +270,7 @@ public class EntityEgg extends Entity { this.world.a("snowballpoof", this.locX, this.locY, this.locZ, 0.0D, 0.0D, 0.0D); } - this.D(); + this.die(); } this.locX += this.motX; @@ -315,7 +315,7 @@ public class EntityEgg extends Entity { this.motY *= (double) f2; this.motZ *= (double) f2; this.motY -= (double) f3; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } public void a(NBTTagCompound nbttagcompound) { @@ -337,10 +337,10 @@ public class EntityEgg extends Entity { } public void b(EntityHuman entityhuman) { - if (this.f && this.g == entityhuman && this.a <= 0 && entityhuman.inventory.a(new ItemStack(Item.ARROW, 1))) { - this.world.a(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); - entityhuman.b(this, 1); - this.D(); + if (this.f && this.thrower == entityhuman && this.a <= 0 && entityhuman.inventory.canHold(new ItemStack(Item.ARROW, 1))) { + this.world.makeSound(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); + entityhuman.receive(this, 1); + this.die(); } } } diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java index d972715176..cee2b283cd 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java @@ -19,7 +19,7 @@ public class EntityFireball extends Entity { private int h = 0; private boolean i = false; public int a = 0; - private EntityLiving j; + private EntityLiving shooter; private int k; private int l = 0; public double b; @@ -35,10 +35,10 @@ public class EntityFireball extends Entity { public EntityFireball(World world, EntityLiving entityliving, double d0, double d1, double d2) { super(world); - this.j = entityliving; + this.shooter = entityliving; this.b(1.0F, 1.0F); - this.c(entityliving.locX, entityliving.locY, entityliving.locZ, entityliving.yaw, entityliving.pitch); - this.a(this.locX, this.locY, this.locZ); + this.setPositionRotation(entityliving.locX, entityliving.locY, entityliving.locZ, entityliving.yaw, entityliving.pitch); + this.setPosition(this.locX, this.locY, this.locZ); this.height = 0.0F; this.motX = this.motY = this.motZ = 0.0D; d0 += this.random.nextGaussian() * 0.4D; @@ -64,7 +64,7 @@ public class EntityFireball extends Entity { if (i == this.h) { ++this.k; if (this.k == 1200) { - this.D(); + this.die(); } return; @@ -80,14 +80,14 @@ public class EntityFireball extends Entity { ++this.l; } - Vec3D vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - Vec3D vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vec3D vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + Vec3D vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { - vec3d1 = Vec3D.b(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); + vec3d1 = Vec3D.create(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); } Entity entity = null; @@ -97,7 +97,7 @@ public class EntityFireball extends Entity { for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity) list.get(j); - if (entity1.d_() && (entity1 != this.j || this.l >= 25)) { + if (entity1.d_() && (entity1 != this.shooter || this.l >= 25)) { float f = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.b((double) f, (double) f, (double) f); MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1); @@ -119,12 +119,12 @@ public class EntityFireball extends Entity { if (movingobjectposition != null) { // CraftBukkit start - if (movingobjectposition.g != null) { + if (movingobjectposition.entity != null) { boolean stick; - if (movingobjectposition.g instanceof EntityLiving) { + if (movingobjectposition.entity instanceof EntityLiving) { CraftServer server = ((WorldServer) this.world).getServer(); - org.bukkit.entity.Entity shooter = (this.j == null) ? null : this.j.getBukkitEntity(); - org.bukkit.entity.Entity damagee = movingobjectposition.g.getBukkitEntity(); + org.bukkit.entity.Entity shooter = (this.shooter == null) ? null : this.shooter.getBukkitEntity(); + org.bukkit.entity.Entity damagee = movingobjectposition.entity.getBukkitEntity(); org.bukkit.entity.Entity projectile = this.getBukkitEntity(); DamageCause damageCause = EntityDamageEvent.DamageCause.ENTITY_ATTACK; int damage = 0; @@ -135,13 +135,13 @@ public class EntityFireball extends Entity { if (!event.isCancelled()) { // this function returns if the fireball should stick or not, i.e. !bounce - stick = movingobjectposition.g.a(this.j, event.getDamage()); + stick = movingobjectposition.entity.damageEntity(this.shooter, event.getDamage()); } else { // event was cancelled, get if the fireball should bounce or not stick = !event.getBounce(); } } else { - stick = movingobjectposition.g.a(this.j, 0); + stick = movingobjectposition.entity.damageEntity(this.shooter, 0); } if (stick) { ; @@ -154,8 +154,8 @@ public class EntityFireball extends Entity { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { // give 'this' instead of (Entity) null so we know what causes the damage - this.world.a(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); - this.D(); + this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); + this.die(); } // CraftBukkit end } @@ -204,7 +204,7 @@ public class EntityFireball extends Entity { this.motY *= (double) f2; this.motZ *= (double) f2; this.world.a("smoke", this.locX, this.locY + 0.5D, this.locZ, 0.0D, 0.0D, 0.0D); - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } public void a(NBTTagCompound nbttagcompound) { @@ -229,7 +229,7 @@ public class EntityFireball extends Entity { return true; } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { this.W(); if (entity != null) { Vec3D vec3d = entity.S(); diff --git a/src/main/java/net/minecraft/server/EntityFish.java b/src/main/java/net/minecraft/server/EntityFish.java index 542ec46898..486a862aac 100644 --- a/src/main/java/net/minecraft/server/EntityFish.java +++ b/src/main/java/net/minecraft/server/EntityFish.java @@ -17,7 +17,7 @@ public class EntityFish extends Entity { private int g = 0; private boolean h = false; public int a = 0; - public EntityHuman b; + public EntityHuman owner; private int i; private int j = 0; private int k = 0; @@ -38,20 +38,20 @@ public class EntityFish extends Entity { public EntityFish(World world, EntityHuman entityhuman) { super(world); - this.b = entityhuman; - this.b.hookedFish = this; + this.owner = entityhuman; + this.owner.hookedFish = this; this.b(0.25F, 0.25F); - this.c(entityhuman.locX, entityhuman.locY + 1.62D - (double) entityhuman.height, entityhuman.locZ, entityhuman.yaw, entityhuman.pitch); - this.locX -= (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPositionRotation(entityhuman.locX, entityhuman.locY + 1.62D - (double) entityhuman.height, entityhuman.locZ, entityhuman.yaw, entityhuman.pitch); + this.locX -= (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * 0.16F); this.locY -= 0.10000000149011612D; - this.locZ -= (double) (MathHelper.a(this.yaw / 180.0F * 3.1415927F) * 0.16F); - this.a(this.locX, this.locY, this.locZ); + this.locZ -= (double) (MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPosition(this.locX, this.locY, this.locZ); this.height = 0.0F; float f = 0.4F; - this.motX = (double) (-MathHelper.a(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motZ = (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motY = (double) (-MathHelper.a(this.pitch / 180.0F * 3.1415927F) * f); + this.motX = (double) (-MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motZ = (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motY = (double) (-MathHelper.sin(this.pitch / 180.0F * 3.1415927F) * f); this.a(this.motX, this.motY, this.motZ, 1.5F, 1.0F); } @@ -97,15 +97,15 @@ public class EntityFish extends Entity { this.yaw = (float) ((double) this.yaw + d3 / (double) this.l); this.pitch = (float) ((double) this.pitch + (this.q - (double) this.pitch) / (double) this.l); --this.l; - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); this.c(this.yaw, this.pitch); } else { if (!this.world.isStatic) { - ItemStack itemstack = this.b.A(); + ItemStack itemstack = this.owner.A(); - if (this.b.dead || !this.b.N() || itemstack == null || itemstack.a() != Item.FISHING_ROD || this.g(this.b) > 1024.0D) { - this.D(); - this.b.hookedFish = null; + if (this.owner.dead || !this.owner.N() || itemstack == null || itemstack.getItem() != Item.FISHING_ROD || this.g(this.owner) > 1024.0D) { + this.die(); + this.owner.hookedFish = null; return; } @@ -131,7 +131,7 @@ public class EntityFish extends Entity { if (i == this.g) { ++this.i; if (this.i == 1200) { - this.D(); + this.die(); } return; @@ -147,14 +147,14 @@ public class EntityFish extends Entity { ++this.j; } - Vec3D vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - Vec3D vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vec3D vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + Vec3D vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { - vec3d1 = Vec3D.b(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); + vec3d1 = Vec3D.create(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); } Entity entity = null; @@ -166,7 +166,7 @@ public class EntityFish extends Entity { for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity) list.get(j); - if (entity1.d_() && (entity1 != this.b || this.j >= 5)) { + if (entity1.d_() && (entity1 != this.owner || this.j >= 5)) { float f = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.b((double) f, (double) f, (double) f); MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1); @@ -186,14 +186,14 @@ public class EntityFish extends Entity { } if (movingobjectposition != null) { - if (movingobjectposition.g != null) { + if (movingobjectposition.entity != null) { // CraftBukkit start // TODO add EntityDamagedByProjectileEvent : fishing hook? boolean stick; - if (movingobjectposition.g instanceof EntityLiving) { + if (movingobjectposition.entity instanceof EntityLiving) { CraftServer server = ((WorldServer) this.world).getServer(); - org.bukkit.entity.Entity shooter = (this.b == null) ? null : this.b.getBukkitEntity(); - org.bukkit.entity.Entity damagee = movingobjectposition.g.getBukkitEntity(); + org.bukkit.entity.Entity shooter = (this.owner == null) ? null : this.owner.getBukkitEntity(); + org.bukkit.entity.Entity damagee = movingobjectposition.entity.getBukkitEntity(); org.bukkit.entity.Entity projectile = this.getBukkitEntity(); DamageCause damageCause = EntityDamageEvent.DamageCause.ENTITY_ATTACK; int damage = 0; @@ -204,17 +204,17 @@ public class EntityFish extends Entity { if (!event.isCancelled()) { // this function returns if the fish should stick or not, i.e. !bounce - stick = movingobjectposition.g.a(this.b, event.getDamage()); + stick = movingobjectposition.entity.damageEntity(this.owner, event.getDamage()); } else { // event was cancelled, get if the fish should bounce or not stick = !event.getBounce(); } } else { - stick = movingobjectposition.g.a(this.b, 0); + stick = movingobjectposition.entity.damageEntity(this.owner, 0); } if (!stick) { // CraftBukkit end - this.c = movingobjectposition.g; + this.c = movingobjectposition.entity; } } else { this.h = true; @@ -222,7 +222,7 @@ public class EntityFish extends Entity { } if (!this.h) { - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); float f1 = MathHelper.a(this.motX * this.motX + this.motZ * this.motZ); this.yaw = (float) (Math.atan2(this.motX, this.motZ) * 180.0D / 3.1415927410125732D); @@ -247,7 +247,7 @@ public class EntityFish extends Entity { this.yaw = this.lastYaw + (this.yaw - this.lastYaw) * 0.2F; float f2 = 0.92F; - if (this.onGround || this.aW) { + if (this.onGround || this.positionChanged) { f2 = 0.5F; } @@ -270,8 +270,8 @@ public class EntityFish extends Entity { } else if (this.random.nextInt(500) == 0) { this.k = this.random.nextInt(30) + 10; this.motY -= 0.20000000298023224D; - this.world.a(this, "random.splash", 0.25F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); - float f3 = (float) MathHelper.b(this.boundingBox.b); + this.world.makeSound(this, "random.splash", 0.25F, 1.0F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F); + float f3 = (float) MathHelper.floor(this.boundingBox.b); int l; float f4; @@ -305,7 +305,7 @@ public class EntityFish extends Entity { this.motX *= (double) f2; this.motY *= (double) f2; this.motZ *= (double) f2; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } } } @@ -332,9 +332,9 @@ public class EntityFish extends Entity { byte b0 = 0; if (this.c != null) { - double d0 = this.b.locX - this.locX; - double d1 = this.b.locY - this.locY; - double d2 = this.b.locZ - this.locZ; + double d0 = this.owner.locX - this.locX; + double d1 = this.owner.locY - this.locY; + double d2 = this.owner.locZ - this.locZ; double d3 = (double) MathHelper.a(d0 * d0 + d1 * d1 + d2 * d2); double d4 = 0.1D; @@ -344,17 +344,17 @@ public class EntityFish extends Entity { b0 = 3; } else if (this.k > 0) { EntityItem entityitem = new EntityItem(this.world, this.locX, this.locY, this.locZ, new ItemStack(Item.RAW_FISH)); - double d5 = this.b.locX - this.locX; - double d6 = this.b.locY - this.locY; - double d7 = this.b.locZ - this.locZ; + double d5 = this.owner.locX - this.locX; + double d6 = this.owner.locY - this.locY; + double d7 = this.owner.locZ - this.locZ; double d8 = (double) MathHelper.a(d5 * d5 + d6 * d6 + d7 * d7); double d9 = 0.1D; entityitem.motX = d5 * d9; entityitem.motY = d6 * d9 + (double) MathHelper.a(d8) * 0.08D; entityitem.motZ = d7 * d9; - this.world.a((Entity) entityitem); - this.b.a(StatisticList.x, 1); + this.world.addEntity(entityitem); + this.owner.a(StatisticList.x, 1); b0 = 1; } @@ -362,8 +362,8 @@ public class EntityFish extends Entity { b0 = 2; } - this.D(); - this.b.hookedFish = null; + this.die(); + this.owner.hookedFish = null; return b0; } } diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java index f77ea7cf29..a33b0fe665 100644 --- a/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java @@ -40,9 +40,7 @@ public abstract class EntityHuman extends EntityLiving { public boolean fauxSleeping; // CraftBukkit end private ChunkCoordinates b; - // CraftBukkit start - public int sleepTicks; - // CraftBukkit end + public int sleepTicks; // CraftBukkit (public) public float z; public float A; private ChunkCoordinates d; @@ -54,9 +52,9 @@ public abstract class EntityHuman extends EntityLiving { this.defaultContainer = new ContainerPlayer(this.inventory, !world.isStatic); this.activeContainer = this.defaultContainer; this.height = 1.62F; - ChunkCoordinates chunkcoordinates = world.m(); + ChunkCoordinates chunkcoordinates = world.getSpawn(); - this.c((double) chunkcoordinates.a + 0.5D, (double) (chunkcoordinates.b + 1), (double) chunkcoordinates.c + 0.5D, 0.0F, 0.0F); + this.setPositionRotation((double) chunkcoordinates.x + 0.5D, (double) (chunkcoordinates.y + 1), (double) chunkcoordinates.z + 0.5D, 0.0F, 0.0F); this.health = 20; this.P = "humanoid"; this.O = 180.0F; @@ -70,7 +68,7 @@ public abstract class EntityHuman extends EntityLiving { } public void f_() { - if (this.F()) { + if (this.isSleeping()) { ++this.sleepTicks; if (this.sleepTicks > 100) { this.sleepTicks = 100; @@ -133,7 +131,7 @@ public abstract class EntityHuman extends EntityLiving { } protected boolean p_() { - return this.health <= 0 || this.F(); + return this.health <= 0 || this.isSleeping(); } protected void u() { @@ -161,7 +159,7 @@ public abstract class EntityHuman extends EntityLiving { } public void r() { - if (this.world.j == 0 && this.health < 20 && this.ticksLived % 20 * 12 == 0) { + if (this.world.spawnMonsters == 0 && this.health < 20 && this.ticksLived % 20 * 12 == 0) { this.b(1); } @@ -208,7 +206,7 @@ public abstract class EntityHuman extends EntityLiving { public void a(Entity entity) { super.a(entity); this.b(0.2F, 0.2F); - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); this.motY = 0.10000000149011612D; if (this.name.equals("Notch")) { this.a(new ItemStack(Item.APPLE, 1), true); @@ -216,8 +214,8 @@ public abstract class EntityHuman extends EntityLiving { this.inventory.h(); if (entity != null) { - this.motX = (double) (-MathHelper.b((this.aa + this.yaw) * 3.1415927F / 180.0F) * 0.1F); - this.motZ = (double) (-MathHelper.a((this.aa + this.yaw) * 3.1415927F / 180.0F) * 0.1F); + this.motX = (double) (-MathHelper.cos((this.aa + this.yaw) * 3.1415927F / 180.0F) * 0.1F); + this.motZ = (double) (-MathHelper.sin((this.aa + this.yaw) * 3.1415927F / 180.0F) * 0.1F); } else { this.motX = this.motZ = 0.0D; } @@ -236,7 +234,7 @@ public abstract class EntityHuman extends EntityLiving { } public void z() { - this.a(this.inventory.a(this.inventory.c, 1), false); + this.a(this.inventory.a(this.inventory.itemInHandIndex, 1), false); } public void b(ItemStack itemstack) { @@ -247,7 +245,7 @@ public abstract class EntityHuman extends EntityLiving { if (itemstack != null) { EntityItem entityitem = new EntityItem(this.world, this.locX, this.locY - 0.30000001192092896D + (double) this.q(), this.locZ, itemstack); - entityitem.c = 40; + entityitem.pickupDelay = 40; float f = 0.1F; float f1; @@ -255,14 +253,14 @@ public abstract class EntityHuman extends EntityLiving { f1 = this.random.nextFloat() * 0.5F; float f2 = this.random.nextFloat() * 3.1415927F * 2.0F; - entityitem.motX = (double) (-MathHelper.a(f2) * f1); - entityitem.motZ = (double) (MathHelper.b(f2) * f1); + entityitem.motX = (double) (-MathHelper.sin(f2) * f1); + entityitem.motZ = (double) (MathHelper.cos(f2) * f1); entityitem.motY = 0.20000000298023224D; } else { f = 0.3F; - entityitem.motX = (double) (-MathHelper.a(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - entityitem.motZ = (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - entityitem.motY = (double) (-MathHelper.a(this.pitch / 180.0F * 3.1415927F) * f + 0.1F); + entityitem.motX = (double) (-MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + entityitem.motZ = (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + entityitem.motY = (double) (-MathHelper.sin(this.pitch / 180.0F * 3.1415927F) * f + 0.1F); f = 0.02F; f1 = this.random.nextFloat() * 3.1415927F * 2.0F; f *= this.random.nextFloat(); @@ -294,7 +292,7 @@ public abstract class EntityHuman extends EntityLiving { } protected void a(EntityItem entityitem) { - this.world.a((Entity) entityitem); + this.world.addEntity(entityitem); } public float a(Block block) { @@ -324,11 +322,11 @@ public abstract class EntityHuman extends EntityLiving { this.sleeping = nbttagcompound.m("Sleeping"); this.sleepTicks = nbttagcompound.d("SleepTimer"); if (this.sleeping) { - this.b = new ChunkCoordinates(MathHelper.b(this.locX), MathHelper.b(this.locY), MathHelper.b(this.locZ)); + this.b = new ChunkCoordinates(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ)); this.a(true, true, false); } - if (nbttagcompound.b("SpawnX") && nbttagcompound.b("SpawnY") && nbttagcompound.b("SpawnZ")) { + if (nbttagcompound.hasKey("SpawnX") && nbttagcompound.hasKey("SpawnY") && nbttagcompound.hasKey("SpawnZ")) { this.d = new ChunkCoordinates(nbttagcompound.e("SpawnX"), nbttagcompound.e("SpawnY"), nbttagcompound.e("SpawnZ")); } } @@ -340,9 +338,9 @@ public abstract class EntityHuman extends EntityLiving { nbttagcompound.a("Sleeping", this.sleeping); nbttagcompound.a("SleepTimer", (short) this.sleepTicks); if (this.d != null) { - nbttagcompound.a("SpawnX", this.d.a); - nbttagcompound.a("SpawnY", this.d.b); - nbttagcompound.a("SpawnZ", this.d.c); + nbttagcompound.a("SpawnX", this.d.x); + nbttagcompound.a("SpawnY", this.d.y); + nbttagcompound.a("SpawnZ", this.d.z); } } @@ -350,7 +348,7 @@ public abstract class EntityHuman extends EntityLiving { public void b(int i, int j, int k) {} - public void b(Entity entity, int i) {} + public void receive(Entity entity, int i) {} public float q() { return 0.12F; @@ -360,25 +358,25 @@ public abstract class EntityHuman extends EntityLiving { this.height = 1.62F; } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { this.at = 0; if (this.health <= 0) { return false; } else { - if (this.F()) { + if (this.isSleeping()) { this.a(true, true, false); } if (entity instanceof EntityMonster || entity instanceof EntityArrow) { - if (this.world.j == 0) { + if (this.world.spawnMonsters == 0) { i = 0; } - if (this.world.j == 1) { + if (this.world.spawnMonsters == 1) { i = i / 3 + 1; } - if (this.world.j == 3) { + if (this.world.spawnMonsters == 3) { i = i * 3 / 2; } } @@ -388,8 +386,8 @@ public abstract class EntityHuman extends EntityLiving { } else { Object object = entity; - if (entity instanceof EntityArrow && ((EntityArrow) entity).b != null) { - object = ((EntityArrow) entity).b; + if (entity instanceof EntityArrow && ((EntityArrow) entity).shooter != null) { + object = ((EntityArrow) entity).shooter; } // CraftBukkit start - this is here instead of EntityMonster because EntityLiving(s) that aren't monsters @@ -413,7 +411,7 @@ public abstract class EntityHuman extends EntityLiving { } this.a(StatisticList.t, i); - return super.a(entity, i); + return super.damageEntity(entity, i); } } } @@ -474,11 +472,11 @@ public abstract class EntityHuman extends EntityLiving { } public ItemStack A() { - return this.inventory.b(); + return this.inventory.getItemInHand(); } public void B() { - this.inventory.a(this.inventory.c, (ItemStack) null); + this.inventory.setItem(this.inventory.itemInHandIndex, (ItemStack) null); } public double C() { @@ -512,7 +510,7 @@ public abstract class EntityHuman extends EntityLiving { } // CraftBukkit end - entity.a(this, i); + entity.damageEntity(this, i); ItemStack itemstack = this.A(); if (itemstack != null && entity instanceof EntityLiving) { @@ -535,8 +533,8 @@ public abstract class EntityHuman extends EntityLiving { public void a(ItemStack itemstack) {} - public void D() { - super.D(); + public void die() { + super.die(); this.defaultContainer.a(this); if (this.activeContainer != null) { this.activeContainer.a(this); @@ -548,8 +546,8 @@ public abstract class EntityHuman extends EntityLiving { } public EnumBedError a(int i, int j, int k) { - if (!this.F() && this.N()) { - if (this.world.m.c) { + if (!this.isSleeping() && this.N()) { + if (this.world.worldProvider.c) { return EnumBedError.NOT_POSSIBLE_HERE; } else if (this.world.d()) { return EnumBedError.NOT_POSSIBLE_NOW; @@ -561,16 +559,16 @@ public abstract class EntityHuman extends EntityLiving { org.bukkit.block.Block bed = ((WorldServer) world).getWorld().getBlockAt(i, j, k); PlayerBedEnterEvent event = new PlayerBedEnterEvent(player, bed); server.getPluginManager().callEvent(event); - + if (event.isCancelled()) { return EnumBedError.OTHER_PROBLEM; } } // CraftBukkit end - + this.b(0.2F, 0.2F); this.height = 0.2F; - if (this.world.f(i, j, k)) { + if (this.world.isLoaded(i, j, k)) { int l = this.world.getData(i, j, k); int i1 = BlockBed.c(l); float f = 0.5F; @@ -594,9 +592,9 @@ public abstract class EntityHuman extends EntityLiving { } this.e(i1); - this.a((double) ((float) i + f), (double) ((float) j + 0.9375F), (double) ((float) k + f1)); + this.setPosition((double) ((float) i + f), (double) ((float) j + 0.9375F), (double) ((float) k + f1)); } else { - this.a((double) ((float) i + 0.5F), (double) ((float) j + 0.9375F), (double) ((float) k + 0.5F)); + this.setPosition((double) ((float) i + 0.5F), (double) ((float) j + 0.9375F), (double) ((float) k + 0.5F)); } this.sleeping = true; @@ -604,7 +602,7 @@ public abstract class EntityHuman extends EntityLiving { this.b = new ChunkCoordinates(i, j, k); this.motX = this.motZ = this.motY = 0.0D; if (!this.world.isStatic) { - this.world.q(); + this.world.everyoneSleeping(); } return EnumBedError.OK; @@ -643,19 +641,19 @@ public abstract class EntityHuman extends EntityLiving { ChunkCoordinates chunkcoordinates = this.b; ChunkCoordinates chunkcoordinates1 = this.b; - if (chunkcoordinates != null && this.world.getTypeId(chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c) == Block.BED.id) { - BlockBed.a(this.world, chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c, false); - chunkcoordinates1 = BlockBed.f(this.world, chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c, 0); + if (chunkcoordinates != null && this.world.getTypeId(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z) == Block.BED.id) { + BlockBed.a(this.world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, false); + chunkcoordinates1 = BlockBed.f(this.world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0); if (chunkcoordinates1 == null) { - chunkcoordinates1 = new ChunkCoordinates(chunkcoordinates.a, chunkcoordinates.b + 1, chunkcoordinates.c); + chunkcoordinates1 = new ChunkCoordinates(chunkcoordinates.x, chunkcoordinates.y + 1, chunkcoordinates.z); } - this.a((double) ((float) chunkcoordinates1.a + 0.5F), (double) ((float) chunkcoordinates1.b + this.height + 0.1F), (double) ((float) chunkcoordinates1.c + 0.5F)); + this.setPosition((double) ((float) chunkcoordinates1.x + 0.5F), (double) ((float) chunkcoordinates1.y + this.height + 0.1F), (double) ((float) chunkcoordinates1.z + 0.5F)); } this.sleeping = false; if (!this.world.isStatic && flag1) { - this.world.q(); + this.world.everyoneSleeping(); } // CraftBukkit start @@ -664,7 +662,7 @@ public abstract class EntityHuman extends EntityLiving { CraftServer server = ((WorldServer) world).getServer(); org.bukkit.block.Block bed; if (chunkcoordinates != null) { - bed = ((WorldServer) world).getWorld().getBlockAt(chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c); + bed = ((WorldServer) world).getWorld().getBlockAt(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z); } else { bed = ((WorldServer) world).getWorld().getBlockAt(player.getLocation()); } @@ -685,30 +683,30 @@ public abstract class EntityHuman extends EntityLiving { } private boolean m() { - return this.world.getTypeId(this.b.a, this.b.b, this.b.c) == Block.BED.id; + return this.world.getTypeId(this.b.x, this.b.y, this.b.z) == Block.BED.id; } - public static ChunkCoordinates a(World world, ChunkCoordinates chunkcoordinates) { + public static ChunkCoordinates getBed(World world, ChunkCoordinates chunkcoordinates) { IChunkProvider ichunkprovider = world.n(); - ichunkprovider.c(chunkcoordinates.a - 3 >> 4, chunkcoordinates.c - 3 >> 4); - ichunkprovider.c(chunkcoordinates.a + 3 >> 4, chunkcoordinates.c - 3 >> 4); - ichunkprovider.c(chunkcoordinates.a - 3 >> 4, chunkcoordinates.c + 3 >> 4); - ichunkprovider.c(chunkcoordinates.a + 3 >> 4, chunkcoordinates.c + 3 >> 4); - if (world.getTypeId(chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c) != Block.BED.id) { + ichunkprovider.getChunkAt(chunkcoordinates.x - 3 >> 4, chunkcoordinates.z - 3 >> 4); + ichunkprovider.getChunkAt(chunkcoordinates.x + 3 >> 4, chunkcoordinates.z - 3 >> 4); + ichunkprovider.getChunkAt(chunkcoordinates.x - 3 >> 4, chunkcoordinates.z + 3 >> 4); + ichunkprovider.getChunkAt(chunkcoordinates.x + 3 >> 4, chunkcoordinates.z + 3 >> 4); + if (world.getTypeId(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z) != Block.BED.id) { return null; } else { - ChunkCoordinates chunkcoordinates1 = BlockBed.f(world, chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c, 0); + ChunkCoordinates chunkcoordinates1 = BlockBed.f(world, chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z, 0); return chunkcoordinates1; } } - public boolean F() { + public boolean isSleeping() { return this.sleeping; } - public boolean G() { + public boolean isDeeplySleeping() { return this.sleeping && this.sleepTicks >= 100; } diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java index 50299f727d..3540abd467 100644 --- a/src/main/java/net/minecraft/server/EntityItem.java +++ b/src/main/java/net/minecraft/server/EntityItem.java @@ -8,10 +8,10 @@ import org.bukkit.event.player.PlayerPickupItemEvent; public class EntityItem extends Entity { - public ItemStack a; + public ItemStack itemStack; private int e; public int b = 0; - public int c; + public int pickupDelay; private int f = 5; public float d = (float) (Math.random() * 3.141592653589793D * 2.0D); @@ -19,8 +19,8 @@ public class EntityItem extends Entity { super(world); this.b(0.25F, 0.25F); this.height = this.width / 2.0F; - this.a(d0, d1, d2); - this.a = itemstack; + this.setPosition(d0, d1, d2); + this.itemStack = itemstack; this.yaw = (float) (Math.random() * 360.0D); this.motX = (double) ((float) (Math.random() * 0.20000000298023224D - 0.10000000149011612D)); this.motY = 0.20000000298023224D; @@ -41,28 +41,28 @@ public class EntityItem extends Entity { public void f_() { super.f_(); - if (this.c > 0) { - --this.c; + if (this.pickupDelay > 0) { + --this.pickupDelay; } this.lastX = this.locX; this.lastY = this.locY; this.lastZ = this.locZ; this.motY -= 0.03999999910593033D; - if (this.world.getMaterial(MathHelper.b(this.locX), MathHelper.b(this.locY), MathHelper.b(this.locZ)) == Material.LAVA) { + if (this.world.getMaterial(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ)) == Material.LAVA) { this.motY = 0.20000000298023224D; this.motX = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F); this.motZ = (double) ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F); - this.world.a(this, "random.fizz", 0.4F, 2.0F + this.random.nextFloat() * 0.4F); + this.world.makeSound(this, "random.fizz", 0.4F, 2.0F + this.random.nextFloat() * 0.4F); } this.g(this.locX, this.locY, this.locZ); - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); float f = 0.98F; if (this.onGround) { f = 0.58800006F; - int i = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ)); + int i = this.world.getTypeId(MathHelper.floor(this.locX), MathHelper.floor(this.boundingBox.b) - 1, MathHelper.floor(this.locZ)); if (i > 0) { f = Block.byId[i].frictionFactor * 0.98F; @@ -79,7 +79,7 @@ public class EntityItem extends Entity { ++this.e; ++this.b; if (this.b >= 6000) { - this.D(); + this.die(); } } @@ -88,9 +88,9 @@ public class EntityItem extends Entity { } private boolean g(double d0, double d1, double d2) { - int i = MathHelper.b(d0); - int j = MathHelper.b(d1); - int k = MathHelper.b(d2); + int i = MathHelper.floor(d0); + int j = MathHelper.floor(d1); + int k = MathHelper.floor(d2); double d3 = d0 - (double) i; double d4 = d1 - (double) j; double d5 = d2 - (double) k; @@ -166,14 +166,14 @@ public class EntityItem extends Entity { } protected void a(int i) { - this.a((Entity) null, i); + this.damageEntity((Entity) null, i); } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { this.W(); this.f -= i; if (this.f <= 0) { - this.D(); + this.die(); } return false; @@ -182,7 +182,7 @@ public class EntityItem extends Entity { public void a(NBTTagCompound nbttagcompound) { nbttagcompound.a("Health", (short) ((byte) this.f)); nbttagcompound.a("Age", (short) this.b); - nbttagcompound.a("Item", this.a.a(new NBTTagCompound())); + nbttagcompound.a("Item", this.itemStack.a(new NBTTagCompound())); } public void b(NBTTagCompound nbttagcompound) { @@ -190,26 +190,27 @@ public class EntityItem extends Entity { this.b = nbttagcompound.d("Age"); NBTTagCompound nbttagcompound1 = nbttagcompound.k("Item"); - this.a = new ItemStack(nbttagcompound1); + this.itemStack = new ItemStack(nbttagcompound1); } public void b(EntityHuman entityhuman) { if (!this.world.isStatic) { - int i = this.a.count; + int i = this.itemStack.count; // CraftBukkit start - if (this.c == 0) { + if (this.pickupDelay == 0) { Player player = (Player) entityhuman.getBukkitEntity(); PlayerPickupItemEvent event = new PlayerPickupItemEvent(player, (Item) this.getBukkitEntity()); ((WorldServer) world).getServer().getPluginManager().callEvent(event); - if (!event.isCancelled() && entityhuman.inventory.a(this.a)) { - this.world.a(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); - entityhuman.b(this, i); - this.D(); + if (event.isCancelled() || !entityhuman.inventory.canHold(this.itemStack)) { + return; } + // CraftBukkit end + this.world.makeSound(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); + entityhuman.receive(this, i); + this.die(); } - // CraftBukkit end } } } diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 3dcc4bc34d..730602fca3 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -75,7 +75,7 @@ public abstract class EntityLiving extends Entity { super(world); this.aD = true; this.E = (float) (Math.random() + 1.0D) * 0.01F; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); this.D = (float) Math.random() * 12398.0F; this.yaw = (float) (Math.random() * 3.1415927410125732D * 2.0D); this.bm = 0.5F; @@ -84,7 +84,7 @@ public abstract class EntityLiving extends Entity { protected void a() {} public boolean e(Entity entity) { - return this.world.a(Vec3D.b(this.locX, this.locY + (double) this.q(), this.locZ), Vec3D.b(entity.locX, entity.locY + (double) entity.q(), entity.locZ)) == null; + return this.world.a(Vec3D.create(this.locX, this.locY + (double) this.q(), this.locZ), Vec3D.create(entity.locX, entity.locY + (double) entity.q(), entity.locZ)) == null; } public boolean d_() { @@ -107,7 +107,7 @@ public abstract class EntityLiving extends Entity { String s = this.e(); if (s != null) { - this.world.a(this, s, this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); + this.world.makeSound(this, s, this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); } } @@ -129,8 +129,8 @@ public abstract class EntityLiving extends Entity { EntityDamageEvent event = new EntityDamageEvent(victim, damageType, damage); server.getPluginManager().callEvent(event); - if (!event.isCancelled() && event.getDamage() != 0) { - this.a((Entity) null, event.getDamage()); + if (!event.isCancelled()) { + this.damageEntity((Entity) null, event.getDamage()); } // CraftBukkit end } @@ -163,8 +163,8 @@ public abstract class EntityLiving extends Entity { EntityDamageEvent event = new EntityDamageEvent(damagee, damageType, damageDone); server.getPluginManager().callEvent(event); - if (!event.isCancelled() && event.getDamage() != 0) { - this.a((Entity) null, event.getDamage()); + if (!event.isCancelled()) { + this.damageEntity((Entity) null, event.getDamage()); } // CraftBukkit end } @@ -191,7 +191,7 @@ public abstract class EntityLiving extends Entity { ++this.deathTicks; if (this.deathTicks > 20) { this.Q(); - this.D(); + this.die(); for (i = 0; i < 20; ++i) { double d0 = this.random.nextGaussian() * 0.02D; @@ -338,7 +338,7 @@ public abstract class EntityLiving extends Entity { } } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { if (this.world.isStatic) { return false; } else { @@ -387,12 +387,12 @@ public abstract class EntityLiving extends Entity { if (this.health <= 0) { if (flag) { - this.world.a(this, this.g(), this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); + this.world.makeSound(this, this.g(), this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); } this.a(entity); } else if (flag) { - this.world.a(this, this.f(), this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); + this.world.makeSound(this, this.f(), this.i(), (this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F); } return true; @@ -488,16 +488,16 @@ public abstract class EntityLiving extends Entity { server.getPluginManager().callEvent(event); if (!event.isCancelled() && event.getDamage() != 0) { - this.a((Entity) null, event.getDamage()); + this.damageEntity((Entity) null, event.getDamage()); } // CraftBukkit end - int j = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.locY - 0.20000000298023224D - (double) this.height), MathHelper.b(this.locZ)); + int j = this.world.getTypeId(MathHelper.floor(this.locX), MathHelper.floor(this.locY - 0.20000000298023224D - (double) this.height), MathHelper.floor(this.locZ)); if (j > 0) { StepSound stepsound = Block.byId[j].stepSound; - this.world.a(this, stepsound.c(), stepsound.a() * 0.5F, stepsound.b() * 0.75F); + this.world.makeSound(this, stepsound.getName(), stepsound.getVolume1() * 0.5F, stepsound.getVolume2() * 0.75F); } } } @@ -508,23 +508,23 @@ public abstract class EntityLiving extends Entity { if (this.g_()) { d0 = this.locY; this.a(f, f1, 0.02F); - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); this.motX *= 0.800000011920929D; this.motY *= 0.800000011920929D; this.motZ *= 0.800000011920929D; this.motY -= 0.02D; - if (this.aW && this.b(this.motX, this.motY + 0.6000000238418579D - this.locY + d0, this.motZ)) { + if (this.positionChanged && this.b(this.motX, this.motY + 0.6000000238418579D - this.locY + d0, this.motZ)) { this.motY = 0.30000001192092896D; } } else if (this.V()) { d0 = this.locY; this.a(f, f1, 0.02F); - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); this.motX *= 0.5D; this.motY *= 0.5D; this.motZ *= 0.5D; this.motY -= 0.02D; - if (this.aW && this.b(this.motX, this.motY + 0.6000000238418579D - this.locY + d0, this.motZ)) { + if (this.positionChanged && this.b(this.motX, this.motY + 0.6000000238418579D - this.locY + d0, this.motZ)) { this.motY = 0.30000001192092896D; } } else { @@ -532,7 +532,7 @@ public abstract class EntityLiving extends Entity { if (this.onGround) { f2 = 0.54600006F; - int i = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ)); + int i = this.world.getTypeId(MathHelper.floor(this.locX), MathHelper.floor(this.boundingBox.b) - 1, MathHelper.floor(this.locZ)); if (i > 0) { f2 = Block.byId[i].frictionFactor * 0.91F; @@ -545,7 +545,7 @@ public abstract class EntityLiving extends Entity { f2 = 0.91F; if (this.onGround) { f2 = 0.54600006F; - int j = this.world.getTypeId(MathHelper.b(this.locX), MathHelper.b(this.boundingBox.b) - 1, MathHelper.b(this.locZ)); + int j = this.world.getTypeId(MathHelper.floor(this.locX), MathHelper.floor(this.boundingBox.b) - 1, MathHelper.floor(this.locZ)); if (j > 0) { f2 = Block.byId[j].frictionFactor * 0.91F; @@ -558,13 +558,13 @@ public abstract class EntityLiving extends Entity { this.motY = -0.15D; } - if (this.Z() && this.motY < 0.0D) { + if (this.isSneaking() && this.motY < 0.0D) { this.motY = 0.0D; } } - this.c(this.motX, this.motY, this.motZ); - if (this.aW && this.n()) { + this.move(this.motX, this.motY, this.motZ); + if (this.positionChanged && this.n()) { this.motY = 0.2D; } @@ -588,9 +588,9 @@ public abstract class EntityLiving extends Entity { } public boolean n() { - int i = MathHelper.b(this.locX); - int j = MathHelper.b(this.boundingBox.b); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.boundingBox.b); + int k = MathHelper.floor(this.locZ); return this.world.getTypeId(i, j, k) == Block.LADDER.id || this.world.getTypeId(i, j + 1, k) == Block.LADDER.id; } @@ -604,7 +604,7 @@ public abstract class EntityLiving extends Entity { public void b(NBTTagCompound nbttagcompound) { this.health = nbttagcompound.d("Health"); - if (!nbttagcompound.b("Health")) { + if (!nbttagcompound.hasKey("Health")) { this.health = 10; } @@ -640,7 +640,7 @@ public abstract class EntityLiving extends Entity { this.yaw = (float) ((double) this.yaw + d3 / (double) this.al); this.pitch = (float) ((double) this.pitch + (this.aq - (double) this.pitch) / (double) this.al); --this.al; - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); this.c(this.yaw, this.pitch); } @@ -677,7 +677,7 @@ public abstract class EntityLiving extends Entity { Entity entity = (Entity) list.get(i); if (entity.e_()) { - entity.h(this); + entity.collide(this); } } } @@ -706,14 +706,14 @@ public abstract class EntityLiving extends Entity { double d3 = d0 * d0 + d1 * d1 + d2 * d2; if (d3 > 16384.0D) { - this.D(); + this.die(); } if (this.at > 600 && this.random.nextInt(800) == 0) { if (d3 < 1024.0D) { this.at = 0; } else { - this.D(); + this.die(); } } } @@ -812,7 +812,7 @@ public abstract class EntityLiving extends Entity { public void Q() {} public boolean b() { - return this.world.a(this.boundingBox) && this.world.a((Entity) this, this.boundingBox).size() == 0 && !this.world.b(this.boundingBox); + return this.world.containsEntity(this.boundingBox) && this.world.getEntities(this, this.boundingBox).size() == 0 && !this.world.b(this.boundingBox); } protected void R() { @@ -829,7 +829,7 @@ public abstract class EntityLiving extends Entity { return; } damageDone = event.getDamage(); - this.a((Entity) null, damageDone); + this.damageEntity((Entity) null, damageDone); // CraftBukkit end } @@ -844,20 +844,20 @@ public abstract class EntityLiving extends Entity { float f4; if (f == 1.0F) { - f1 = MathHelper.b(-this.yaw * 0.017453292F - 3.1415927F); - f2 = MathHelper.a(-this.yaw * 0.017453292F - 3.1415927F); - f3 = -MathHelper.b(-this.pitch * 0.017453292F); - f4 = MathHelper.a(-this.pitch * 0.017453292F); - return Vec3D.b((double) (f2 * f3), (double) f4, (double) (f1 * f3)); + f1 = MathHelper.cos(-this.yaw * 0.017453292F - 3.1415927F); + f2 = MathHelper.sin(-this.yaw * 0.017453292F - 3.1415927F); + f3 = -MathHelper.cos(-this.pitch * 0.017453292F); + f4 = MathHelper.sin(-this.pitch * 0.017453292F); + return Vec3D.create((double) (f2 * f3), (double) f4, (double) (f1 * f3)); } else { f1 = this.lastPitch + (this.pitch - this.lastPitch) * f; f2 = this.lastYaw + (this.yaw - this.lastYaw) * f; - f3 = MathHelper.b(-f2 * 0.017453292F - 3.1415927F); - f4 = MathHelper.a(-f2 * 0.017453292F - 3.1415927F); - float f5 = -MathHelper.b(-f1 * 0.017453292F); - float f6 = MathHelper.a(-f1 * 0.017453292F); + f3 = MathHelper.cos(-f2 * 0.017453292F - 3.1415927F); + f4 = MathHelper.sin(-f2 * 0.017453292F - 3.1415927F); + float f5 = -MathHelper.cos(-f1 * 0.017453292F); + float f6 = MathHelper.sin(-f1 * 0.017453292F); - return Vec3D.b((double) (f4 * f5), (double) f6, (double) (f3 * f5)); + return Vec3D.create((double) (f4 * f5), (double) f6, (double) (f3 * f5)); } } @@ -865,7 +865,7 @@ public abstract class EntityLiving extends Entity { return 4; } - public boolean F() { + public boolean isSleeping() { return false; } } diff --git a/src/main/java/net/minecraft/server/EntityMinecart.java b/src/main/java/net/minecraft/server/EntityMinecart.java index fb87d30b65..c9465cdd66 100644 --- a/src/main/java/net/minecraft/server/EntityMinecart.java +++ b/src/main/java/net/minecraft/server/EntityMinecart.java @@ -12,16 +12,16 @@ import org.bukkit.event.vehicle.*; public class EntityMinecart extends Entity implements IInventory { - private ItemStack[] h; - public int a; + private ItemStack[] items; + public int damage; public int b; public int c; private boolean i; - public int d; + public int type; public int e; public double f; public double g; - private static final int[][][] j = new int[][][] { { { 0, 0, -1}, { 0, 0, 1}}, { { -1, 0, 0}, { 1, 0, 0}}, { { -1, -1, 0}, { 1, 0, 0}}, { { -1, 0, 0}, { 1, -1, 0}}, { { 0, 0, -1}, { 0, -1, 1}}, { { 0, -1, -1}, { 0, 0, 1}}, { { 0, 0, 1}, { 1, 0, 0}}, { { 0, 0, 1}, { -1, 0, 0}}, { { 0, 0, -1}, { -1, 0, 0}}, { { 0, 0, -1}, { 1, 0, 0}}}; + private static final int[][][] matrix = new int[][][] { { { 0, 0, -1}, { 0, 0, 1}}, { { -1, 0, 0}, { 1, 0, 0}}, { { -1, -1, 0}, { 1, 0, 0}}, { { -1, 0, 0}, { 1, -1, 0}}, { { 0, 0, -1}, { 0, -1, 1}}, { { 0, -1, -1}, { 0, 0, 1}}, { { 0, 0, 1}, { 1, 0, 0}}, { { 0, 0, 1}, { -1, 0, 0}}, { { 0, 0, -1}, { -1, 0, 0}}, { { 0, 0, -1}, { 1, 0, 0}}}; private int k; private double l; private double m; @@ -40,14 +40,14 @@ public class EntityMinecart extends Entity implements IInventory { public double maxSpeed = 0.4D; public ItemStack[] getContents() { - return this.h; + return this.items; } // CraftBukkit end public EntityMinecart(World world) { super(world); - this.h = new ItemStack[27]; // CraftBukkit - this.a = 0; + this.items = new ItemStack[27]; // CraftBukkit + this.damage = 0; this.b = 0; this.c = 1; this.i = false; @@ -76,14 +76,14 @@ public class EntityMinecart extends Entity implements IInventory { public EntityMinecart(World world, double d0, double d1, double d2, int i) { this(world); - this.a(d0, d1 + (double) this.height, d2); + this.setPosition(d0, d1 + (double) this.height, d2); this.motX = 0.0D; this.motY = 0.0D; this.motZ = 0.0D; this.lastX = d0; this.lastY = d1; this.lastZ = d2; - this.d = i; + this.type = i; // CraftBukkit start CraftServer server = ((WorldServer) this.world).getServer(); @@ -98,7 +98,7 @@ public class EntityMinecart extends Entity implements IInventory { return (double) this.width * 0.0D - 0.30000001192092896D; } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { if (!this.world.isStatic && !this.dead) { // CraftBukkit start Vehicle vehicle = (Vehicle) this.getBukkitEntity(); @@ -118,27 +118,27 @@ public class EntityMinecart extends Entity implements IInventory { this.c = -this.c; this.b = 10; this.W(); - this.a += i * 10; - if (this.a > 40) { + this.damage += i * 10; + if (this.damage > 40) { // CraftBukkit start VehicleDestroyEvent destroyEvent = new VehicleDestroyEvent(vehicle, passenger); ((WorldServer) this.world).getServer().getPluginManager().callEvent(destroyEvent); if (destroyEvent.isCancelled()) { - this.a = 40; // Maximize damage so this doesn't get triggered again right away + this.damage = 40; // Maximize damage so this doesn't get triggered again right away return true; } // CraftBukkit end this.a(Item.MINECART.id, 1, 0.0F); - if (this.d == 1) { + if (this.type == 1) { this.a(Block.CHEST.id, 1, 0.0F); - } else if (this.d == 2) { + } else if (this.type == 2) { this.a(Block.FURNACE.id, 1, 0.0F); } - this.D(); + this.die(); } return true; @@ -151,9 +151,9 @@ public class EntityMinecart extends Entity implements IInventory { return !this.dead; } - public void D() { - for (int i = 0; i < this.q_(); ++i) { - ItemStack itemstack = this.c_(i); + public void die() { + for (int i = 0; i < this.getSize(); ++i) { + ItemStack itemstack = this.getItem(i); if (itemstack != null) { float f = this.random.nextFloat() * 0.8F + 0.1F; @@ -168,18 +168,18 @@ public class EntityMinecart extends Entity implements IInventory { } itemstack.count -= j; - EntityItem entityitem = new EntityItem(this.world, this.locX + (double) f, this.locY + (double) f1, this.locZ + (double) f2, new ItemStack(itemstack.id, j, itemstack.h())); + EntityItem entityitem = new EntityItem(this.world, this.locX + (double) f, this.locY + (double) f1, this.locZ + (double) f2, new ItemStack(itemstack.id, j, itemstack.getData())); float f3 = 0.05F; entityitem.motX = (double) ((float) this.random.nextGaussian() * f3); entityitem.motY = (double) ((float) this.random.nextGaussian() * f3 + 0.2F); entityitem.motZ = (double) ((float) this.random.nextGaussian() * f3); - this.world.a((Entity) entityitem); + this.world.addEntity(entityitem); } } } - super.D(); + super.die(); } public void f_() { @@ -195,8 +195,8 @@ public class EntityMinecart extends Entity implements IInventory { --this.b; } - if (this.a > 0) { - --this.a; + if (this.damage > 0) { + --this.damage; } double d0; @@ -218,10 +218,10 @@ public class EntityMinecart extends Entity implements IInventory { this.yaw = (float) ((double) this.yaw + d0 / (double) this.k); this.pitch = (float) ((double) this.pitch + (this.p - (double) this.pitch) / (double) this.k); --this.k; - this.a(d1, d2, d3); + this.setPosition(d1, d2, d3); this.c(this.yaw, this.pitch); } else { - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); this.c(this.yaw, this.pitch); } } else { @@ -229,9 +229,9 @@ public class EntityMinecart extends Entity implements IInventory { this.lastY = this.locY; this.lastZ = this.locZ; this.motY -= 0.03999999910593033D; - int i = MathHelper.b(this.locX); - int j = MathHelper.b(this.locY); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.locY); + int k = MathHelper.floor(this.locZ); if (this.world.getTypeId(i, j - 1, k) == Block.RAILS.id) { --j; @@ -267,8 +267,7 @@ public class EntityMinecart extends Entity implements IInventory { this.motZ -= d0; } - // CraftBukkit -- be explicit. - int[][] aint = EntityMinecart.j[l]; + int[][] aint = matrix[l]; double d5 = (double) (aint[1][0] - aint[0][0]); double d6 = (double) (aint[1][2] - aint[0][2]); double d7 = Math.sqrt(d5 * d5 + d6 * d6); @@ -310,7 +309,7 @@ public class EntityMinecart extends Entity implements IInventory { this.locX = d11 + d5 * d10; this.locZ = d12 + d6 * d10; - this.a(this.locX, this.locY + (double) this.height, this.locZ); + this.setPosition(this.locX, this.locY + (double) this.height, this.locZ); d15 = this.motX; d17 = this.motZ; if (this.passenger != null) { @@ -334,11 +333,11 @@ public class EntityMinecart extends Entity implements IInventory { d17 = d4; } - this.c(d15, 0.0D, d17); - if (aint[0][1] != 0 && MathHelper.b(this.locX) - i == aint[0][0] && MathHelper.b(this.locZ) - k == aint[0][2]) { - this.a(this.locX, this.locY + (double) aint[0][1], this.locZ); - } else if (aint[1][1] != 0 && MathHelper.b(this.locX) - i == aint[1][0] && MathHelper.b(this.locZ) - k == aint[1][2]) { - this.a(this.locX, this.locY + (double) aint[1][1], this.locZ); + this.move(d15, 0.0D, d17); + if (aint[0][1] != 0 && MathHelper.floor(this.locX) - i == aint[0][0] && MathHelper.floor(this.locZ) - k == aint[0][2]) { + this.setPosition(this.locX, this.locY + (double) aint[0][1], this.locZ); + } else if (aint[1][1] != 0 && MathHelper.floor(this.locX) - i == aint[1][0] && MathHelper.floor(this.locZ) - k == aint[1][2]) { + this.setPosition(this.locX, this.locY + (double) aint[1][1], this.locZ); } // CraftBukkit @@ -347,7 +346,7 @@ public class EntityMinecart extends Entity implements IInventory { this.motY *= 0.0D; this.motZ *= 0.996999979019165D; } else { - if (this.d == 2) { + if (this.type == 2) { d16 = (double) MathHelper.a(this.f * this.f + this.g * this.g); if (d16 > 0.01D) { flag = true; @@ -383,11 +382,11 @@ public class EntityMinecart extends Entity implements IInventory { this.motZ = this.motZ / d9 * (d9 + d19); } - this.a(this.locX, vec3d1.b, this.locZ); + this.setPosition(this.locX, vec3d1.b, this.locZ); } - int i1 = MathHelper.b(this.locX); - int j1 = MathHelper.b(this.locZ); + int i1 = MathHelper.floor(this.locX); + int j1 = MathHelper.floor(this.locZ); if (i1 != i || j1 != k) { d9 = Math.sqrt(this.motX * this.motX + this.motZ * this.motZ); @@ -395,7 +394,7 @@ public class EntityMinecart extends Entity implements IInventory { this.motZ = d9 * (double) (j1 - k); } - if (this.d == 2) { + if (this.type == 2) { double d20 = (double) MathHelper.a(this.f * this.f + this.g * this.g); if (d20 > 0.01D && this.motX * this.motX + this.motZ * this.motZ > 0.0010D) { @@ -435,7 +434,7 @@ public class EntityMinecart extends Entity implements IInventory { // CraftBukkit start } - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); if (!this.onGround) { // CraftBukkit start this.motX *= flyingX; @@ -495,7 +494,7 @@ public class EntityMinecart extends Entity implements IInventory { Entity entity = (Entity) list.get(k1); if (entity != this.passenger && entity.e_() && entity instanceof EntityMinecart) { - entity.h(this); + entity.collide(this); } } } @@ -516,9 +515,9 @@ public class EntityMinecart extends Entity implements IInventory { } public Vec3D g(double d0, double d1, double d2) { - int i = MathHelper.b(d0); - int j = MathHelper.b(d1); - int k = MathHelper.b(d2); + int i = MathHelper.floor(d0); + int j = MathHelper.floor(d1); + int k = MathHelper.floor(d2); if (this.world.getTypeId(i, j - 1, k) == Block.RAILS.id) { --j; @@ -532,7 +531,7 @@ public class EntityMinecart extends Entity implements IInventory { d1 = (double) (j + 1); } - int[][] aint = EntityMinecart.j[l]; // CraftBukkit -- be explicit + int[][] aint = matrix[l]; double d3 = 0.0D; double d4 = (double) i + 0.5D + (double) aint[0][0] * 0.5D; double d5 = (double) j + 0.5D + (double) aint[0][1] * 0.5D; @@ -569,27 +568,27 @@ public class EntityMinecart extends Entity implements IInventory { d1 += 0.5D; } - return Vec3D.b(d0, d1, d2); + return Vec3D.create(d0, d1, d2); } else { return null; } } protected void a(NBTTagCompound nbttagcompound) { - nbttagcompound.a("Type", this.d); - if (this.d == 2) { + nbttagcompound.a("Type", this.type); + if (this.type == 2) { nbttagcompound.a("PushX", this.f); nbttagcompound.a("PushZ", this.g); nbttagcompound.a("Fuel", (short) this.e); - } else if (this.d == 1) { + } else if (this.type == 1) { NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < this.h.length; ++i) { - if (this.h[i] != null) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.a("Slot", (byte) i); - this.h[i].a(nbttagcompound1); + this.items[i].a(nbttagcompound1); nbttaglist.a((NBTBase) nbttagcompound1); } } @@ -599,28 +598,28 @@ public class EntityMinecart extends Entity implements IInventory { } protected void b(NBTTagCompound nbttagcompound) { - this.d = nbttagcompound.e("Type"); - if (this.d == 2) { + this.type = nbttagcompound.e("Type"); + if (this.type == 2) { this.f = nbttagcompound.h("PushX"); this.g = nbttagcompound.h("PushZ"); this.e = nbttagcompound.d("Fuel"); - } else if (this.d == 1) { + } else if (this.type == 1) { NBTTagList nbttaglist = nbttagcompound.l("Items"); - this.h = new ItemStack[this.q_()]; + this.items = new ItemStack[this.getSize()]; for (int i = 0; i < nbttaglist.c(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i); int j = nbttagcompound1.c("Slot") & 255; - if (j >= 0 && j < this.h.length) { - this.h[j] = new ItemStack(nbttagcompound1); + if (j >= 0 && j < this.items.length) { + this.items[j] = new ItemStack(nbttagcompound1); } } } } - public void h(Entity entity) { + public void collide(Entity entity) { if (!this.world.isStatic) { if (entity != this.passenger) { // CraftBukkit start @@ -635,14 +634,14 @@ public class EntityMinecart extends Entity implements IInventory { return; } - if (entity instanceof EntityLiving && !(entity instanceof EntityHuman) && this.d == 0 && this.motX * this.motX + this.motZ * this.motZ > 0.01D && this.passenger == null && entity.vehicle == null) { + if (entity instanceof EntityLiving && !(entity instanceof EntityHuman) && this.type == 0 && this.motX * this.motX + this.motZ * this.motZ > 0.01D && this.passenger == null && entity.vehicle == null) { if (!collsionEvent.isPickupCancelled()) { VehicleEnterEvent enterEvent = new VehicleEnterEvent(vehicle, hitEntity); server.getPluginManager().callEvent(enterEvent); if (!enterEvent.isCancelled()) { - entity.b((Entity) this); + entity.mount(this); } } } @@ -675,13 +674,13 @@ public class EntityMinecart extends Entity implements IInventory { double d4 = entity.motX + this.motX; double d5 = entity.motZ + this.motZ; - if (((EntityMinecart) entity).d == 2 && this.d != 2) { + if (((EntityMinecart) entity).type == 2 && this.type != 2) { this.motX *= 0.20000000298023224D; this.motZ *= 0.20000000298023224D; this.f(entity.motX - d0, 0.0D, entity.motZ - d1); entity.motX *= 0.699999988079071D; entity.motZ *= 0.699999988079071D; - } else if (((EntityMinecart) entity).d != 2 && this.d == 2) { + } else if (((EntityMinecart) entity).type != 2 && this.type == 2) { entity.motX *= 0.20000000298023224D; entity.motZ *= 0.20000000298023224D; entity.f(this.motX + d0, 0.0D, this.motZ + d1); @@ -706,26 +705,26 @@ public class EntityMinecart extends Entity implements IInventory { } } - public int q_() { + public int getSize() { return 27; } - public ItemStack c_(int i) { - return this.h[i]; + public ItemStack getItem(int i) { + return this.items[i]; } public ItemStack a(int i, int j) { - if (this.h[i] != null) { + if (this.items[i] != null) { ItemStack itemstack; - if (this.h[i].count <= j) { - itemstack = this.h[i]; - this.h[i] = null; + if (this.items[i].count <= j) { + itemstack = this.items[i]; + this.items[i] = null; return itemstack; } else { - itemstack = this.h[i].a(j); - if (this.h[i].count == 0) { - this.h[i] = null; + itemstack = this.items[i].a(j); + if (this.items[i].count == 0) { + this.items[i] = null; } return itemstack; @@ -735,25 +734,25 @@ public class EntityMinecart extends Entity implements IInventory { } } - public void a(int i, ItemStack itemstack) { - this.h[i] = itemstack; - if (itemstack != null && itemstack.count > this.r_()) { - itemstack.count = this.r_(); + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; + if (itemstack != null && itemstack.count > this.getMaxStackSize()) { + itemstack.count = this.getMaxStackSize(); } } - public String c() { + public String getName() { return "Minecart"; } - public int r_() { + public int getMaxStackSize() { return 64; } - public void i() {} + public void update() {} public boolean a(EntityHuman entityhuman) { - if (this.d == 0) { + if (this.type == 0) { if (this.passenger != null && this.passenger instanceof EntityHuman && this.passenger != entityhuman) { return true; } @@ -772,18 +771,18 @@ public class EntityMinecart extends Entity implements IInventory { } // CraftBukkit end - entityhuman.b((Entity) this); + entityhuman.mount(this); } - } else if (this.d == 1) { + } else if (this.type == 1) { if (!this.world.isStatic) { entityhuman.a((IInventory) this); } - } else if (this.d == 2) { - ItemStack itemstack = entityhuman.inventory.b(); + } else if (this.type == 2) { + ItemStack itemstack = entityhuman.inventory.getItemInHand(); if (itemstack != null && itemstack.id == Item.COAL.id) { if (--itemstack.count == 0) { - entityhuman.inventory.a(entityhuman.inventory.c, (ItemStack) null); + entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null); } this.e += 1200; diff --git a/src/main/java/net/minecraft/server/EntityMonster.java b/src/main/java/net/minecraft/server/EntityMonster.java index 91b95075dc..b464df952f 100644 --- a/src/main/java/net/minecraft/server/EntityMonster.java +++ b/src/main/java/net/minecraft/server/EntityMonster.java @@ -13,7 +13,7 @@ import org.bukkit.event.entity.EntityTargetEvent.TargetReason; public class EntityMonster extends EntityCreature implements IMonster { - protected int c = 2; + protected int damage = 2; public EntityMonster(World world) { super(world); @@ -32,19 +32,19 @@ public class EntityMonster extends EntityCreature implements IMonster { public void f_() { super.f_(); - if (this.world.j == 0) { - this.D(); + if (this.world.spawnMonsters == 0) { + this.die(); } } - protected Entity m() { + protected Entity findTarget() { EntityHuman entityhuman = this.world.a(this, 16.0D); return entityhuman != null && this.e(entityhuman) ? entityhuman : null; } - public boolean a(Entity entity, int i) { - if (super.a(entity, i)) { + public boolean damageEntity(Entity entity, int i) { + if (super.damageEntity(entity, i)) { if (this.passenger != entity && this.vehicle != entity) { if (entity != this) { // CraftBukkit start @@ -59,9 +59,9 @@ public class EntityMonster extends EntityCreature implements IMonster { if (!event.isCancelled()) { if (event.getTarget() == null) { - this.d = null; + this.target = null; } else { - this.d = ((CraftEntity) event.getTarget()).getHandle(); + this.target = ((CraftEntity) event.getTarget()).getHandle(); } } // CraftBukkit end @@ -88,17 +88,17 @@ public class EntityMonster extends EntityCreature implements IMonster { org.bukkit.entity.Entity damagee = (entity == null) ? null : entity.getBukkitEntity(); DamageCause damageType = EntityDamageEvent.DamageCause.ENTITY_ATTACK; - EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(damager, damagee, damageType, this.c); + EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(damager, damagee, damageType, this.damage); server.getPluginManager().callEvent(event); - if (!event.isCancelled() && event.getDamage() != 0) { - entity.a(this, event.getDamage()); + if (!event.isCancelled()) { + entity.damageEntity(this, event.getDamage()); } return; } // CraftBukkit end - entity.a(this, this.c); + entity.damageEntity(this, this.damage); } } @@ -115,14 +115,14 @@ public class EntityMonster extends EntityCreature implements IMonster { } public boolean b() { - int i = MathHelper.b(this.locX); - int j = MathHelper.b(this.boundingBox.b); - int k = MathHelper.b(this.locZ); + int i = MathHelper.floor(this.locX); + int j = MathHelper.floor(this.boundingBox.b); + int k = MathHelper.floor(this.locZ); if (this.world.a(EnumSkyBlock.SKY, i, j, k) > this.random.nextInt(32)) { return false; } else { - int l = this.world.j(i, j, k); + int l = this.world.getLightLevel(i, j, k); return l <= this.random.nextInt(8) && super.b(); } diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java index 382bcdfbd7..3f8e18231e 100644 --- a/src/main/java/net/minecraft/server/EntityPigZombie.java +++ b/src/main/java/net/minecraft/server/EntityPigZombie.java @@ -11,50 +11,50 @@ import org.bukkit.event.entity.EntityTargetEvent.TargetReason; public class EntityPigZombie extends EntityZombie { - private int a = 0; - private int b = 0; + private int angerLevel = 0; + private int soundDelay = 0; private static final ItemStack f = new ItemStack(Item.GOLD_SWORD, 1); public EntityPigZombie(World world) { super(world); this.texture = "/mob/pigzombie.png"; this.az = 0.5F; - this.c = 5; + this.damage = 5; this.by = true; } public void f_() { - this.az = this.d != null ? 0.95F : 0.5F; - if (this.b > 0 && --this.b == 0) { - this.world.a(this, "mob.zombiepig.zpigangry", this.i() * 2.0F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F) * 1.8F); + this.az = this.target != null ? 0.95F : 0.5F; + if (this.soundDelay > 0 && --this.soundDelay == 0) { + this.world.makeSound(this, "mob.zombiepig.zpigangry", this.i() * 2.0F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.2F + 1.0F) * 1.8F); } super.f_(); } public boolean b() { - return this.world.j > 0 && this.world.a(this.boundingBox) && this.world.a((Entity) this, this.boundingBox).size() == 0 && !this.world.b(this.boundingBox); + return this.world.spawnMonsters > 0 && this.world.containsEntity(this.boundingBox) && this.world.getEntities(this, this.boundingBox).size() == 0 && !this.world.b(this.boundingBox); } public void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); - nbttagcompound.a("Anger", (short) this.a); + nbttagcompound.a("Anger", (short) this.angerLevel); } public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); - this.a = nbttagcompound.d("Anger"); + this.angerLevel = nbttagcompound.d("Anger"); } - protected Entity m() { - return this.a == 0 ? null : super.m(); + protected Entity findTarget() { + return this.angerLevel == 0 ? null : super.findTarget(); } public void r() { super.r(); } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { if (entity instanceof EntityHuman) { List list = this.world.b((Entity) this, this.boundingBox.b(32.0D, 32.0D, 32.0D)); @@ -71,7 +71,7 @@ public class EntityPigZombie extends EntityZombie { this.d(entity); } - return super.a(entity, i); + return super.damageEntity(entity, i); } private void d(Entity entity) { @@ -85,16 +85,20 @@ public class EntityPigZombie extends EntityZombie { EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), bukkitTarget, TargetReason.PIG_ZOMBIE_TARGET); server.getPluginManager().callEvent(event); - if (!event.isCancelled()) { - if (event.getTarget() == null) { - this.d = null; - } else { - this.d = ((CraftEntity) event.getTarget()).getHandle(); - this.a = 400 + this.random.nextInt(400); - this.b = this.random.nextInt(40); - } + if (event.isCancelled()) { + return; } + + if (event.getTarget() == null) { + this.target = null; + return; + } + entity = ((CraftEntity) event.getTarget()).getHandle(); // CraftBukkit end + + this.target = entity; + this.angerLevel = 400 + this.random.nextInt(400); + this.soundDelay = this.random.nextInt(40); } protected String e() { diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index bc403cfe7f..3adb9b449b 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -18,9 +18,9 @@ import org.bukkit.event.entity.EntityDeathEvent; public class EntityPlayer extends EntityHuman implements ICrafting { - public NetServerHandler a; + public NetServerHandler netServerHandler; public MinecraftServer b; - public ItemInWorldManager c; + public ItemInWorldManager itemInWorldManager; public double d; public double e; public List f = new LinkedList(); @@ -33,23 +33,23 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public EntityPlayer(MinecraftServer minecraftserver, World world, String s, ItemInWorldManager iteminworldmanager) { super(world); - ChunkCoordinates chunkcoordinates = world.m(); - int i = chunkcoordinates.a; - int j = chunkcoordinates.c; - int k = chunkcoordinates.b; + ChunkCoordinates chunkcoordinates = world.getSpawn(); + int i = chunkcoordinates.x; + int j = chunkcoordinates.z; + int k = chunkcoordinates.y; - if (!world.m.e) { + if (!world.worldProvider.e) { i += this.random.nextInt(20) - 10; k = world.e(i, j); j += this.random.nextInt(20) - 10; } - this.c((double) i + 0.5D, (double) k, (double) j + 0.5D, 0.0F, 0.0F); + this.setPositionRotation((double) i + 0.5D, (double) k, (double) j + 0.5D, 0.0F, 0.0F); this.b = minecraftserver; this.bm = 0.0F; - iteminworldmanager.a = this; + iteminworldmanager.player = this; this.name = s; - this.c = iteminworldmanager; + this.itemInWorldManager = iteminworldmanager; this.height = 0.0F; // CraftBukkit start @@ -60,11 +60,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public Location compassTarget; // CraftBukkit end - public void m() { + public void syncInventory() { this.activeContainer.a((ICrafting) this); } - public ItemStack[] k_() { + public ItemStack[] getEquipment() { return this.bG; } @@ -77,7 +77,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } public void f_() { - this.c.a(); + this.itemInWorldManager.a(); --this.bF; this.activeContainer.a(); @@ -85,31 +85,31 @@ public class EntityPlayer extends EntityHuman implements ICrafting { ItemStack itemstack = this.b_(i); if (itemstack != this.bG[i]) { - this.b.k.a(this, new Packet5EntityEquipment(this.id, i, itemstack)); + this.b.tracker.a(this, new Packet5EntityEquipment(this.id, i, itemstack)); this.bG[i] = itemstack; } } } public ItemStack b_(int i) { - return i == 0 ? this.inventory.b() : this.inventory.b[i - 1]; + return i == 0 ? this.inventory.getItemInHand() : this.inventory.armor[i - 1]; } public void a(Entity entity) { // CraftBukkit start List loot = new ArrayList(); - for (int i = 0; i < inventory.a.length; ++i) { - if (inventory.a[i] != null) { - loot.add(new CraftItemStack(inventory.a[i])); - inventory.a[i] = null; + for (int i = 0; i < inventory.items.length; ++i) { + if (inventory.items[i] != null) { + loot.add(new CraftItemStack(inventory.items[i])); + inventory.items[i] = null; } } - for (int i = 0; i < inventory.b.length; ++i) { - if (inventory.b[i] != null) { - loot.add(new CraftItemStack(inventory.b[i])); - inventory.b[i] = null; + for (int i = 0; i < inventory.armor.length; ++i) { + if (inventory.armor[i] != null) { + loot.add(new CraftItemStack(inventory.armor[i])); + inventory.armor[i] = null; } } @@ -126,11 +126,11 @@ public class EntityPlayer extends EntityHuman implements ICrafting { // CraftBukkit end } - public boolean a(Entity entity, int i) { + public boolean damageEntity(Entity entity, int i) { if (this.bF > 0) { return false; } else { - if (!this.b.n) { + if (!this.b.pvpMode) { if (entity instanceof EntityHuman) { return false; } @@ -138,13 +138,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (entity instanceof EntityArrow) { EntityArrow entityarrow = (EntityArrow) entity; - if (entityarrow.b instanceof EntityHuman) { + if (entityarrow.shooter instanceof EntityHuman) { return false; } } } - return super.a(entity, i); + return super.damageEntity(entity, i); } } @@ -160,7 +160,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (chunkcoordintpair != null) { boolean flag1 = false; - if (this.a.b() < 2) { + if (this.netServerHandler.b() < 2) { flag1 = true; } @@ -168,8 +168,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.f.remove(chunkcoordintpair); // CraftBukkit start - this.a.b((Packet) (new Packet51MapChunk(chunkcoordintpair.a * 16, 0, chunkcoordintpair.b * 16, 16, 128, 16, this.world))); - List list = ((WorldServer) world).d(chunkcoordintpair.a * 16, 0, chunkcoordintpair.b * 16, chunkcoordintpair.a * 16 + 16, 128, chunkcoordintpair.b * 16 + 16); + this.netServerHandler.sendPacket(new Packet51MapChunk(chunkcoordintpair.x * 16, 0, chunkcoordintpair.z * 16, 16, 128, 16, this.world)); + List list = ((WorldServer) world).getTileEntities(chunkcoordintpair.x * 16, 0, chunkcoordintpair.z * 16, chunkcoordintpair.x * 16 + 16, 128, chunkcoordintpair.z * 16 + 16); // CraftBukkit end for (int i = 0; i < list.size(); ++i) { @@ -180,7 +180,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { } if (this.health != this.bE) { - this.a.b((Packet) (new Packet8UpdateHealth(this.health))); + this.netServerHandler.sendPacket(new Packet8UpdateHealth(this.health)); this.bE = this.health; } } @@ -190,7 +190,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { Packet packet = tileentity.e(); if (packet != null) { - this.a.b(packet); + this.netServerHandler.sendPacket(packet); } } } @@ -199,18 +199,18 @@ public class EntityPlayer extends EntityHuman implements ICrafting { super.r(); } - public void b(Entity entity, int i) { + public void receive(Entity entity, int i) { if (!entity.dead) { if (entity instanceof EntityItem) { - this.b.k.a(entity, new Packet22Collect(entity.id, this.id)); + this.b.tracker.a(entity, new Packet22Collect(entity.id, this.id)); } if (entity instanceof EntityArrow) { - this.b.k.a(entity, new Packet22Collect(entity.id, this.id)); + this.b.tracker.a(entity, new Packet22Collect(entity.id, this.id)); } } - super.b(entity, i); + super.receive(entity, i); this.activeContainer.a(); } @@ -218,7 +218,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { if (!this.p) { this.q = -1; this.p = true; - this.b.k.a(this, new Packet18ArmAnimation(this, 1)); + this.b.tracker.a(this, new Packet18ArmAnimation(this, 1)); } } @@ -228,34 +228,35 @@ public class EntityPlayer extends EntityHuman implements ICrafting { EnumBedError enumbederror = super.a(i, j, k); if (enumbederror == EnumBedError.OK) { - this.b.k.a(this, new Packet17(this, 0, i, j, k)); + this.b.tracker.a(this, new Packet17(this, 0, i, j, k)); } return enumbederror; } public void a(boolean flag, boolean flag1, boolean flag2) { - if (this.F()) { - this.b.k.b(this, new Packet18ArmAnimation(this, 3)); + if (this.isSleeping()) { + this.b.tracker.b(this, new Packet18ArmAnimation(this, 3)); } super.a(flag, flag1, flag2); - this.a.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); + this.netServerHandler.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); } - public void b(Entity entity) { + public void mount(Entity entity) { // CraftBukkit start setPassengerOf(entity); } public void setPassengerOf(Entity entity) { - // b(null) doesn't really fly for overloaded methods, + // mount(null) doesn't really fly for overloaded methods, // so this method is needed super.setPassengerOf(entity); // CraftBukkit end - this.a.b((Packet) (new Packet39AttachEntity(this, this.vehicle))); - this.a.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); + + this.netServerHandler.sendPacket(new Packet39AttachEntity(this, this.vehicle)); + this.netServerHandler.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch); } protected void a(double d0, boolean flag) {} @@ -270,7 +271,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void b(int i, int j, int k) { this.aa(); - this.a.b((Packet) (new Packet100OpenWindow(this.bH, 1, "Crafting", 9))); + this.netServerHandler.sendPacket(new Packet100OpenWindow(this.bH, 1, "Crafting", 9)); this.activeContainer = new ContainerWorkbench(this.inventory, this.world, i, j, k); this.activeContainer.f = this.bH; this.activeContainer.a((ICrafting) this); @@ -278,7 +279,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void a(IInventory iinventory) { this.aa(); - this.a.b((Packet) (new Packet100OpenWindow(this.bH, 0, iinventory.c(), iinventory.q_()))); + this.netServerHandler.sendPacket(new Packet100OpenWindow(this.bH, 0, iinventory.getName(), iinventory.getSize())); this.activeContainer = new ContainerChest(this.inventory, iinventory); this.activeContainer.f = this.bH; this.activeContainer.a((ICrafting) this); @@ -286,7 +287,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void a(TileEntityFurnace tileentityfurnace) { this.aa(); - this.a.b((Packet) (new Packet100OpenWindow(this.bH, 2, tileentityfurnace.c(), tileentityfurnace.q_()))); + this.netServerHandler.sendPacket(new Packet100OpenWindow(this.bH, 2, tileentityfurnace.getName(), tileentityfurnace.getSize())); this.activeContainer = new ContainerFurnace(this.inventory, tileentityfurnace); this.activeContainer.f = this.bH; this.activeContainer.a((ICrafting) this); @@ -294,7 +295,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void a(TileEntityDispenser tileentitydispenser) { this.aa(); - this.a.b((Packet) (new Packet100OpenWindow(this.bH, 3, tileentitydispenser.c(), tileentitydispenser.q_()))); + this.netServerHandler.sendPacket(new Packet100OpenWindow(this.bH, 3, tileentitydispenser.getName(), tileentitydispenser.getSize())); this.activeContainer = new ContainerDispenser(this.inventory, tileentitydispenser); this.activeContainer.f = this.bH; this.activeContainer.a((ICrafting) this); @@ -303,30 +304,30 @@ public class EntityPlayer extends EntityHuman implements ICrafting { public void a(Container container, int i, ItemStack itemstack) { if (!(container.a(i) instanceof SlotResult)) { if (!this.h) { - this.a.b((Packet) (new Packet103SetSlot(container.f, i, itemstack))); + this.netServerHandler.sendPacket(new Packet103SetSlot(container.f, i, itemstack)); } } } public void a(Container container, List list) { - this.a.b((Packet) (new Packet104WindowItems(container.f, list))); - this.a.b((Packet) (new Packet103SetSlot(-1, -1, this.inventory.j()))); + this.netServerHandler.sendPacket(new Packet104WindowItems(container.f, list)); + this.netServerHandler.sendPacket(new Packet103SetSlot(-1, -1, this.inventory.j())); } public void a(Container container, int i, int j) { - this.a.b((Packet) (new Packet105CraftProgressBar(container.f, i, j))); + this.netServerHandler.sendPacket(new Packet105CraftProgressBar(container.f, i, j)); } public void a(ItemStack itemstack) {} public void u() { - this.a.b((Packet) (new Packet101CloseWindow(this.activeContainer.f))); + this.netServerHandler.sendPacket(new Packet101CloseWindow(this.activeContainer.f)); this.w(); } public void v() { if (!this.h) { - this.a.b((Packet) (new Packet103SetSlot(-1, -1, this.inventory.j()))); + this.netServerHandler.sendPacket(new Packet103SetSlot(-1, -1, this.inventory.j())); } } @@ -339,7 +340,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting { this.au = f; this.av = f1; this.ax = flag; - this.e(flag1); + this.setSneak(flag1); this.pitch = f2; this.yaw = f3; } diff --git a/src/main/java/net/minecraft/server/EntitySkeleton.java b/src/main/java/net/minecraft/server/EntitySkeleton.java index d61f31876f..fbb88a5dcd 100644 --- a/src/main/java/net/minecraft/server/EntitySkeleton.java +++ b/src/main/java/net/minecraft/server/EntitySkeleton.java @@ -36,7 +36,7 @@ public class EntitySkeleton extends EntityMonster { if (this.world.d()) { float f = this.c(1.0F); - if (f > 0.5F && this.world.i(MathHelper.b(this.locX), MathHelper.b(this.locY), MathHelper.b(this.locZ)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { + if (f > 0.5F && this.world.isChunkLoaded(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { // CraftBukkit start CraftServer server = ((WorldServer) this.world).getServer(); org.bukkit.entity.Entity entity = this.getBukkitEntity(); @@ -66,8 +66,8 @@ public class EntitySkeleton extends EntityMonster { double d2 = entity.locY - 0.20000000298023224D - entityarrow.locY; float f1 = MathHelper.a(d0 * d0 + d1 * d1) * 0.2F; - this.world.a(this, "random.bow", 1.0F, 1.0F / (this.random.nextFloat() * 0.4F + 0.8F)); - this.world.a((Entity) entityarrow); + this.world.makeSound(this, "random.bow", 1.0F, 1.0F / (this.random.nextFloat() * 0.4F + 0.8F)); + this.world.addEntity(entityarrow); entityarrow.a(d0, d2 + (double) f1, d1, 0.6F, 12.0F); this.attackTicks = 30; } diff --git a/src/main/java/net/minecraft/server/EntitySnowball.java b/src/main/java/net/minecraft/server/EntitySnowball.java index a2b8ee3cf4..2bd1eee44a 100644 --- a/src/main/java/net/minecraft/server/EntitySnowball.java +++ b/src/main/java/net/minecraft/server/EntitySnowball.java @@ -17,7 +17,7 @@ public class EntitySnowball extends Entity { private int e = 0; private boolean f = false; public int a = 0; - private EntityLiving g; + private EntityLiving shooter; private int h; private int i = 0; @@ -30,19 +30,19 @@ public class EntitySnowball extends Entity { public EntitySnowball(World world, EntityLiving entityliving) { super(world); - this.g = entityliving; + this.shooter = entityliving; this.b(0.25F, 0.25F); - this.c(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); - this.locX -= (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPositionRotation(entityliving.locX, entityliving.locY + (double) entityliving.q(), entityliving.locZ, entityliving.yaw, entityliving.pitch); + this.locX -= (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * 0.16F); this.locY -= 0.10000000149011612D; - this.locZ -= (double) (MathHelper.a(this.yaw / 180.0F * 3.1415927F) * 0.16F); - this.a(this.locX, this.locY, this.locZ); + this.locZ -= (double) (MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * 0.16F); + this.setPosition(this.locX, this.locY, this.locZ); this.height = 0.0F; float f = 0.4F; - this.motX = (double) (-MathHelper.a(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motZ = (double) (MathHelper.b(this.yaw / 180.0F * 3.1415927F) * MathHelper.b(this.pitch / 180.0F * 3.1415927F) * f); - this.motY = (double) (-MathHelper.a(this.pitch / 180.0F * 3.1415927F) * f); + this.motX = (double) (-MathHelper.sin(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motZ = (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * MathHelper.cos(this.pitch / 180.0F * 3.1415927F) * f); + this.motY = (double) (-MathHelper.sin(this.pitch / 180.0F * 3.1415927F) * f); this.a(this.motX, this.motY, this.motZ, 1.5F, 1.0F); } @@ -50,7 +50,7 @@ public class EntitySnowball extends Entity { super(world); this.h = 0; this.b(0.25F, 0.25F); - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); this.height = 0.0F; } @@ -91,7 +91,7 @@ public class EntitySnowball extends Entity { if (i == this.e) { ++this.h; if (this.h == 1200) { - this.D(); + this.die(); } return; @@ -107,14 +107,14 @@ public class EntitySnowball extends Entity { ++this.i; } - Vec3D vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - Vec3D vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + Vec3D vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + Vec3D vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); MovingObjectPosition movingobjectposition = this.world.a(vec3d, vec3d1); - vec3d = Vec3D.b(this.locX, this.locY, this.locZ); - vec3d1 = Vec3D.b(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); + vec3d = Vec3D.create(this.locX, this.locY, this.locZ); + vec3d1 = Vec3D.create(this.locX + this.motX, this.locY + this.motY, this.locZ + this.motZ); if (movingobjectposition != null) { - vec3d1 = Vec3D.b(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); + vec3d1 = Vec3D.create(movingobjectposition.f.a, movingobjectposition.f.b, movingobjectposition.f.c); } if (!this.world.isStatic) { @@ -125,7 +125,7 @@ public class EntitySnowball extends Entity { for (int j = 0; j < list.size(); ++j) { Entity entity1 = (Entity) list.get(j); - if (entity1.d_() && (entity1 != this.g || this.i >= 5)) { + if (entity1.d_() && (entity1 != this.shooter || this.i >= 5)) { float f = 0.3F; AxisAlignedBB axisalignedbb = entity1.boundingBox.b((double) f, (double) f, (double) f); MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1); @@ -148,12 +148,12 @@ public class EntitySnowball extends Entity { if (movingobjectposition != null) { // CraftBukkit start - if (movingobjectposition.g != null) { + if (movingobjectposition.entity != null) { boolean stick; - if (movingobjectposition.g instanceof EntityLiving) { + if (movingobjectposition.entity instanceof EntityLiving) { CraftServer server = ((WorldServer) this.world).getServer(); - org.bukkit.entity.Entity shooter = (this.g == null) ? null : this.g.getBukkitEntity(); - org.bukkit.entity.Entity damagee = movingobjectposition.g.getBukkitEntity(); + org.bukkit.entity.Entity shooter = (this.shooter == null) ? null : this.shooter.getBukkitEntity(); + org.bukkit.entity.Entity damagee = movingobjectposition.entity.getBukkitEntity(); org.bukkit.entity.Entity projectile = this.getBukkitEntity(); DamageCause damageCause = EntityDamageEvent.DamageCause.ENTITY_ATTACK; int damage = 0; @@ -164,13 +164,13 @@ public class EntitySnowball extends Entity { if (!event.isCancelled()) { // this function returns if the snowball should stick or not, i.e. !bounce - stick = movingobjectposition.g.a(this.g, event.getDamage()); + stick = movingobjectposition.entity.damageEntity(this.shooter, event.getDamage()); } else { // event was cancelled, get if the snowball should bounce or not stick = !event.getBounce(); } } else { - stick = movingobjectposition.g.a(this.g, 0); + stick = movingobjectposition.entity.damageEntity(this.shooter, 0); } if (stick) { ; @@ -182,7 +182,7 @@ public class EntitySnowball extends Entity { this.world.a("snowballpoof", this.locX, this.locY, this.locZ, 0.0D, 0.0D, 0.0D); } - this.D(); + this.die(); } this.locX += this.motX; @@ -227,7 +227,7 @@ public class EntitySnowball extends Entity { this.motY *= (double) f2; this.motZ *= (double) f2; this.motY -= (double) f3; - this.a(this.locX, this.locY, this.locZ); + this.setPosition(this.locX, this.locY, this.locZ); } public void a(NBTTagCompound nbttagcompound) { @@ -249,10 +249,10 @@ public class EntitySnowball extends Entity { } public void b(EntityHuman entityhuman) { - if (this.f && this.g == entityhuman && this.a <= 0 && entityhuman.inventory.a(new ItemStack(Item.ARROW, 1))) { - this.world.a(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); - entityhuman.b(this, 1); - this.D(); + if (this.f && this.shooter == entityhuman && this.a <= 0 && entityhuman.inventory.canHold(new ItemStack(Item.ARROW, 1))) { + this.world.makeSound(this, "random.pop", 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); + entityhuman.receive(this, 1); + this.die(); } } } diff --git a/src/main/java/net/minecraft/server/EntitySpider.java b/src/main/java/net/minecraft/server/EntitySpider.java index 8fba4bdfbb..5c2ed9225a 100644 --- a/src/main/java/net/minecraft/server/EntitySpider.java +++ b/src/main/java/net/minecraft/server/EntitySpider.java @@ -5,7 +5,7 @@ import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.entity.EntityTargetEvent.TargetReason; -// CraftBukkit end +// CraftBukkit stop public class EntitySpider extends EntityMonster { @@ -24,7 +24,7 @@ public class EntitySpider extends EntityMonster { return false; } - protected Entity m() { + protected Entity findTarget() { float f = this.c(1.0F); if (f < 0.5F) { @@ -59,9 +59,9 @@ public class EntitySpider extends EntityMonster { if (!event.isCancelled()) { if (event.getTarget() == null) { - this.d = null; + this.target = null; } else { - this.d = ((CraftEntity) event.getTarget()).getHandle(); + this.target = ((CraftEntity) event.getTarget()).getHandle(); } return; } @@ -96,6 +96,6 @@ public class EntitySpider extends EntityMonster { } public boolean n() { - return this.aW; + return this.positionChanged; } } diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java index 7e85e6b59f..456b9af6d2 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java @@ -20,12 +20,12 @@ public class EntityTNTPrimed extends Entity { public EntityTNTPrimed(World world, double d0, double d1, double d2) { this(world); - this.a(d0, d1, d2); + this.setPosition(d0, d1, d2); float f = (float) (Math.random() * 3.1415927410125732D * 2.0D); - this.motX = (double) (-MathHelper.a(f * 3.1415927F / 180.0F) * 0.02F); + this.motX = (double) (-MathHelper.sin(f * 3.1415927F / 180.0F) * 0.02F); this.motY = 0.20000000298023224D; - this.motZ = (double) (-MathHelper.b(f * 3.1415927F / 180.0F) * 0.02F); + this.motZ = (double) (-MathHelper.cos(f * 3.1415927F / 180.0F) * 0.02F); this.a = 80; this.lastX = d0; this.lastY = d1; @@ -47,7 +47,7 @@ public class EntityTNTPrimed extends Entity { this.lastY = this.locY; this.lastZ = this.locZ; this.motY -= 0.03999999910593033D; - this.c(this.motX, this.motY, this.motZ); + this.move(this.motX, this.motY, this.motZ); this.motX *= 0.9800000190734863D; this.motY *= 0.9800000190734863D; this.motZ *= 0.9800000190734863D; @@ -59,15 +59,15 @@ public class EntityTNTPrimed extends Entity { if (this.a-- <= 0) { // CraftBukkit start - Need to reverse the order of the explosion and the entity death so we have a location for the event. - this.h(); - this.D(); + this.explode(); + this.die(); // CraftBukkit end } else { this.world.a("smoke", this.locX, this.locY + 0.5D, this.locZ, 0.0D, 0.0D, 0.0D); } } - private void h() { + private void explode() { float f = 4.0F; // CraftBukkit start @@ -78,7 +78,7 @@ public class EntityTNTPrimed extends Entity { if (!event.isCancelled()) { // give 'this' instead of (Entity) null so we know what causes the damage - this.world.a(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); + this.world.createExplosion(this, this.locX, this.locY, this.locZ, event.getRadius(), event.getFire()); } // CraftBukkit end } diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java index 9f2c621d39..05b4b2a306 100644 --- a/src/main/java/net/minecraft/server/EntityTracker.java +++ b/src/main/java/net/minecraft/server/EntityTracker.java @@ -14,7 +14,7 @@ public class EntityTracker { public EntityTracker(MinecraftServer minecraftserver) { this.c = minecraftserver; - this.d = minecraftserver.f.a(); + this.d = minecraftserver.serverConfigurationManager.a(); } // CraftBukkit -- synchronized @@ -27,7 +27,7 @@ public class EntityTracker { while (iterator.hasNext()) { EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next(); - if (entitytrackerentry.a != entityplayer) { + if (entitytrackerentry.tracker != entityplayer) { entitytrackerentry.b(entityplayer); } } @@ -76,12 +76,12 @@ public class EntityTracker { this.a.add(entitytrackerentry); this.b.a(entity.id, entitytrackerentry); // CraftBukkit - entitytrackerentry.b(entity.world.d); // CraftBukkit + entitytrackerentry.scanPlayers(entity.world.players); } } // CraftBukkit -- synchronized - public synchronized void b(Entity entity) { + public synchronized void untrackEntity(Entity entity) { if (entity instanceof EntityPlayer) { EntityPlayer entityplayer = (EntityPlayer) entity; Iterator iterator = this.a.iterator(); @@ -110,9 +110,9 @@ public class EntityTracker { EntityTrackerEntry entitytrackerentry = (EntityTrackerEntry) iterator.next(); // CraftBukkit - entitytrackerentry.a(entitytrackerentry.a.world.d); - if (entitytrackerentry.m && entitytrackerentry.a instanceof EntityPlayer) { - arraylist.add((EntityPlayer) entitytrackerentry.a); + entitytrackerentry.track(entitytrackerentry.tracker.world.players); + if (entitytrackerentry.m && entitytrackerentry.tracker instanceof EntityPlayer) { + arraylist.add((EntityPlayer) entitytrackerentry.tracker); } } @@ -123,7 +123,7 @@ public class EntityTracker { while (iterator1.hasNext()) { EntityTrackerEntry entitytrackerentry1 = (EntityTrackerEntry) iterator1.next(); - if (entitytrackerentry1.a != entityplayer) { + if (entitytrackerentry1.tracker != entityplayer) { entitytrackerentry1.b(entityplayer); } } @@ -149,7 +149,7 @@ public class EntityTracker { } // CraftBukkit -- synchronized - public synchronized void a(EntityPlayer entityplayer) { + public synchronized void trackPlayer(EntityPlayer entityplayer) { Iterator iterator = this.a.iterator(); while (iterator.hasNext()) { diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java index 2448897bef..d31dde9e57 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -7,7 +7,7 @@ import java.util.Set; public class EntityTrackerEntry { - public Entity a; + public Entity tracker; public int b; public int c; public int d; @@ -23,47 +23,47 @@ public class EntityTrackerEntry { private double p; private double q; private boolean r = false; - private boolean s; + private boolean isMoving; public boolean m = false; - public Set n = new HashSet(); + public Set trackedPlayers = new HashSet(); public EntityTrackerEntry(Entity entity, int i, int j, boolean flag) { - this.a = entity; + this.tracker = entity; this.b = i; this.c = j; - this.s = flag; - this.d = MathHelper.b(entity.locX * 32.0D); - this.e = MathHelper.b(entity.locY * 32.0D); - this.f = MathHelper.b(entity.locZ * 32.0D); + this.isMoving = flag; + this.d = MathHelper.floor(entity.locX * 32.0D); + this.e = MathHelper.floor(entity.locY * 32.0D); + this.f = MathHelper.floor(entity.locZ * 32.0D); this.g = MathHelper.d(entity.yaw * 256.0F / 360.0F); this.h = MathHelper.d(entity.pitch * 256.0F / 360.0F); } public boolean equals(Object object) { - return object instanceof EntityTrackerEntry ? ((EntityTrackerEntry) object).a.id == this.a.id : false; + return object instanceof EntityTrackerEntry ? ((EntityTrackerEntry) object).tracker.id == this.tracker.id : false; } public int hashCode() { - return this.a.id; + return this.tracker.id; } - public void a(List list) { + public void track(List list) { this.m = false; - if (!this.r || this.a.d(this.o, this.p, this.q) > 16.0D) { - this.o = this.a.locX; - this.p = this.a.locY; - this.q = this.a.locZ; + if (!this.r || this.tracker.d(this.o, this.p, this.q) > 16.0D) { + this.o = this.tracker.locX; + this.p = this.tracker.locY; + this.q = this.tracker.locZ; this.r = true; this.m = true; - this.b(list); + this.scanPlayers(list); } if (++this.l % this.c == 0) { - int i = MathHelper.b(this.a.locX * 32.0D); - int j = MathHelper.b(this.a.locY * 32.0D); - int k = MathHelper.b(this.a.locZ * 32.0D); - int l = MathHelper.d(this.a.yaw * 256.0F / 360.0F); - int i1 = MathHelper.d(this.a.pitch * 256.0F / 360.0F); + int i = MathHelper.floor(this.tracker.locX * 32.0D); + int j = MathHelper.floor(this.tracker.locY * 32.0D); + int k = MathHelper.floor(this.tracker.locZ * 32.0D); + int l = MathHelper.d(this.tracker.yaw * 256.0F / 360.0F); + int i1 = MathHelper.d(this.tracker.pitch * 256.0F / 360.0F); int j1 = i - this.d; int k1 = j - this.e; int l1 = k - this.f; @@ -73,28 +73,28 @@ public class EntityTrackerEntry { if (j1 >= -128 && j1 < 128 && k1 >= -128 && k1 < 128 && l1 >= -128 && l1 < 128) { if (flag && flag1) { - object = new Packet33RelEntityMoveLook(this.a.id, (byte) j1, (byte) k1, (byte) l1, (byte) l, (byte) i1); + object = new Packet33RelEntityMoveLook(this.tracker.id, (byte) j1, (byte) k1, (byte) l1, (byte) l, (byte) i1); } else if (flag) { - object = new Packet31RelEntityMove(this.a.id, (byte) j1, (byte) k1, (byte) l1); + object = new Packet31RelEntityMove(this.tracker.id, (byte) j1, (byte) k1, (byte) l1); } else if (flag1) { - object = new Packet32EntityLook(this.a.id, (byte) l, (byte) i1); + object = new Packet32EntityLook(this.tracker.id, (byte) l, (byte) i1); } } else { - object = new Packet34EntityTeleport(this.a.id, i, j, k, (byte) l, (byte) i1); + object = new Packet34EntityTeleport(this.tracker.id, i, j, k, (byte) l, (byte) i1); } - if (this.s) { - double d0 = this.a.motX - this.i; - double d1 = this.a.motY - this.j; - double d2 = this.a.motZ - this.k; + if (this.isMoving) { + double d0 = this.tracker.motX - this.i; + double d1 = this.tracker.motY - this.j; + double d2 = this.tracker.motZ - this.k; double d3 = 0.02D; double d4 = d0 * d0 + d1 * d1 + d2 * d2; - if (d4 > d3 * d3 || d4 > 0.0D && this.a.motX == 0.0D && this.a.motY == 0.0D && this.a.motZ == 0.0D) { - this.i = this.a.motX; - this.j = this.a.motY; - this.k = this.a.motZ; - this.a((Packet) (new Packet28EntityVelocity(this.a.id, this.i, this.j, this.k))); + if (d4 > d3 * d3 || d4 > 0.0D && this.tracker.motX == 0.0D && this.tracker.motY == 0.0D && this.tracker.motZ == 0.0D) { + this.i = this.tracker.motX; + this.j = this.tracker.motY; + this.k = this.tracker.motZ; + this.a((Packet) (new Packet28EntityVelocity(this.tracker.id, this.i, this.j, this.k))); } } @@ -102,10 +102,10 @@ public class EntityTrackerEntry { this.a((Packet) object); } - DataWatcher datawatcher = this.a.T(); + DataWatcher datawatcher = this.tracker.T(); if (datawatcher.a()) { - this.b((Packet) (new Packet40EntityMetadata(this.a.id, datawatcher))); + this.b((Packet) (new Packet40EntityMetadata(this.tracker.id, datawatcher))); } if (flag) { @@ -120,142 +120,142 @@ public class EntityTrackerEntry { } } - if (this.a.aZ) { - this.b((Packet) (new Packet28EntityVelocity(this.a))); - this.a.aZ = false; + if (this.tracker.velocityChanged) { + this.b((Packet) (new Packet28EntityVelocity(this.tracker))); + this.tracker.velocityChanged = false; } } public void a(Packet packet) { - Iterator iterator = this.n.iterator(); + Iterator iterator = this.trackedPlayers.iterator(); while (iterator.hasNext()) { EntityPlayer entityplayer = (EntityPlayer) iterator.next(); - entityplayer.a.b(packet); + entityplayer.netServerHandler.sendPacket(packet); } } public void b(Packet packet) { this.a(packet); - if (this.a instanceof EntityPlayer) { - ((EntityPlayer) this.a).a.b(packet); + if (this.tracker instanceof EntityPlayer) { + ((EntityPlayer) this.tracker).netServerHandler.sendPacket(packet); } } public void a() { - this.a((Packet) (new Packet29DestroyEntity(this.a.id))); + this.a((Packet) (new Packet29DestroyEntity(this.tracker.id))); } public void a(EntityPlayer entityplayer) { - if (this.n.contains(entityplayer)) { - this.n.remove(entityplayer); + if (this.trackedPlayers.contains(entityplayer)) { + this.trackedPlayers.remove(entityplayer); } } public void b(EntityPlayer entityplayer) { - if (entityplayer != this.a) { + if (entityplayer != this.tracker) { double d0 = entityplayer.locX - (double) (this.d / 32); double d1 = entityplayer.locZ - (double) (this.f / 32); if (d0 >= (double) (-this.b) && d0 <= (double) this.b && d1 >= (double) (-this.b) && d1 <= (double) this.b) { // CraftBukkit - if ((!this.n.contains(entityplayer)) && (this.a.world == entityplayer.world)) { - this.n.add(entityplayer); - entityplayer.a.b(this.b()); - if (this.s) { - entityplayer.a.b((Packet) (new Packet28EntityVelocity(this.a.id, this.a.motX, this.a.motY, this.a.motZ))); + if ((!this.trackedPlayers.contains(entityplayer)) && (this.tracker.world == entityplayer.world)) { + this.trackedPlayers.add(entityplayer); + entityplayer.netServerHandler.sendPacket(this.b()); + if (this.isMoving) { + entityplayer.netServerHandler.sendPacket(new Packet28EntityVelocity(this.tracker.id, this.tracker.motX, this.tracker.motY, this.tracker.motZ)); } - ItemStack[] aitemstack = this.a.k_(); + ItemStack[] aitemstack = this.tracker.getEquipment(); if (aitemstack != null) { for (int i = 0; i < aitemstack.length; ++i) { - entityplayer.a.b((Packet) (new Packet5EntityEquipment(this.a.id, i, aitemstack[i]))); + entityplayer.netServerHandler.sendPacket(new Packet5EntityEquipment(this.tracker.id, i, aitemstack[i])); } } } - } else if (this.n.contains(entityplayer)) { - this.n.remove(entityplayer); - entityplayer.a.b((Packet) (new Packet29DestroyEntity(this.a.id))); + } else if (this.trackedPlayers.contains(entityplayer)) { + this.trackedPlayers.remove(entityplayer); + entityplayer.netServerHandler.sendPacket(new Packet29DestroyEntity(this.tracker.id)); } } } - public void b(List list) { + public void scanPlayers(List list) { for (int i = 0; i < list.size(); ++i) { this.b((EntityPlayer) list.get(i)); } } private Packet b() { - if (this.a instanceof EntityItem) { - EntityItem entityitem = (EntityItem) this.a; + if (this.tracker instanceof EntityItem) { + EntityItem entityitem = (EntityItem) this.tracker; Packet21PickupSpawn packet21pickupspawn = new Packet21PickupSpawn(entityitem); entityitem.locX = (double) packet21pickupspawn.b / 32.0D; entityitem.locY = (double) packet21pickupspawn.c / 32.0D; entityitem.locZ = (double) packet21pickupspawn.d / 32.0D; return packet21pickupspawn; - } else if (this.a instanceof EntityPlayer) { - return new Packet20NamedEntitySpawn((EntityHuman) this.a); + } else if (this.tracker instanceof EntityPlayer) { + return new Packet20NamedEntitySpawn((EntityHuman) this.tracker); } else { - if (this.a instanceof EntityMinecart) { - EntityMinecart entityminecart = (EntityMinecart) this.a; + if (this.tracker instanceof EntityMinecart) { + EntityMinecart entityminecart = (EntityMinecart) this.tracker; - if (entityminecart.d == 0) { - return new Packet23VehicleSpawn(this.a, 10); + if (entityminecart.type == 0) { + return new Packet23VehicleSpawn(this.tracker, 10); } - if (entityminecart.d == 1) { - return new Packet23VehicleSpawn(this.a, 11); + if (entityminecart.type == 1) { + return new Packet23VehicleSpawn(this.tracker, 11); } - if (entityminecart.d == 2) { - return new Packet23VehicleSpawn(this.a, 12); + if (entityminecart.type == 2) { + return new Packet23VehicleSpawn(this.tracker, 12); } } - if (this.a instanceof EntityBoat) { - return new Packet23VehicleSpawn(this.a, 1); - } else if (this.a instanceof IAnimal) { - return new Packet24MobSpawn((EntityLiving) this.a); - } else if (this.a instanceof EntityFish) { - return new Packet23VehicleSpawn(this.a, 90); - } else if (this.a instanceof EntityArrow) { - return new Packet23VehicleSpawn(this.a, 60); - } else if (this.a instanceof EntitySnowball) { - return new Packet23VehicleSpawn(this.a, 61); - } else if (this.a instanceof EntityEgg) { - return new Packet23VehicleSpawn(this.a, 62); - } else if (this.a instanceof EntityTNTPrimed) { - return new Packet23VehicleSpawn(this.a, 50); + if (this.tracker instanceof EntityBoat) { + return new Packet23VehicleSpawn(this.tracker, 1); + } else if (this.tracker instanceof IAnimal) { + return new Packet24MobSpawn((EntityLiving) this.tracker); + } else if (this.tracker instanceof EntityFish) { + return new Packet23VehicleSpawn(this.tracker, 90); + } else if (this.tracker instanceof EntityArrow) { + return new Packet23VehicleSpawn(this.tracker, 60); + } else if (this.tracker instanceof EntitySnowball) { + return new Packet23VehicleSpawn(this.tracker, 61); + } else if (this.tracker instanceof EntityEgg) { + return new Packet23VehicleSpawn(this.tracker, 62); + } else if (this.tracker instanceof EntityTNTPrimed) { + return new Packet23VehicleSpawn(this.tracker, 50); } else { - if (this.a instanceof EntityFallingSand) { - EntityFallingSand entityfallingsand = (EntityFallingSand) this.a; + if (this.tracker instanceof EntityFallingSand) { + EntityFallingSand entityfallingsand = (EntityFallingSand) this.tracker; if (entityfallingsand.a == Block.SAND.id) { - return new Packet23VehicleSpawn(this.a, 70); + return new Packet23VehicleSpawn(this.tracker, 70); } if (entityfallingsand.a == Block.GRAVEL.id) { - return new Packet23VehicleSpawn(this.a, 71); + return new Packet23VehicleSpawn(this.tracker, 71); } } - if (this.a instanceof EntityPainting) { - return new Packet25EntityPainting((EntityPainting) this.a); + if (this.tracker instanceof EntityPainting) { + return new Packet25EntityPainting((EntityPainting) this.tracker); } else { - throw new IllegalArgumentException("Don\'t know how to add " + this.a.getClass() + "!"); + throw new IllegalArgumentException("Don\'t know how to add " + this.tracker.getClass() + "!"); } } } } public void c(EntityPlayer entityplayer) { - if (this.n.contains(entityplayer)) { - this.n.remove(entityplayer); - entityplayer.a.b((Packet) (new Packet29DestroyEntity(this.a.id))); + if (this.trackedPlayers.contains(entityplayer)) { + this.trackedPlayers.remove(entityplayer); + entityplayer.netServerHandler.sendPacket(new Packet29DestroyEntity(this.tracker.id)); } } } diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java index b9a82af3d1..a6e5979de3 100644 --- a/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java @@ -11,14 +11,14 @@ public class EntityZombie extends EntityMonster { super(world); this.texture = "/mob/zombie.png"; this.az = 0.5F; - this.c = 5; + this.damage = 5; } public void r() { if (this.world.d()) { float f = this.c(1.0F); - if (f > 0.5F && this.world.i(MathHelper.b(this.locX), MathHelper.b(this.locY), MathHelper.b(this.locZ)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { + if (f > 0.5F && this.world.isChunkLoaded(MathHelper.floor(this.locX), MathHelper.floor(this.locY), MathHelper.floor(this.locZ)) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) { // CraftBukkit start CraftServer server = ((WorldServer) this.world).getServer(); EntityCombustEvent event = new EntityCombustEvent(this.getBukkitEntity()); diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java index f4afea11d9..57c131f3b4 100644 --- a/src/main/java/net/minecraft/server/Explosion.java +++ b/src/main/java/net/minecraft/server/Explosion.java @@ -22,27 +22,27 @@ public class Explosion { public boolean a = false; private Random h = new Random(); - private World i; - public double b; - public double c; - public double d; - public Entity e; - public float f; + private World world; + public double posX; + public double posY; + public double posZ; + public Entity source; + public float size; public Set g = new HashSet(); public boolean wasCanceled = false; // CraftBukkit public Explosion(World world, Entity entity, double d0, double d1, double d2, float f) { - this.i = world; - this.e = entity; - this.f = f; - this.b = d0; - this.c = d1; - this.d = d2; + this.world = world; + this.source = entity; + this.size = f; + this.posX = d0; + this.posY = d1; + this.posZ = d2; } public void a() { - float f = this.f; + float f = this.size; byte b0 = 16; int i; @@ -64,20 +64,20 @@ public class Explosion { d3 /= d6; d4 /= d6; d5 /= d6; - float f1 = this.f * (0.7F + this.i.k.nextFloat() * 0.6F); + float f1 = this.size * (0.7F + this.world.random.nextFloat() * 0.6F); - d0 = this.b; - d1 = this.c; - d2 = this.d; + d0 = this.posX; + d1 = this.posY; + d2 = this.posZ; for (float f2 = 0.3F; f1 > 0.0F; f1 -= f2 * 0.75F) { - int l = MathHelper.b(d0); - int i1 = MathHelper.b(d1); - int j1 = MathHelper.b(d2); - int k1 = this.i.getTypeId(l, i1, j1); + int l = MathHelper.floor(d0); + int i1 = MathHelper.floor(d1); + int j1 = MathHelper.floor(d2); + int k1 = this.world.getTypeId(l, i1, j1); if (k1 > 0) { - f1 -= (Block.byId[k1].a(this.e) + 0.3F) * f2; + f1 -= (Block.byId[k1].a(this.source) + 0.3F) * f2; } if (f1 > 0.0F) { @@ -93,41 +93,41 @@ public class Explosion { } } - this.f *= 2.0F; - i = MathHelper.b(this.b - (double) this.f - 1.0D); - j = MathHelper.b(this.b + (double) this.f + 1.0D); - k = MathHelper.b(this.c - (double) this.f - 1.0D); - int l1 = MathHelper.b(this.c + (double) this.f + 1.0D); - int i2 = MathHelper.b(this.d - (double) this.f - 1.0D); - int j2 = MathHelper.b(this.d + (double) this.f + 1.0D); - List list = this.i.b(this.e, AxisAlignedBB.b((double) i, (double) k, (double) i2, (double) j, (double) l1, (double) j2)); - Vec3D vec3d = Vec3D.b(this.b, this.c, this.d); + this.size *= 2.0F; + i = MathHelper.floor(this.posX - (double) this.size - 1.0D); + j = MathHelper.floor(this.posX + (double) this.size + 1.0D); + k = MathHelper.floor(this.posY - (double) this.size - 1.0D); + int l1 = MathHelper.floor(this.posY + (double) this.size + 1.0D); + int i2 = MathHelper.floor(this.posZ - (double) this.size - 1.0D); + int j2 = MathHelper.floor(this.posZ + (double) this.size + 1.0D); + List list = this.world.b(this.source, AxisAlignedBB.b((double) i, (double) k, (double) i2, (double) j, (double) l1, (double) j2)); + Vec3D vec3d = Vec3D.create(this.posX, this.posY, this.posZ); for (int k2 = 0; k2 < list.size(); ++k2) { Entity entity = (Entity) list.get(k2); - double d7 = entity.e(this.b, this.c, this.d) / (double) this.f; + double d7 = entity.e(this.posX, this.posY, this.posZ) / (double) this.size; if (d7 <= 1.0D) { - d0 = entity.locX - this.b; - d1 = entity.locY - this.c; - d2 = entity.locZ - this.d; + d0 = entity.locX - this.posX; + d1 = entity.locY - this.posY; + d2 = entity.locZ - this.posZ; double d8 = (double) MathHelper.a(d0 * d0 + d1 * d1 + d2 * d2); d0 /= d8; d1 /= d8; d2 /= d8; - double d9 = (double) this.i.a(vec3d, entity.boundingBox); + double d9 = (double) this.world.a(vec3d, entity.boundingBox); double d10 = (1.0D - d7) * d9; // CraftBukkit start - explosion damage hook - CraftServer server = ((WorldServer) this.i).getServer(); + CraftServer server = ((WorldServer) this.world).getServer(); org.bukkit.entity.Entity damagee = (entity == null) ? null : entity.getBukkitEntity(); DamageCause damageType; - int damageDone = (int) ((d10 * d10 + d10) / 2.0D * 8.0D * (double) this.f + 1.0D); + int damageDone = (int) ((d10 * d10 + d10) / 2.0D * 8.0D * (double) this.size + 1.0D); if (damagee == null) { // nothing was hurt - } else if (e == null) { // Block explosion + } else if (this.source == null) { // Block explosion // TODO: get the x/y/z of the tnt block? // does this even get called ever? @see EntityTNTPrimed - not BlockTNT or whatever damageType = EntityDamageEvent.DamageCause.BLOCK_EXPLOSION; @@ -136,20 +136,20 @@ public class Explosion { server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - entity.a(this.e, event.getDamage()); + entity.damageEntity(this.source, event.getDamage()); entity.motX += d0 * d10; entity.motY += d1 * d10; entity.motZ += d2 * d10; } } else { - org.bukkit.entity.Entity damager = this.e.getBukkitEntity(); + org.bukkit.entity.Entity damager = this.source.getBukkitEntity(); damageType = EntityDamageEvent.DamageCause.ENTITY_EXPLOSION; EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(damager, damagee, damageType, damageDone); server.getPluginManager().callEvent(event); if (!event.isCancelled()) { - entity.a(this.e, event.getDamage()); + entity.damageEntity(this.source, event.getDamage()); entity.motX += d0 * d10; entity.motY += d1 * d10; @@ -160,42 +160,42 @@ public class Explosion { } } - this.f = f; + this.size = f; ArrayList arraylist = new ArrayList(); arraylist.addAll(this.g); if (this.a) { for (int l2 = arraylist.size() - 1; l2 >= 0; --l2) { ChunkPosition chunkposition = (ChunkPosition) arraylist.get(l2); - int i3 = chunkposition.a; - int j3 = chunkposition.b; - int k3 = chunkposition.c; - int l3 = this.i.getTypeId(i3, j3, k3); - int i4 = this.i.getTypeId(i3, j3 - 1, k3); + int i3 = chunkposition.x; + int j3 = chunkposition.y; + int k3 = chunkposition.z; + int l3 = this.world.getTypeId(i3, j3, k3); + int i4 = this.world.getTypeId(i3, j3 - 1, k3); if (l3 == 0 && Block.o[i4] && this.h.nextInt(3) == 0) { - this.i.e(i3, j3, k3, Block.FIRE.id); + this.world.setTypeId(i3, j3, k3, Block.FIRE.id); } } } } public void b() { - this.i.a(this.b, this.c, this.d, "random.explode", 4.0F, (1.0F + (this.i.k.nextFloat() - this.i.k.nextFloat()) * 0.2F) * 0.7F); + this.world.makeSound(this.posX, this.posY, this.posZ, "random.explode", 4.0F, (1.0F + (this.world.random.nextFloat() - this.world.random.nextFloat()) * 0.2F) * 0.7F); ArrayList arraylist = new ArrayList(); arraylist.addAll(this.g); // CraftBukkit start - Server server = ((WorldServer) this.i).getServer(); - CraftWorld world = ((WorldServer) this.i).getWorld(); - org.bukkit.entity.Entity explode = (this.e == null) ? null : this.e.getBukkitEntity(); - Location location = new Location(world, this.b, this.c, this.d); + Server server = ((WorldServer) this.world).getServer(); + CraftWorld world = ((WorldServer) this.world).getWorld(); + org.bukkit.entity.Entity explode = (this.source == null) ? null : this.source.getBukkitEntity(); + Location location = new Location(world, this.posX, this.posY, this.posZ); List blockList = new ArrayList(); for (int j = arraylist.size() - 1; j >= 0; j--) { ChunkPosition cpos = (ChunkPosition) arraylist.get(j); - org.bukkit.block.Block block = world.getBlockAt(cpos.a, cpos.b, cpos.c); + org.bukkit.block.Block block = world.getBlockAt(cpos.x, cpos.y, cpos.z); if (!block.getType().equals(org.bukkit.Material.AIR)) { blockList.add(block); } @@ -212,38 +212,38 @@ public class Explosion { for (int i = arraylist.size() - 1; i >= 0; --i) { ChunkPosition chunkposition = (ChunkPosition) arraylist.get(i); - int j = chunkposition.a; - int k = chunkposition.b; - int l = chunkposition.c; - int i1 = this.i.getTypeId(j, k, l); + int j = chunkposition.x; + int k = chunkposition.y; + int l = chunkposition.z; + int i1 = this.world.getTypeId(j, k, l); for (int j1 = 0; j1 < 1; ++j1) { - double d0 = (double) ((float) j + this.i.k.nextFloat()); - double d1 = (double) ((float) k + this.i.k.nextFloat()); - double d2 = (double) ((float) l + this.i.k.nextFloat()); - double d3 = d0 - this.b; - double d4 = d1 - this.c; - double d5 = d2 - this.d; + double d0 = (double) ((float) j + this.world.random.nextFloat()); + double d1 = (double) ((float) k + this.world.random.nextFloat()); + double d2 = (double) ((float) l + this.world.random.nextFloat()); + double d3 = d0 - this.posX; + double d4 = d1 - this.posY; + double d5 = d2 - this.posZ; double d6 = (double) MathHelper.a(d3 * d3 + d4 * d4 + d5 * d5); d3 /= d6; d4 /= d6; d5 /= d6; - double d7 = 0.5D / (d6 / (double) this.f + 0.1D); + double d7 = 0.5D / (d6 / (double) this.size + 0.1D); - d7 *= (double) (this.i.k.nextFloat() * this.i.k.nextFloat() + 0.3F); + d7 *= (double) (this.world.random.nextFloat() * this.world.random.nextFloat() + 0.3F); d3 *= d7; d4 *= d7; d5 *= d7; - this.i.a("explode", (d0 + this.b * 1.0D) / 2.0D, (d1 + this.c * 1.0D) / 2.0D, (d2 + this.d * 1.0D) / 2.0D, d3, d4, d5); - this.i.a("smoke", d0, d1, d2, d3, d4, d5); + this.world.a("explode", (d0 + this.posX * 1.0D) / 2.0D, (d1 + this.posY * 1.0D) / 2.0D, (d2 + this.posZ * 1.0D) / 2.0D, d3, d4, d5); + this.world.a("smoke", d0, d1, d2, d3, d4, d5); } if (i1 > 0) { // CraftBukkit - Block.byId[i1].a(this.i, j, k, l, this.i.getData(j, k, l), event.getYield()); - this.i.e(j, k, l, 0); - Block.byId[i1].c(this.i, j, k, l); + Block.byId[i1].dropNaturally(this.world, j, k, l, this.world.getData(j, k, l), event.getYield()); + this.world.setTypeId(j, k, l, 0); + Block.byId[i1].c(this.world, j, k, l); } } } diff --git a/src/main/java/net/minecraft/server/IInventory.java b/src/main/java/net/minecraft/server/IInventory.java index 1c9c9e868f..4cf849fa09 100644 --- a/src/main/java/net/minecraft/server/IInventory.java +++ b/src/main/java/net/minecraft/server/IInventory.java @@ -2,19 +2,19 @@ package net.minecraft.server; public interface IInventory { - int q_(); + int getSize(); - ItemStack c_(int i); + ItemStack getItem(int i); ItemStack a(int i, int j); - void a(int i, ItemStack itemstack); + void setItem(int i, ItemStack itemstack); - String c(); + String getName(); - int r_(); + int getMaxStackSize(); - void i(); + void update(); boolean a_(EntityHuman entityhuman); diff --git a/src/main/java/net/minecraft/server/InventoryCraftResult.java b/src/main/java/net/minecraft/server/InventoryCraftResult.java index 53d56374fc..3475a92174 100644 --- a/src/main/java/net/minecraft/server/InventoryCraftResult.java +++ b/src/main/java/net/minecraft/server/InventoryCraftResult.java @@ -2,48 +2,48 @@ package net.minecraft.server; public class InventoryCraftResult implements IInventory { - private ItemStack[] a = new ItemStack[1]; + private ItemStack[] items = new ItemStack[1]; // CraftBukkit start public ItemStack[] getContents() { - return a; + return items; } // CraftBukkit end public InventoryCraftResult() {} - public int q_() { + public int getSize() { return 1; } - public ItemStack c_(int i) { - return this.a[i]; + public ItemStack getItem(int i) { + return this.items[i]; } - public String c() { + public String getName() { return "Result"; } public ItemStack a(int i, int j) { - if (this.a[i] != null) { - ItemStack itemstack = this.a[i]; + if (this.items[i] != null) { + ItemStack itemstack = this.items[i]; - this.a[i] = null; + this.items[i] = null; return itemstack; } else { return null; } } - public void a(int i, ItemStack itemstack) { - this.a[i] = itemstack; + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; } - public int r_() { + public int getMaxStackSize() { return 64; } - public void i() {} + public void update() {} public boolean a_(EntityHuman entityhuman) { return true; diff --git a/src/main/java/net/minecraft/server/InventoryCrafting.java b/src/main/java/net/minecraft/server/InventoryCrafting.java index 5f0bae2e6e..e6411c16b2 100644 --- a/src/main/java/net/minecraft/server/InventoryCrafting.java +++ b/src/main/java/net/minecraft/server/InventoryCrafting.java @@ -2,59 +2,59 @@ package net.minecraft.server; public class InventoryCrafting implements IInventory { - private ItemStack[] a; + private ItemStack[] items; private int b; private Container c; // CraftBukkit start public ItemStack[] getContents() { - return a; + return items; } // CraftBukkit end public InventoryCrafting(Container container, int i, int j) { int k = i * j; - this.a = new ItemStack[k]; + this.items = new ItemStack[k]; this.c = container; this.b = i; } - public int q_() { - return this.a.length; + public int getSize() { + return this.items.length; } - public ItemStack c_(int i) { - return i >= this.q_() ? null : this.a[i]; + public ItemStack getItem(int i) { + return i >= this.getSize() ? null : this.items[i]; } public ItemStack b(int i, int j) { if (i >= 0 && i < this.b) { int k = i + j * this.b; - return this.c_(k); + return this.getItem(k); } else { return null; } } - public String c() { + public String getName() { return "Crafting"; } public ItemStack a(int i, int j) { - if (this.a[i] != null) { + if (this.items[i] != null) { ItemStack itemstack; - if (this.a[i].count <= j) { - itemstack = this.a[i]; - this.a[i] = null; + if (this.items[i].count <= j) { + itemstack = this.items[i]; + this.items[i] = null; this.c.a((IInventory) this); return itemstack; } else { - itemstack = this.a[i].a(j); - if (this.a[i].count == 0) { - this.a[i] = null; + itemstack = this.items[i].a(j); + if (this.items[i].count == 0) { + this.items[i] = null; } this.c.a((IInventory) this); @@ -65,16 +65,16 @@ public class InventoryCrafting implements IInventory { } } - public void a(int i, ItemStack itemstack) { - this.a[i] = itemstack; + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; this.c.a((IInventory) this); } - public int r_() { + public int getMaxStackSize() { return 64; } - public void i() {} + public void update() {} public boolean a_(EntityHuman entityhuman) { return true; diff --git a/src/main/java/net/minecraft/server/InventoryLargeChest.java b/src/main/java/net/minecraft/server/InventoryLargeChest.java index 60e008527c..4fe486e50c 100644 --- a/src/main/java/net/minecraft/server/InventoryLargeChest.java +++ b/src/main/java/net/minecraft/server/InventoryLargeChest.java @@ -8,9 +8,9 @@ public class InventoryLargeChest implements IInventory { // CraftBukkit start public ItemStack[] getContents() { - ItemStack[] result = new ItemStack[q_()]; + ItemStack[] result = new ItemStack[getSize()]; for (int i = 0; i < result.length; i++) { - result[i] = c_(i); + result[i] = getItem(i); } return result; } @@ -22,37 +22,37 @@ public class InventoryLargeChest implements IInventory { this.c = iinventory1; } - public int q_() { - return this.b.q_() + this.c.q_(); + public int getSize() { + return this.b.getSize() + this.c.getSize(); } - public String c() { + public String getName() { return this.a; } - public ItemStack c_(int i) { - return i >= this.b.q_() ? this.c.c_(i - this.b.q_()) : this.b.c_(i); + public ItemStack getItem(int i) { + return i >= this.b.getSize() ? this.c.getItem(i - this.b.getSize()) : this.b.getItem(i); } public ItemStack a(int i, int j) { - return i >= this.b.q_() ? this.c.a(i - this.b.q_(), j) : this.b.a(i, j); + return i >= this.b.getSize() ? this.c.a(i - this.b.getSize(), j) : this.b.a(i, j); } - public void a(int i, ItemStack itemstack) { - if (i >= this.b.q_()) { - this.c.a(i - this.b.q_(), itemstack); + public void setItem(int i, ItemStack itemstack) { + if (i >= this.b.getSize()) { + this.c.setItem(i - this.b.getSize(), itemstack); } else { - this.b.a(i, itemstack); + this.b.setItem(i, itemstack); } } - public int r_() { - return this.b.r_(); + public int getMaxStackSize() { + return this.b.getMaxStackSize(); } - public void i() { - this.b.i(); - this.c.i(); + public void update() { + this.b.update(); + this.c.update(); } public boolean a_(EntityHuman entityhuman) { diff --git a/src/main/java/net/minecraft/server/InventoryPlayer.java b/src/main/java/net/minecraft/server/InventoryPlayer.java index 6029352e99..31c9e4f160 100644 --- a/src/main/java/net/minecraft/server/InventoryPlayer.java +++ b/src/main/java/net/minecraft/server/InventoryPlayer.java @@ -2,20 +2,20 @@ package net.minecraft.server; public class InventoryPlayer implements IInventory { - public ItemStack[] a = new ItemStack[36]; - public ItemStack[] b = new ItemStack[4]; - public int c = 0; + public ItemStack[] items = new ItemStack[36]; + public ItemStack[] armor = new ItemStack[4]; + public int itemInHandIndex = 0; public EntityHuman d; // CraftBukkit - private->public private ItemStack f; public boolean e = false; // CraftBukkit start public ItemStack[] getContents() { - return a; + return items; } public ItemStack[] getArmorContents() { - return b; + return armor; } // CraftBukkit end @@ -23,8 +23,8 @@ public class InventoryPlayer implements IInventory { this.d = entityhuman; } - public ItemStack b() { - return this.c < 9 && this.c >= 0 ? this.a[this.c] : null; + public ItemStack getItemInHand() { + return this.itemInHandIndex < 9 && this.itemInHandIndex >= 0 ? this.items[this.itemInHandIndex] : null; } public static int e() { @@ -32,8 +32,8 @@ public class InventoryPlayer implements IInventory { } private int d(int i) { - for (int j = 0; j < this.a.length; ++j) { - if (this.a[j] != null && this.a[j].id == i) { + for (int j = 0; j < this.items.length; ++j) { + if (this.items[j] != null && this.items[j].id == i) { return j; } } @@ -42,8 +42,8 @@ public class InventoryPlayer implements IInventory { } private int c(ItemStack itemstack) { - for (int i = 0; i < this.a.length; ++i) { - if (this.a[i] != null && this.a[i].id == itemstack.id && this.a[i].c() && this.a[i].count < this.a[i].b() && this.a[i].count < this.r_() && (!this.a[i].e() || this.a[i].h() == itemstack.h())) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null && this.items[i].id == itemstack.id && this.items[i].c() && this.items[i].count < this.items[i].b() && this.items[i].count < this.getMaxStackSize() && (!this.items[i].e() || this.items[i].getData() == itemstack.getData())) { return i; } } @@ -52,8 +52,8 @@ public class InventoryPlayer implements IInventory { } private int k() { - for (int i = 0; i < this.a.length; ++i) { - if (this.a[i] == null) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] == null) { return i; } } @@ -73,35 +73,35 @@ public class InventoryPlayer implements IInventory { if (k < 0) { return j; } else { - if (this.a[k] == null) { - this.a[k] = new ItemStack(i, 0, itemstack.h()); + if (this.items[k] == null) { + this.items[k] = new ItemStack(i, 0, itemstack.getData()); } int l = j; - if (j > this.a[k].b() - this.a[k].count) { - l = this.a[k].b() - this.a[k].count; + if (j > this.items[k].b() - this.items[k].count) { + l = this.items[k].b() - this.items[k].count; } - if (l > this.r_() - this.a[k].count) { - l = this.r_() - this.a[k].count; + if (l > this.getMaxStackSize() - this.items[k].count) { + l = this.getMaxStackSize() - this.items[k].count; } if (l == 0) { return j; } else { j -= l; - this.a[k].count += l; - this.a[k].b = 5; + this.items[k].count += l; + this.items[k].b = 5; return j; } } } public void f() { - for (int i = 0; i < this.a.length; ++i) { - if (this.a[i] != null && this.a[i].b > 0) { - --this.a[i].b; + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null && this.items[i].b > 0) { + --this.items[i].b; } } } @@ -112,15 +112,15 @@ public class InventoryPlayer implements IInventory { if (j < 0) { return false; } else { - if (--this.a[j].count <= 0) { - this.a[j] = null; + if (--this.items[j].count <= 0) { + this.items[j] = null; } return true; } } - public boolean a(ItemStack itemstack) { + public boolean canHold(ItemStack itemstack) { if (!itemstack.f()) { itemstack.count = this.d(itemstack); if (itemstack.count == 0) { @@ -131,8 +131,8 @@ public class InventoryPlayer implements IInventory { int i = this.k(); if (i >= 0) { - this.a[i] = itemstack; - this.a[i].b = 5; + this.items[i] = itemstack; + this.items[i].b = 5; return true; } else { return false; @@ -140,11 +140,11 @@ public class InventoryPlayer implements IInventory { } public ItemStack a(int i, int j) { - ItemStack[] aitemstack = this.a; + ItemStack[] aitemstack = this.items; - if (i >= this.a.length) { - aitemstack = this.b; - i -= this.a.length; + if (i >= this.items.length) { + aitemstack = this.armor; + i -= this.items.length; } if (aitemstack[i] != null) { @@ -167,12 +167,12 @@ public class InventoryPlayer implements IInventory { } } - public void a(int i, ItemStack itemstack) { - ItemStack[] aitemstack = this.a; + public void setItem(int i, ItemStack itemstack) { + ItemStack[] aitemstack = this.items; if (i >= aitemstack.length) { i -= aitemstack.length; - aitemstack = this.b; + aitemstack = this.armor; } aitemstack[i] = itemstack; @@ -181,8 +181,8 @@ public class InventoryPlayer implements IInventory { public float a(Block block) { float f = 1.0F; - if (this.a[this.c] != null) { - f *= this.a[this.c].a(block); + if (this.items[this.itemInHandIndex] != null) { + f *= this.items[this.itemInHandIndex].a(block); } return f; @@ -192,20 +192,20 @@ public class InventoryPlayer implements IInventory { int i; NBTTagCompound nbttagcompound; - for (i = 0; i < this.a.length; ++i) { - if (this.a[i] != null) { + for (i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { nbttagcompound = new NBTTagCompound(); nbttagcompound.a("Slot", (byte) i); - this.a[i].a(nbttagcompound); + this.items[i].a(nbttagcompound); nbttaglist.a((NBTBase) nbttagcompound); } } - for (i = 0; i < this.b.length; ++i) { - if (this.b[i] != null) { + for (i = 0; i < this.armor.length; ++i) { + if (this.armor[i] != null) { nbttagcompound = new NBTTagCompound(); nbttagcompound.a("Slot", (byte) (i + 100)); - this.b[i].a(nbttagcompound); + this.armor[i].a(nbttagcompound); nbttaglist.a((NBTBase) nbttagcompound); } } @@ -214,51 +214,51 @@ public class InventoryPlayer implements IInventory { } public void b(NBTTagList nbttaglist) { - this.a = new ItemStack[36]; - this.b = new ItemStack[4]; + this.items = new ItemStack[36]; + this.armor = new ItemStack[4]; for (int i = 0; i < nbttaglist.c(); ++i) { NBTTagCompound nbttagcompound = (NBTTagCompound) nbttaglist.a(i); int j = nbttagcompound.c("Slot") & 255; ItemStack itemstack = new ItemStack(nbttagcompound); - if (itemstack.a() != null) { - if (j >= 0 && j < this.a.length) { - this.a[j] = itemstack; + if (itemstack.getItem() != null) { + if (j >= 0 && j < this.items.length) { + this.items[j] = itemstack; } - if (j >= 100 && j < this.b.length + 100) { - this.b[j - 100] = itemstack; + if (j >= 100 && j < this.armor.length + 100) { + this.armor[j - 100] = itemstack; } } } } - public int q_() { - return this.a.length + 4; + public int getSize() { + return this.items.length + 4; } - public ItemStack c_(int i) { - ItemStack[] aitemstack = this.a; + public ItemStack getItem(int i) { + ItemStack[] aitemstack = this.items; if (i >= aitemstack.length) { i -= aitemstack.length; - aitemstack = this.b; + aitemstack = this.armor; } return aitemstack[i]; } - public String c() { + public String getName() { return "Inventory"; } - public int r_() { + public int getMaxStackSize() { return 64; } public int a(Entity entity) { - ItemStack itemstack = this.c_(this.c); + ItemStack itemstack = this.getItem(this.itemInHandIndex); return itemstack != null ? itemstack.a(entity) : 1; } @@ -267,7 +267,7 @@ public class InventoryPlayer implements IInventory { if (block.material != Material.STONE && block.material != Material.ORE && block.material != Material.SNOW_BLOCK && block.material != Material.SNOW_LAYER) { return true; } else { - ItemStack itemstack = this.c_(this.c); + ItemStack itemstack = this.getItem(this.itemInHandIndex); return itemstack != null ? itemstack.b(block) : false; } @@ -278,15 +278,15 @@ public class InventoryPlayer implements IInventory { int j = 0; int k = 0; - for (int l = 0; l < this.b.length; ++l) { - if (this.b[l] != null && this.b[l].a() instanceof ItemArmor) { - int i1 = this.b[l].i(); - int j1 = this.b[l].g(); + for (int l = 0; l < this.armor.length; ++l) { + if (this.armor[l] != null && this.armor[l].getItem() instanceof ItemArmor) { + int i1 = this.armor[l].i(); + int j1 = this.armor[l].g(); int k1 = i1 - j1; j += k1; k += i1; - int l1 = ((ItemArmor) this.b[l].a()).bj; + int l1 = ((ItemArmor) this.armor[l].getItem()).bj; i += l1; } @@ -300,12 +300,12 @@ public class InventoryPlayer implements IInventory { } public void c(int i) { - for (int j = 0; j < this.b.length; ++j) { - if (this.b[j] != null && this.b[j].a() instanceof ItemArmor) { - this.b[j].a(i, this.d); - if (this.b[j].count == 0) { - this.b[j].a(this.d); - this.b[j] = null; + for (int j = 0; j < this.armor.length; ++j) { + if (this.armor[j] != null && this.armor[j].getItem() instanceof ItemArmor) { + this.armor[j].damage(i, this.d); + if (this.armor[j].count == 0) { + this.armor[j].a(this.d); + this.armor[j] = null; } } } @@ -314,22 +314,22 @@ public class InventoryPlayer implements IInventory { public void h() { int i; - for (i = 0; i < this.a.length; ++i) { - if (this.a[i] != null) { - this.d.a(this.a[i], true); - this.a[i] = null; + for (i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { + this.d.a(this.items[i], true); + this.items[i] = null; } } - for (i = 0; i < this.b.length; ++i) { - if (this.b[i] != null) { - this.d.a(this.b[i], true); - this.b[i] = null; + for (i = 0; i < this.armor.length; ++i) { + if (this.armor[i] != null) { + this.d.a(this.armor[i], true); + this.armor[i] = null; } } } - public void i() { + public void update() { this.e = true; } diff --git a/src/main/java/net/minecraft/server/ItemBed.java b/src/main/java/net/minecraft/server/ItemBed.java index 7debae0647..51b2a02f22 100644 --- a/src/main/java/net/minecraft/server/ItemBed.java +++ b/src/main/java/net/minecraft/server/ItemBed.java @@ -21,7 +21,7 @@ public class ItemBed extends Item { ++j; BlockBed blockbed = (BlockBed) Block.BED; - int i1 = MathHelper.b((double) (entityhuman.yaw * 4.0F / 360.0F) + 0.5D) & 3; + int i1 = MathHelper.floor((double) (entityhuman.yaw * 4.0F / 360.0F) + 0.5D) & 3; byte b0 = 0; byte b1 = 0; @@ -44,7 +44,7 @@ public class ItemBed extends Item { if (world.isEmpty(i, j, k) && world.isEmpty(i + b0, j, k + b1) && world.d(i, j - 1, k) && world.d(i + b0, j - 1, k + b1)) { BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - world.b(i, j, k, blockbed.id, i1); + world.setTypeIdAndData(i, j, k, blockbed.id, i1); // CraftBukkit start - bed BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, blockbed); @@ -55,7 +55,7 @@ public class ItemBed extends Item { } // CraftBukkit end - world.b(i + b0, j, k + b1, blockbed.id, i1 + 8); + world.setTypeIdAndData(i + b0, j, k + b1, blockbed.id, i1 + 8); --itemstack.count; return true; } else { diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java index fda82cf657..d70a880dcd 100644 --- a/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java @@ -9,11 +9,11 @@ import org.bukkit.event.block.BlockPlaceEvent; public class ItemBlock extends Item { - private int a; + private int id; public ItemBlock(int i) { super(i); - this.a = i + 256; + this.id = i + 256; this.b(Block.byId[i + 256].a(2)); } @@ -50,64 +50,64 @@ public class ItemBlock extends Item { if (itemstack.count == 0) { return false; - } else { - if (world.a(this.a, i, j, k, false)) { - Block block = Block.byId[this.a]; + } else if (world.a(this.id, i, j, k, false)) { + Block block = Block.byId[this.id]; - // CraftBukkit start - This executes the placement of the block - BlockState replacedBlockState = CraftBlockState.getBlockState(world, i, j, k); + // CraftBukkit start - This executes the placement of the block + BlockState replacedBlockState = CraftBlockState.getBlockState(world, i, j, k); - // Special case the silly stepstone :'( - if (l == 1 && world.getTypeId(i, j - 1, k) == Block.STEP.id && itemstack.id == Block.STEP.id) { - replacedBlockState = CraftBlockState.getBlockState(world, i, j - 1, k); - } - /** - * @see net.minecraft.server.World#b(int i, int j, int k, int l, int i1) - * - * This replaces world.b(IIIII), we're doing this because we need to - * hook between the 'placement' and the informing to 'world' so we can - * sanely undo this. - * - * Whenever the call to 'world.b' changes we need to figure out again what to - * replace this with. - */ - if (world.setTypeIdAndData(i, j, k, a, a(itemstack.h()))) { // <-- world.b does this to place the block - BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, replacedBlockState, clickedX, clickedY, clickedZ, block); + // Special case the silly stepstone :'( + if (l == 1 && world.getTypeId(i, j - 1, k) == Block.STEP.id && itemstack.id == Block.STEP.id) { + replacedBlockState = CraftBlockState.getBlockState(world, i, j - 1, k); + } + /** + * @see net.minecraft.server.World#setTypeIdAndData(int i, int j, int k, int l, int i1) + * + * This replaces world.setTypeIdAndData(IIIII), we're doing this because we need to + * hook between the 'placement' and the informing to 'world' so we can + * sanely undo this. + * + * Whenever the call to 'world.setTypeIdAndData' changes we need to figure out again what to + * replace this with. + */ + if (world.setRawTypeIdAndData(i, j, k, this.id, this.filterData(itemstack.getData()))) { // <-- world.setTypeIdAndData does this to place the block + BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, replacedBlockState, clickedX, clickedY, clickedZ, block); - if (event.isCancelled() || !event.canBuild()) { - // CraftBukkit Undo! + if (event.isCancelled() || !event.canBuild()) { + // CraftBukkit Undo! - if ((this.a == Block.STEP.id) && (world.getTypeId(i, j - 1, k) == Block.DOUBLE_STEP.id) && (world.getTypeId(i, j, k) == 0)) { - // Half steps automatically set the block below to a double - world.setTypeId(i, j - 1, k, 44); - - } else { - - if (this.a == Block.ICE.id) { - // Ice will explode if we set straight to 0 - world.setTypeId(i, j, k, 20); - } - - world.setTypeIdAndData(i, j, k, replacedBlockState.getTypeId(), replacedBlockState.getRawData()); - } + if ((this.id == Block.STEP.id) && (world.getTypeId(i, j - 1, k) == Block.DOUBLE_STEP.id) && (world.getTypeId(i, j, k) == 0)) { + // Half steps automatically set the block below to a double + world.setTypeId(i, j - 1, k, 44); } else { - world.f(i, j, k, a); // <-- world.b does this on success (tell the world) - Block.byId[this.a].d(world, i, j, k, l); - Block.byId[this.a].a(world, i, j, k, (EntityLiving) entityhuman); - world.a((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.c(), (block.stepSound.a() + 1.0F) / 2.0F, block.stepSound.b() * 0.8F); - --itemstack.count; + if (this.id == Block.ICE.id) { + // Ice will explode if we set straight to 0 + world.setTypeId(i, j, k, 20); + } + + world.setTypeIdAndData(i, j, k, replacedBlockState.getTypeId(), replacedBlockState.getRawData()); } - // CraftBukkit end + + } else { + world.update(i, j, k, this.id); // <-- world.setTypeIdAndData does this on success (tell the world) + + Block.byId[this.id].postPlace(world, i, j, k, l); + Block.byId[this.id].postPlace(world, i, j, k, entityhuman); + world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.getName(), (block.stepSound.getVolume1() + 1.0F) / 2.0F, block.stepSound.getVolume2() * 0.8F); + --itemstack.count; } + // CraftBukkit end } return true; + } else { + return false; } } public String a() { - return Block.byId[this.a].f(); + return Block.byId[this.id].f(); } } diff --git a/src/main/java/net/minecraft/server/ItemBoat.java b/src/main/java/net/minecraft/server/ItemBoat.java index 393b94b577..a628a64327 100644 --- a/src/main/java/net/minecraft/server/ItemBoat.java +++ b/src/main/java/net/minecraft/server/ItemBoat.java @@ -20,35 +20,35 @@ public class ItemBoat extends Item { double d0 = entityhuman.lastX + (entityhuman.locX - entityhuman.lastX) * (double) f; double d1 = entityhuman.lastY + (entityhuman.locY - entityhuman.lastY) * (double) f + 1.62D - (double) entityhuman.height; double d2 = entityhuman.lastZ + (entityhuman.locZ - entityhuman.lastZ) * (double) f; - Vec3D vec3d = Vec3D.b(d0, d1, d2); - float f3 = MathHelper.b(-f2 * 0.017453292F - 3.1415927F); - float f4 = MathHelper.a(-f2 * 0.017453292F - 3.1415927F); - float f5 = -MathHelper.b(-f1 * 0.017453292F); - float f6 = MathHelper.a(-f1 * 0.017453292F); + Vec3D vec3d = Vec3D.create(d0, d1, d2); + float f3 = MathHelper.cos(-f2 * 0.017453292F - 3.1415927F); + float f4 = MathHelper.sin(-f2 * 0.017453292F - 3.1415927F); + float f5 = -MathHelper.cos(-f1 * 0.017453292F); + float f6 = MathHelper.sin(-f1 * 0.017453292F); float f7 = f4 * f5; float f8 = f3 * f5; double d3 = 5.0D; - Vec3D vec3d1 = vec3d.c((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); - MovingObjectPosition movingobjectposition = world.a(vec3d, vec3d1, true); + Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); + MovingObjectPosition movingobjectposition = world.rayTrace(vec3d, vec3d1, true); if (movingobjectposition == null) { return itemstack; } else { - if (movingobjectposition.a == EnumMovingObjectType.TILE) { + if (movingobjectposition.type == EnumMovingObjectType.TILE) { int i = movingobjectposition.b; int j = movingobjectposition.c; int k = movingobjectposition.d; if (!world.isStatic) { // CraftBukkit start - Boat placement - PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(entityhuman, Action.RIGHT_CLICK_BLOCK, i, j, k, movingobjectposition.e, itemstack); + PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(entityhuman, Action.RIGHT_CLICK_BLOCK, i, j, k, movingobjectposition.face, itemstack); if (event.isCancelled()) { return itemstack; } // CraftBukkit end - world.a((Entity) (new EntityBoat(world, (double) ((float) i + 0.5F), (double) ((float) j + 1.5F), (double) ((float) k + 0.5F)))); + world.addEntity(new EntityBoat(world, (double) ((float) i + 0.5F), (double) ((float) j + 1.5F), (double) ((float) k + 0.5F))); } --itemstack.count; diff --git a/src/main/java/net/minecraft/server/ItemBucket.java b/src/main/java/net/minecraft/server/ItemBucket.java index 56356b1442..45aedd10b4 100644 --- a/src/main/java/net/minecraft/server/ItemBucket.java +++ b/src/main/java/net/minecraft/server/ItemBucket.java @@ -25,21 +25,21 @@ public class ItemBucket extends Item { double d0 = entityhuman.lastX + (entityhuman.locX - entityhuman.lastX) * (double) f; double d1 = entityhuman.lastY + (entityhuman.locY - entityhuman.lastY) * (double) f + 1.62D - (double) entityhuman.height; double d2 = entityhuman.lastZ + (entityhuman.locZ - entityhuman.lastZ) * (double) f; - Vec3D vec3d = Vec3D.b(d0, d1, d2); - float f3 = MathHelper.b(-f2 * 0.017453292F - 3.1415927F); - float f4 = MathHelper.a(-f2 * 0.017453292F - 3.1415927F); - float f5 = -MathHelper.b(-f1 * 0.017453292F); - float f6 = MathHelper.a(-f1 * 0.017453292F); + Vec3D vec3d = Vec3D.create(d0, d1, d2); + float f3 = MathHelper.cos(-f2 * 0.017453292F - 3.1415927F); + float f4 = MathHelper.sin(-f2 * 0.017453292F - 3.1415927F); + float f5 = -MathHelper.cos(-f1 * 0.017453292F); + float f6 = MathHelper.sin(-f1 * 0.017453292F); float f7 = f4 * f5; float f8 = f3 * f5; double d3 = 5.0D; - Vec3D vec3d1 = vec3d.c((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); - MovingObjectPosition movingobjectposition = world.a(vec3d, vec3d1, this.a == 0); + Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); + MovingObjectPosition movingobjectposition = world.rayTrace(vec3d, vec3d1, this.a == 0); if (movingobjectposition == null) { return itemstack; } else { - if (movingobjectposition.a == EnumMovingObjectType.TILE) { + if (movingobjectposition.type == EnumMovingObjectType.TILE) { int i = movingobjectposition.b; int j = movingobjectposition.c; int k = movingobjectposition.d; @@ -61,7 +61,7 @@ public class ItemBucket extends Item { byte data = itemInHand.getData() == null ? (byte) 0 : itemInHand.getData().getData(); // CraftBukkit end - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); return new ItemStack(itemInHand.getTypeId(), itemInHand.getAmount(), data); // CraftBukkit } @@ -77,13 +77,13 @@ public class ItemBucket extends Item { byte data = itemInHand.getData() == null ? (byte) 0 : itemInHand.getData().getData(); // CraftBukkit end - world.e(i, j, k, 0); + world.setTypeId(i, j, k, 0); return new ItemStack(itemInHand.getTypeId(), itemInHand.getAmount(), data ); // CraftBukkit } } else { if (this.a < 0) { // CraftBukkit start - PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, i, j, k, movingobjectposition.e, itemstack); + PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, i, j, k, movingobjectposition.face, itemstack); if (event.isCancelled()) { return itemstack; @@ -96,47 +96,47 @@ public class ItemBucket extends Item { } int clickedX = i, clickedY = j, clickedZ = k; // CraftBukkit - if (movingobjectposition.e == 0) { + if (movingobjectposition.face == 0) { --j; } - if (movingobjectposition.e == 1) { + if (movingobjectposition.face == 1) { ++j; } - if (movingobjectposition.e == 2) { + if (movingobjectposition.face == 2) { --k; } - if (movingobjectposition.e == 3) { + if (movingobjectposition.face == 3) { ++k; } - if (movingobjectposition.e == 4) { + if (movingobjectposition.face == 4) { --i; } - if (movingobjectposition.e == 5) { + if (movingobjectposition.face == 5) { ++i; } if (world.isEmpty(i, j, k) || !world.getMaterial(i, j, k).isBuildable()) { // CraftBukkit start - PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, clickedX, clickedY, clickedZ, movingobjectposition.e, itemstack); + PlayerBucketEmptyEvent event = CraftEventFactory.callPlayerBucketEmptyEvent(entityhuman, clickedX, clickedY, clickedZ, movingobjectposition.face, itemstack); if (event.isCancelled()) { return itemstack; } // CraftBukkit end - if (world.m.d && this.a == Block.WATER.id) { - world.a(d0 + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (world.k.nextFloat() - world.k.nextFloat()) * 0.8F); + if (world.worldProvider.d && this.a == Block.WATER.id) { + world.makeSound(d0 + 0.5D, d1 + 0.5D, d2 + 0.5D, "random.fizz", 0.5F, 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); for (int l = 0; l < 8; ++l) { world.a("largesmoke", (double) i + Math.random(), (double) j + Math.random(), (double) k + Math.random(), 0.0D, 0.0D, 0.0D); } } else { - world.b(i, j, k, this.a, 0); + world.setTypeIdAndData(i, j, k, this.a, 0); } // CraftBukkit start @@ -146,9 +146,9 @@ public class ItemBucket extends Item { // CraftBukkit end } } - } else if (this.a == 0 && movingobjectposition.g instanceof EntityCow) { + } else if (this.a == 0 && movingobjectposition.entity instanceof EntityCow) { // CraftBukkit start -- This codepath seems to be *NEVER* called - Location loc = movingobjectposition.g.getBukkitEntity().getLocation(); + Location loc = movingobjectposition.entity.getBukkitEntity().getLocation(); PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, loc.getBlockX(), loc.getBlockY(), loc.getBlockZ(), -1, itemstack, Item.MILK_BUCKET); if (event.isCancelled()) { diff --git a/src/main/java/net/minecraft/server/ItemDoor.java b/src/main/java/net/minecraft/server/ItemDoor.java index ead1b8f816..860426f070 100644 --- a/src/main/java/net/minecraft/server/ItemDoor.java +++ b/src/main/java/net/minecraft/server/ItemDoor.java @@ -32,10 +32,10 @@ public class ItemDoor extends Item { block = Block.IRON_DOOR_BLOCK; } - if (!block.a(world, i, j, k)) { + if (!block.canPlace(world, i, j, k)) { return false; } else { - int i1 = MathHelper.b((double) ((entityhuman.yaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; + int i1 = MathHelper.floor((double) ((entityhuman.yaw + 180.0F) * 4.0F / 360.0F) - 0.5D) & 3; byte b0 = 0; byte b1 = 0; @@ -74,8 +74,8 @@ public class ItemDoor extends Item { BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - world.e(i, j, k, block.id); - world.c(i, j, k, i1); + world.setTypeId(i, j, k, block.id); + world.setData(i, j, k, i1); // CraftBukkit start - bed BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, block); @@ -86,8 +86,8 @@ public class ItemDoor extends Item { } // CraftBukkit end - world.e(i, j + 1, k, block.id); - world.c(i, j + 1, k, i1 + 8); + world.setTypeId(i, j + 1, k, block.id); + world.setData(i, j + 1, k, i1 + 8); --itemstack.count; return true; } diff --git a/src/main/java/net/minecraft/server/ItemFlintAndSteel.java b/src/main/java/net/minecraft/server/ItemFlintAndSteel.java index 29c57f15ca..845f647e2f 100644 --- a/src/main/java/net/minecraft/server/ItemFlintAndSteel.java +++ b/src/main/java/net/minecraft/server/ItemFlintAndSteel.java @@ -63,15 +63,15 @@ public class ItemFlintAndSteel extends Item { boolean preventFire = eventIgnite.isCancelled(); if (preventFire) { - itemstack.a(1, entityhuman); + itemstack.damage(1, entityhuman); return false; } // CraftBukkit end BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "fire.ignite", 1.0F, b.nextFloat() * 0.4F + 0.8F); - world.e(i, j, k, Block.FIRE.id); + world.makeSound((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "fire.ignite", 1.0F, b.nextFloat() * 0.4F + 0.8F); + world.setTypeId(i, j, k, Block.FIRE.id); // CraftBukkit start BlockPlaceEvent placeEvent = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, Block.FIRE.id); @@ -83,7 +83,7 @@ public class ItemFlintAndSteel extends Item { // CraftBukkit end } - itemstack.a(1, entityhuman); + itemstack.damage(1, entityhuman); return true; } } diff --git a/src/main/java/net/minecraft/server/ItemHoe.java b/src/main/java/net/minecraft/server/ItemHoe.java index af52be9f56..7a51c31d30 100644 --- a/src/main/java/net/minecraft/server/ItemHoe.java +++ b/src/main/java/net/minecraft/server/ItemHoe.java @@ -24,13 +24,13 @@ public class ItemHoe extends Item { } else { Block block = Block.SOIL; - world.a((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.c(), (block.stepSound.a() + 1.0F) / 2.0F, block.stepSound.b() * 0.8F); + world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.getName(), (block.stepSound.getVolume1() + 1.0F) / 2.0F, block.stepSound.getVolume2() * 0.8F); if (world.isStatic) { return true; } else { BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - world.e(i, j, k, block.id); + world.setTypeId(i, j, k, block.id); // CraftBukkit start - Hoes - blockface -1 for 'SELF' BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k, block); @@ -40,19 +40,19 @@ public class ItemHoe extends Item { } // CraftBukkit end - itemstack.a(1, entityhuman); - if (world.k.nextInt(8) == 0 && i1 == Block.GRASS.id) { + itemstack.damage(1, entityhuman); + if (world.random.nextInt(8) == 0 && i1 == Block.GRASS.id) { byte b0 = 1; for (int j1 = 0; j1 < b0; ++j1) { float f = 0.7F; - float f1 = world.k.nextFloat() * f + (1.0F - f) * 0.5F; + float f1 = world.random.nextFloat() * f + (1.0F - f) * 0.5F; float f2 = 1.2F; - float f3 = world.k.nextFloat() * f + (1.0F - f) * 0.5F; + float f3 = world.random.nextFloat() * f + (1.0F - f) * 0.5F; EntityItem entityitem = new EntityItem(world, (double) ((float) i + f1), (double) ((float) j + f2), (double) ((float) k + f3), new ItemStack(Item.SEEDS)); - entityitem.c = 10; - world.a((Entity) entityitem); + entityitem.pickupDelay = 10; + world.addEntity(entityitem); } } diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java index 8c4a1ae6be..7b2178f648 100644 --- a/src/main/java/net/minecraft/server/ItemInWorldManager.java +++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java @@ -12,14 +12,14 @@ import org.bukkit.event.player.PlayerInteractEvent; public class ItemInWorldManager { - private World b; - public EntityHuman a; + private World world; + public EntityHuman player; private float c = 0.0F; private int d; private int e; private int f; private int g; - private int h; + private int currentTick; private boolean i; private int j; private int k; @@ -27,18 +27,18 @@ public class ItemInWorldManager { private int m; public ItemInWorldManager(World world) { - this.b = world; + this.world = world; } public void a() { - this.h = (int) (System.currentTimeMillis() / 50); // CraftBukkit + this.currentTick = (int) (System.currentTimeMillis() / 50); // CraftBukkit if (this.i) { - int i = this.h - this.m; - int j = this.b.getTypeId(this.j, this.k, this.l); + int i = this.currentTick - this.m; + int j = this.world.getTypeId(this.j, this.k, this.l); if (j != 0) { Block block = Block.byId[j]; - float f = block.a(this.a) * (float) (i + 1); + float f = block.getDamage(this.player) * (float) (i + 1); if (f >= 1.0F) { this.i = false; @@ -51,9 +51,9 @@ public class ItemInWorldManager { } // CraftBukkit added face - public void a(int i, int j, int k, int face) { + public void dig(int i, int j, int k, int face) { this.d = (int) (System.currentTimeMillis() / 50); // CraftBukkit - int l = this.b.getTypeId(i, j, k); + int l = this.world.getTypeId(i, j, k); // CraftBukkit start // Swings at air do *NOT* exist. @@ -61,30 +61,30 @@ public class ItemInWorldManager { return; } - PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.a, Action.LEFT_CLICK_BLOCK , i, j, k, face, this.a.inventory.b()); + PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_BLOCK , i, j, k, face, this.player.inventory.getItemInHand()); if (event.useInteractedBlock() == Event.Result.DENY) { // If we denied a door from opening, we need to send a correcting update to the client, as it already opened the door. if (l == Block.WOODEN_DOOR.id) { // For some reason *BOTH* the bottom/top part have to be marked updated. - boolean bottom = (this.b.getData(i, j, k) & 8) == 0; - ((EntityPlayer) this.a).a.b((Packet) (new Packet53BlockChange(i, j, k, this.b))); - ((EntityPlayer) this.a).a.b((Packet) (new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, this.b))); + boolean bottom = (this.world.getData(i, j, k) & 8) == 0; + ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.world)); + ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, this.world)); } } else { - Block.byId[l].b(this.b, i, j, k, this.a); + Block.byId[l].b(this.world, i, j, k, this.player); } // Handle hitting a block - float toolDamage = Block.byId[l].a(this.a); + float toolDamage = Block.byId[l].getDamage(this.player); if (event.useItemInHand() == Event.Result.DENY) { // If we 'insta destroyed' then the client needs to be informed. if (toolDamage > 1.0f) { - ((EntityPlayer) this.a).a.b((Packet) (new Packet53BlockChange(i, j, k, this.b))); + ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.world)); } return; } - BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.a, i, j, k, this.a.inventory.b(), toolDamage >= 1.0f); + BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, i, j, k, this.player.inventory.getItemInHand(), toolDamage >= 1.0f); if (blockEvent.isCancelled()) { return; @@ -106,13 +106,13 @@ public class ItemInWorldManager { public void b(int i, int j, int k) { if (i == this.e && j == this.f && k == this.g) { - this.h = (int) (System.currentTimeMillis() / 50); // CraftBukkit - int l = this.h - this.d; - int i1 = this.b.getTypeId(i, j, k); + this.currentTick = (int) (System.currentTimeMillis() / 50); // CraftBukkit + int l = this.currentTick - this.d; + int i1 = this.world.getTypeId(i, j, k); if (i1 != 0) { Block block = Block.byId[i1]; - float f = block.a(this.a) * (float) (l + 1); + float f = block.getDamage(this.player) * (float) (l + 1); if (f >= 1.0F) { this.d(i, j, k); @@ -126,21 +126,20 @@ public class ItemInWorldManager { } // CraftBukkit start -- force blockreset to client } else { - ((EntityPlayer) this.a).a.b((Packet) (new Packet53BlockChange(i, j, k, this.b))); + ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.world)); // CraftBukkit end } this.c = 0.0F; - this.e = 0; } public boolean c(int i, int j, int k) { - Block block = Block.byId[this.b.getTypeId(i, j, k)]; - int l = this.b.getData(i, j, k); - boolean flag = this.b.e(i, j, k, 0); + Block block = Block.byId[this.world.getTypeId(i, j, k)]; + int l = this.world.getData(i, j, k); + boolean flag = this.world.setTypeId(i, j, k, 0); if (block != null && flag) { - block.b(this.b, i, j, k, l); + block.postBreak(this.world, i, j, k, l); } return flag; @@ -148,10 +147,10 @@ public class ItemInWorldManager { public boolean d(int i, int j, int k) { // CraftBukkit start - if (this.a instanceof EntityPlayer) { - CraftServer server = ((WorldServer) this.b).getServer(); - org.bukkit.block.Block block = ((WorldServer) this.b).getWorld().getBlockAt(i, j, k); - org.bukkit.entity.Player player = (org.bukkit.entity.Player) this.a.getBukkitEntity(); + if (this.player instanceof EntityPlayer) { + CraftServer server = ((WorldServer) this.world).getServer(); + org.bukkit.block.Block block = ((WorldServer) this.world).getWorld().getBlockAt(i, j, k); + org.bukkit.entity.Player player = (org.bukkit.entity.Player) this.player.getBukkitEntity(); BlockBreakEvent event = new BlockBreakEvent(block,player); server.getPluginManager().callEvent(event); @@ -162,44 +161,44 @@ public class ItemInWorldManager { } // CraftBukkit end - int l = this.b.getTypeId(i, j, k); - int i1 = this.b.getData(i, j, k); + int l = this.world.getTypeId(i, j, k); + int i1 = this.world.getData(i, j, k); boolean flag = this.c(i, j, k); - ItemStack itemstack = this.a.A(); + ItemStack itemstack = this.player.A(); if (itemstack != null) { - itemstack.a(l, i, j, k, this.a); + itemstack.a(l, i, j, k, this.player); if (itemstack.count == 0) { - itemstack.a(this.a); - this.a.B(); + itemstack.a(this.player); + this.player.B(); } } - if (flag && this.a.b(Block.byId[l])) { - Block.byId[l].a(this.b, this.a, i, j, k, i1); - ((EntityPlayer) this.a).a.b((Packet) (new Packet53BlockChange(i, j, k, this.b))); + if (flag && this.player.b(Block.byId[l])) { + Block.byId[l].a(this.world, this.player, i, j, k, i1); + ((EntityPlayer) this.player).netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.world)); } return flag; } - public boolean a(EntityHuman entityhuman, World world, ItemStack itemstack) { + public boolean useItem(EntityHuman entityhuman, World world, ItemStack itemstack) { int i = itemstack.count; ItemStack itemstack1 = itemstack.a(world, entityhuman); if (itemstack1 == itemstack && (itemstack1 == null || itemstack1.count == i)) { return false; } else { - entityhuman.inventory.a[entityhuman.inventory.c] = itemstack1; + entityhuman.inventory.items[entityhuman.inventory.itemInHandIndex] = itemstack1; if (itemstack1.count == 0) { - entityhuman.inventory.a[entityhuman.inventory.c] = null; + entityhuman.inventory.items[entityhuman.inventory.itemInHandIndex] = null; } return true; } } - public boolean a(EntityHuman entityhuman, World world, ItemStack itemstack, int i, int j, int k, int l) { + public boolean interact(EntityHuman entityhuman, World world, ItemStack itemstack, int i, int j, int k, int l) { int i1 = world.getTypeId(i, j, k); // CraftBukkit start - Interact @@ -210,18 +209,18 @@ public class ItemInWorldManager { // If we denied a door from opening, we need to send a correcting update to the client, as it already opened the door. if (i1 == Block.WOODEN_DOOR.id) { boolean bottom = (world.getData(i, j, k) & 8) == 0; - ((EntityPlayer) entityhuman).a.b((Packet) (new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, world))); + ((EntityPlayer) entityhuman).netServerHandler.sendPacket(new Packet53BlockChange(i, j + (bottom ? 1 : -1), k, world)); } } else { - result = Block.byId[i1].a(world, i, j, k, entityhuman); + result = Block.byId[i1].interact(world, i, j, k, entityhuman); if (itemstack != null && !result) { - result = itemstack.a(entityhuman, world, i, j, k, l); + result = itemstack.placeItem(entityhuman, world, i, j, k, l); } } // If we have 'true' and no explicit deny *or* an explicit allow -- run the item part of the hook if (itemstack != null && ((!result && event.useItemInHand() != Event.Result.DENY) || event.useItemInHand() == Event.Result.ALLOW)) { - this.a(entityhuman, world, itemstack); + this.useItem(entityhuman, world, itemstack); } } return result; diff --git a/src/main/java/net/minecraft/server/ItemMinecart.java b/src/main/java/net/minecraft/server/ItemMinecart.java index ac09bf402b..aecaa6fd07 100644 --- a/src/main/java/net/minecraft/server/ItemMinecart.java +++ b/src/main/java/net/minecraft/server/ItemMinecart.java @@ -29,7 +29,7 @@ public class ItemMinecart extends Item { } // CraftBukkit end - world.a((Entity) (new EntityMinecart(world, (double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), this.a))); + world.addEntity(new EntityMinecart(world, (double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), this.a)); } --itemstack.count; diff --git a/src/main/java/net/minecraft/server/ItemRedstone.java b/src/main/java/net/minecraft/server/ItemRedstone.java index 0ba156e677..ccb06bb7de 100644 --- a/src/main/java/net/minecraft/server/ItemRedstone.java +++ b/src/main/java/net/minecraft/server/ItemRedstone.java @@ -43,10 +43,10 @@ public class ItemRedstone extends Item { if (!world.isEmpty(i, j, k)) { return false; } else { - if (Block.REDSTONE_WIRE.a(world, i, j, k)) { + if (Block.REDSTONE_WIRE.canPlace(world, i, j, k)) { BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit - world.e(i, j, k, Block.REDSTONE_WIRE.id); + world.setTypeId(i, j, k, Block.REDSTONE_WIRE.id); // CraftBukkit start - redstone BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, clickedX, clickedY, clickedZ, Block.REDSTONE_WIRE); diff --git a/src/main/java/net/minecraft/server/ItemReed.java b/src/main/java/net/minecraft/server/ItemReed.java index 49338122de..d4bb4be714 100644 --- a/src/main/java/net/minecraft/server/ItemReed.java +++ b/src/main/java/net/minecraft/server/ItemReed.java @@ -9,11 +9,11 @@ import org.bukkit.event.block.BlockPlaceEvent; public class ItemReed extends Item { - private int a; + private int id; public ItemReed(int i, Block block) { super(i); - this.a = block.id; + this.id = block.id; } public boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) { @@ -50,33 +50,33 @@ public class ItemReed extends Item { if (itemstack.count == 0) { return false; } else { - if (world.a(this.a, i, j, k, false)) { - Block block = Block.byId[this.a]; + if (world.a(this.id, i, j, k, false)) { + Block block = Block.byId[this.id]; // CraftBukkit start - This executes the placement of the block BlockState replacedBlockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit /** - * @see net.minecraft.server.World#e(int i, int j, int k, int l) + * @see net.minecraft.server.World#setTypeId(int i, int j, int k, int l) * - * This replaces world.e(IIII), we're doing this because we need to + * This replaces world.setTypeId(IIII), we're doing this because we need to * hook between the 'placement' and the informing to 'world' so we can * sanely undo this. * - * Whenever the call to 'world.e' changes we need to figure out again what to + * Whenever the call to 'world.setTypeId' changes we need to figure out again what to * replace this with. */ - if (world.setTypeId(i, j, k, this.a)) { // <-- world.e does this to place the block + if (world.setRawTypeId(i, j, k, this.id)) { // <-- world.e does this to place the block BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, replacedBlockState, clickedX, clickedY, clickedZ, block); if (event.isCancelled() || !event.canBuild()) { // CraftBukkit Undo -- this only has reed, repeater and pie blocks world.setTypeIdAndData(i, j, k, replacedBlockState.getTypeId(), replacedBlockState.getRawData()); } else { - world.f(i, j, k, a); // <-- world.e does this on success (tell the world) + world.update(i, j, k, this.id); // <-- world.setTypeId does this on success (tell the world) - Block.byId[this.a].d(world, i, j, k, l); - Block.byId[this.a].a(world, i, j, k, (EntityLiving) entityhuman); - world.a((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.c(), (block.stepSound.a() + 1.0F) / 2.0F, block.stepSound.b() * 0.8F); + Block.byId[this.id].postPlace(world, i, j, k, l); + Block.byId[this.id].postPlace(world, i, j, k, entityhuman); + world.makeSound((double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F), block.stepSound.getName(), (block.stepSound.getVolume1() + 1.0F) / 2.0F, block.stepSound.getVolume2() * 0.8F); --itemstack.count; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/server/ItemSeeds.java b/src/main/java/net/minecraft/server/ItemSeeds.java index 70e72595e9..6acf4f3f5a 100644 --- a/src/main/java/net/minecraft/server/ItemSeeds.java +++ b/src/main/java/net/minecraft/server/ItemSeeds.java @@ -9,11 +9,11 @@ import org.bukkit.event.block.BlockPlaceEvent; public class ItemSeeds extends Item { - private int a; + private int id; public ItemSeeds(int i, int j) { super(i); - this.a = j; + this.id = j; } public boolean a(ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l) { @@ -23,12 +23,12 @@ public class ItemSeeds extends Item { int i1 = world.getTypeId(i, j, k); if (i1 == Block.SOIL.id && world.isEmpty(i, j + 1, k)) { - BlockState blockState = CraftBlockState.getBlockState( world, i, j + 1, k); // CraftBukkit + BlockState blockState = CraftBlockState.getBlockState(world, i, j + 1, k); // CraftBukkit - world.e(i, j + 1, k, this.a); + world.setTypeId(i, j + 1, k, this.id); // CraftBukkit start - seeds - BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k, this.a); + BlockPlaceEvent event = CraftEventFactory.callBlockPlaceEvent(world, entityhuman, blockState, i, j, k, this.id); if (event.isCancelled() || !event.canBuild()) { event.getBlockPlaced().setTypeId(0); return false; diff --git a/src/main/java/net/minecraft/server/ItemSign.java b/src/main/java/net/minecraft/server/ItemSign.java index 5e3402db1c..614e317a58 100644 --- a/src/main/java/net/minecraft/server/ItemSign.java +++ b/src/main/java/net/minecraft/server/ItemSign.java @@ -42,15 +42,15 @@ public class ItemSign extends Item { ++i; } - if (!Block.SIGN_POST.a(world, i, j, k)) { + if (!Block.SIGN_POST.canPlace(world, i, j, k)) { return false; } else { BlockState blockState = CraftBlockState.getBlockState(world, i, j, k); // CraftBukkit if (l == 1) { - world.b(i, j, k, Block.SIGN_POST.id, MathHelper.b((double) ((entityhuman.yaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15); + world.setTypeIdAndData(i, j, k, Block.SIGN_POST.id, MathHelper.floor((double) ((entityhuman.yaw + 180.0F) * 16.0F / 360.0F) + 0.5D) & 15); } else { - world.b(i, j, k, Block.WALL_SIGN.id, l); + world.setTypeIdAndData(i, j, k, Block.WALL_SIGN.id, l); } // CraftBukkit start - sign diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java index 204710e6cf..1768ed6f79 100644 --- a/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java @@ -48,12 +48,12 @@ public final class ItemStack { return new ItemStack(this.id, i, this.damage); } - public Item a() { + public Item getItem() { return Item.byId[this.id]; } - public boolean a(EntityHuman entityhuman, World world, int i, int j, int k, int l) { - boolean flag = this.a().a(this, entityhuman, world, i, j, k, l); + public boolean placeItem(EntityHuman entityhuman, World world, int i, int j, int k, int l) { + boolean flag = this.getItem().a(this, entityhuman, world, i, j, k, l); if (flag) { entityhuman.a(StatisticList.A[this.id], 1); @@ -63,11 +63,11 @@ public final class ItemStack { } public float a(Block block) { - return this.a().a(this, block); + return this.getItem().a(this, block); } public ItemStack a(World world, EntityHuman entityhuman) { - return this.a().a(this, world, entityhuman); + return this.getItem().a(this, world, entityhuman); } public NBTTagCompound a(NBTTagCompound nbttagcompound) { @@ -84,7 +84,7 @@ public final class ItemStack { } public int b() { - return this.a().b(); + return this.getItem().getMaxStackSize(); } public boolean c() { @@ -107,7 +107,7 @@ public final class ItemStack { return this.damage; } - public int h() { + public int getData() { return this.damage; } @@ -115,7 +115,7 @@ public final class ItemStack { return Item.byId[this.id].d(); } - public void a(int i, Entity entity) { + public void damage(int i, Entity entity) { if (this.d()) { this.damage += i; if (this.damage > this.i()) { @@ -167,7 +167,7 @@ public final class ItemStack { return new ItemStack(this.id, this.count, this.damage); } - public static boolean a(ItemStack itemstack, ItemStack itemstack1) { + public static boolean equals(ItemStack itemstack, ItemStack itemstack1) { return itemstack == null && itemstack1 == null ? true : (itemstack != null && itemstack1 != null ? itemstack.c(itemstack1) : false); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index ab873a5f65..c66f0e09e8 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -24,28 +24,28 @@ import org.bukkit.craftbukkit.command.ColouredConsoleSender; import org.bukkit.craftbukkit.scheduler.CraftScheduler; import org.bukkit.craftbukkit.util.ServerShutdownThread; import org.bukkit.event.world.WorldSaveEvent; - +// CraftBukkit public class MinecraftServer implements Runnable, ICommandListener { - public static Logger a = Logger.getLogger("Minecraft"); + public static Logger log = Logger.getLogger("Minecraft"); public static HashMap b = new HashMap(); - public NetworkListenThread c; - public PropertyManager d; - // public WorldServer e; // CraftBukkit - removed - public ServerConfigurationManager f; - public ConsoleCommandHandler o; // CraftBukkit - made public - private boolean p = true; - public boolean g = false; - int h = 0; + public NetworkListenThread networkListenThread; + public PropertyManager propertyManager; + // public WorldServer worldServer; // CraftBukkit - removed + public ServerConfigurationManager serverConfigurationManager; + public ConsoleCommandHandler consoleCommandHandler; // CraftBukkit - made public + private boolean isRunning = true; + public boolean isStopped = false; + int ticks = 0; public String i; public int j; private List q = new ArrayList(); private List r = Collections.synchronizedList(new ArrayList()); - public EntityTracker k; - public boolean l; - public boolean m; - public boolean n; + public EntityTracker tracker; + public boolean onlineMode; + public boolean spawnAnimals; + public boolean pvpMode; // CraftBukkit start public int spawnProtection; @@ -70,64 +70,64 @@ public class MinecraftServer implements Runnable, ICommandListener { // CraftBukkit end } - private boolean d() throws UnknownHostException { // CraftBukkit - added throws UnknownHostException - this.o = new ConsoleCommandHandler(this); + private boolean init() throws UnknownHostException { // CraftBukkit - added throws UnknownHostException + this.consoleCommandHandler = new ConsoleCommandHandler(this); ThreadCommandReader threadcommandreader = new ThreadCommandReader(this); threadcommandreader.setDaemon(true); threadcommandreader.start(); - ConsoleLogManager.a(this); // Craftbukkit + ConsoleLogManager.init(this); // Craftbukkit // CraftBukkit start - System.setOut(new PrintStream(new LoggerOutputStream(a, Level.INFO), true)); - System.setErr(new PrintStream(new LoggerOutputStream(a, Level.SEVERE), true)); + System.setOut(new PrintStream(new LoggerOutputStream(log, Level.INFO), true)); + System.setErr(new PrintStream(new LoggerOutputStream(log, Level.SEVERE), true)); // CraftBukkit end - a.info("Starting minecraft server version Beta 1.4"); + log.info("Starting minecraft server version Beta 1.3"); if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { - a.warning("**** NOT ENOUGH RAM!"); - a.warning("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); + log.warning("**** NOT ENOUGH RAM!"); + log.warning("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); } - a.info("Loading properties"); - this.d = new PropertyManager(options); // CraftBukkit - String s = this.d.a("server-ip", ""); + log.info("Loading properties"); + this.propertyManager = new PropertyManager(new File("server.properties")); + String s = this.propertyManager.getString("server-ip", ""); - this.l = this.d.a("online-mode", true); - this.m = this.d.a("spawn-animals", true); - this.n = this.d.a("pvp", true); - this.spawnProtection = this.d.a("spawn-protection", 16); // CraftBukkit Configurable spawn protection start + this.onlineMode = this.propertyManager.getBoolean("online-mode", true); + this.spawnAnimals = this.propertyManager.getBoolean("spawn-animals", true); + this.pvpMode = this.propertyManager.getBoolean("pvp", true); + this.spawnProtection = this.propertyManager.getInt("spawn-protection", 16); // CraftBukkit Configurable spawn protection start InetAddress inetaddress = null; if (s.length() > 0) { inetaddress = InetAddress.getByName(s); } - int i = this.d.a("server-port", 25565); + int i = this.propertyManager.getInt("server-port", 25565); - a.info("Starting Minecraft server on " + (s.length() == 0 ? "*" : s) + ":" + i); + log.info("Starting Minecraft server on " + (s.length() == 0 ? "*" : s) + ":" + i); try { - this.c = new NetworkListenThread(this, inetaddress, i); + this.networkListenThread = new NetworkListenThread(this, inetaddress, i); } catch (Throwable ioexception) { // CraftBukkit - IOException -> Throwable - a.warning("**** FAILED TO BIND TO PORT!"); - a.log(Level.WARNING, "The exception was: " + ioexception.toString()); - a.warning("Perhaps a server is already running on that port?"); + log.warning("**** FAILED TO BIND TO PORT!"); + log.log(Level.WARNING, "The exception was: " + ioexception.toString()); + log.warning("Perhaps a server is already running on that port?"); return false; } - if (!this.l) { - a.warning("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); - a.warning("The server will make no attempt to authenticate usernames. Beware."); - a.warning("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); - a.warning("To change this, set \"online-mode\" to \"true\" in the server.settings file."); + if (!this.onlineMode) { + log.warning("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); + log.warning("The server will make no attempt to authenticate usernames. Beware."); + log.warning("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); + log.warning("To change this, set \"online-mode\" to \"true\" in the server.settings file."); } - this.f = new ServerConfigurationManager(this); - this.k = new EntityTracker(this); + this.serverConfigurationManager = new ServerConfigurationManager(this); + this.tracker = new EntityTracker(this); long j = System.nanoTime(); - String s1 = this.d.a("level-name", "world"); - String s2 = this.d.a("level-seed", ""); + String s1 = this.propertyManager.getString("level-name", "world"); + String s2 = this.propertyManager.getString("level-seed", ""); long k = (new Random()).nextLong(); if (s2.length() > 0) { @@ -138,41 +138,41 @@ public class MinecraftServer implements Runnable, ICommandListener { } } - a.info("Preparing level \"" + s1 + "\""); + log.info("Preparing level \"" + s1 + "\""); this.a(new WorldLoaderServer(new File(".")), s1, k); // CraftBukkit start long elapsed = System.nanoTime() - j; String time = String.format( "%.3fs", elapsed / 10000000000.0D ); - a.info("Done (" + time + ")! For help, type \"help\" or \"?\""); + log.info("Done (" + time + ")! For help, type \"help\" or \"?\""); // CraftBukkit end return true; } private void a(Convertable convertable, String s, long i) { - if (convertable.a(s)) { - a.info("Converting map!"); - convertable.a(s, new ConvertProgressUpdater(this)); + if (convertable.isConvertable(s)) { + log.info("Converting map!"); + convertable.convert(s, new ConvertProgressUpdater(this)); } - a.info("Preparing start region"); + log.info("Preparing start region"); // CraftBukkit start - WorldServer world = new WorldServer(this, new ServerNBTManager(new File("."), s, true), s, this.d.a("hellworld", false) ? -1 : 0, i); - world.a(new WorldManager(this, world)); - world.j = this.d.a("spawn-monsters", true) ? 1 : 0; - world.a(this.d.a("spawn-monsters", true), this.m); - this.f.a(world); + WorldServer world = new WorldServer(this, new ServerNBTManager(new File("."), s, true), s, this.propertyManager.getBoolean("hellworld", false) ? -1 : 0, i); + world.addIWorldAccess(new WorldManager(this, world)); + world.spawnMonsters = this.propertyManager.getBoolean("spawn-monsters", true) ? 1 : 0; + world.setSpawnFlags(this.propertyManager.getBoolean("spawn-monsters", true), this.spawnAnimals); + this.serverConfigurationManager.setPlayerFileData(world); worlds.add(world); // CraftBukkit end short short1 = 196; long j = System.currentTimeMillis(); - ChunkCoordinates chunkcoordinates = worlds.get(0).m(); // CraftBukkit + ChunkCoordinates chunkcoordinates = world.getSpawn(); // CraftBukkit - for (int k = -short1; k <= short1 && this.p; k += 16) { - for (int l = -short1; l <= short1 && this.p; l += 16) { + for (int k = -short1; k <= short1 && this.isRunning; k += 16) { + for (int l = -short1; l <= short1 && this.isRunning; l += 16) { long i1 = System.currentTimeMillis(); if (i1 < j) { @@ -189,9 +189,9 @@ public class MinecraftServer implements Runnable, ICommandListener { // CraftBukkit start for (WorldServer worldserver: worlds) { - world.u.c(chunkcoordinates.a + k >> 4, chunkcoordinates.c + l >> 4); + world.chunkProviderServer.getChunkAt(chunkcoordinates.x + k >> 4, chunkcoordinates.z + l >> 4); - while (world.f() && this.p) { + while (world.doLighting() && this.isRunning) { ; } } @@ -205,7 +205,7 @@ public class MinecraftServer implements Runnable, ICommandListener { private void a(String s, int i) { this.i = s; this.j = i; - a.info(s + ": " + i + "%"); + log.info(s + ": " + i + "%"); } private void e() { @@ -215,66 +215,66 @@ public class MinecraftServer implements Runnable, ICommandListener { server.loadPlugins(); // CraftBukkit } - void f() { // CraftBukkit - private -> default - a.info("Saving chunks"); + void saveChunks() { // CraftBukkit - private -> default + log.info("Saving chunks"); // CraftBukkit start for (WorldServer world: worlds) { - world.a(true, (IProgressUpdate) null); - world.t(); + world.save(true, (IProgressUpdate) null); + world.saveLevel(); WorldSaveEvent event = new WorldSaveEvent( world.getWorld() ); server.getPluginManager().callEvent( event ); } - this.f.d(); // CraftBukkit - player data should be saved whenever a save happens. + this.serverConfigurationManager.savePlayers(); // CraftBukkit - player data should be saved whenever a save happens. // CraftBukkit end } - public void g() { // Craftbukkit: private -> public - a.info("Stopping server"); + public void stop() { // Craftbukkit: private -> public + log.info("Stopping server"); // CraftBukkit start if (server != null) { server.disablePlugins(); } // CraftBukkit end - if (this.f != null) { - this.f.d(); + if (this.serverConfigurationManager != null) { + this.serverConfigurationManager.savePlayers(); } if (this.worlds.size() > 0) { // CraftBukkit - this.f(); + this.saveChunks(); } } public void a() { - this.p = false; + this.isRunning = false; } public void run() { try { - if (this.d()) { + if (this.init()) { long i = System.currentTimeMillis(); - for (long j = 0L; this.p; Thread.sleep(1L)) { + for (long j = 0L; this.isRunning; Thread.sleep(1L)) { long k = System.currentTimeMillis(); long l = k - i; if (l > 2000L) { - a.warning("Can\'t keep up! Did the system time change, or is the server overloaded?"); + log.warning("Can\'t keep up! Did the system time change, or is the server overloaded?"); l = 2000L; } if (l < 0L) { - a.warning("Time ran backwards! Did the system time change?"); + log.warning("Time ran backwards! Did the system time change?"); l = 0L; } j += l; i = k; // CraftBukkit - TODO - Replace with loop? - if (this.worlds.size() > 0 && this.worlds.get(0).s()) { + if (this.worlds.size() > 0 && this.worlds.get(0).everyoneDeeplySleeping()) { this.h(); j = 0L; } else { @@ -285,7 +285,7 @@ public class MinecraftServer implements Runnable, ICommandListener { } } } else { - while (this.p) { + while (this.isRunning) { this.b(); try { @@ -297,9 +297,9 @@ public class MinecraftServer implements Runnable, ICommandListener { } } catch (Throwable throwable) { throwable.printStackTrace(); - a.log(Level.SEVERE, "Unexpected exception", throwable); + log.log(Level.SEVERE, "Unexpected exception", throwable); - while (this.p) { + while (this.isRunning) { this.b(); try { @@ -310,8 +310,8 @@ public class MinecraftServer implements Runnable, ICommandListener { } } finally { try { - this.g(); - this.g = true; + this.stop(); + this.isStopped = true; } catch (Throwable throwable1) { throwable1.printStackTrace(); } finally { @@ -343,31 +343,31 @@ public class MinecraftServer implements Runnable, ICommandListener { AxisAlignedBB.a(); Vec3D.a(); - ++this.h; + ++this.ticks; // CraftBukkit start - if (this.h % 20 == 0) { - for (int i = 0; i < this.f.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.f.b.get(i); - entityplayer.a.b((Packet) (new Packet4UpdateTime(entityplayer.world.l()))); + if (this.ticks % 20 == 0) { + for (int i = 0; i < this.serverConfigurationManager.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.serverConfigurationManager.players.get(i); + entityplayer.netServerHandler.sendPacket(new Packet4UpdateTime(entityplayer.world.getTime())); } } - ((CraftScheduler) server.getScheduler()).mainThreadHeartbeat(this.h); + ((CraftScheduler) server.getScheduler()).mainThreadHeartbeat(this.ticks); for (WorldServer world: worlds) { - world.h(); + world.doTick(); - while (world.f()) { + while (world.doLighting()) { ; } - world.e(); + world.cleanUp(); } // CraftBukkit end - this.c.a(); - this.f.b(); - this.k.a(); + this.networkListenThread.a(); + this.serverConfigurationManager.b(); + this.tracker.a(); for (j = 0; j < this.q.size(); ++j) { ((IUpdatePlayerListBox) this.q.get(j)).a(); @@ -376,11 +376,11 @@ public class MinecraftServer implements Runnable, ICommandListener { try { this.b(); } catch (Exception exception) { - a.log(Level.WARNING, "Unexpected exception while parsing console command", exception); + log.log(Level.WARNING, "Unexpected exception while parsing console command", exception); } } - public void a(String s, ICommandListener icommandlistener) { + public void issueCommand(String s, ICommandListener icommandlistener) { this.r.add(new ServerCommand(s, icommandlistener)); } @@ -388,8 +388,8 @@ public class MinecraftServer implements Runnable, ICommandListener { while (this.r.size() > 0) { ServerCommand servercommand = (ServerCommand) this.r.remove(0); + // this.consoleCommandHandler.a(servercommand); // CraftBukkit - Removed its now called in server.displatchCommand server.dispatchCommand(console, servercommand); // CraftBukkit - // this.o.a(servercommand); // CraftBukkit - Removed its now called in server.displatchCommand } } @@ -405,7 +405,7 @@ public class MinecraftServer implements Runnable, ICommandListener { (new ThreadServerApplication("Server thread", minecraftserver)).start(); } catch (Exception exception) { - a.log(Level.SEVERE, "Failed to start the minecraft server", exception); + log.log(Level.SEVERE, "Failed to start the minecraft server", exception); } } @@ -413,19 +413,19 @@ public class MinecraftServer implements Runnable, ICommandListener { return new File(s); } - public void b(String s) { - a.info(s); + public void sendMessage(String s) { + log.info(s); } public void c(String s) { - a.warning(s); + log.warning(s); } - public String c() { + public String getName() { return "CONSOLE"; } - public static boolean a(MinecraftServer minecraftserver) { - return minecraftserver.p; + public static boolean isRunning(MinecraftServer minecraftserver) { + return minecraftserver.isRunning; } } diff --git a/src/main/java/net/minecraft/server/NetLoginHandler.java b/src/main/java/net/minecraft/server/NetLoginHandler.java index f155254a57..97557a1242 100644 --- a/src/main/java/net/minecraft/server/NetLoginHandler.java +++ b/src/main/java/net/minecraft/server/NetLoginHandler.java @@ -8,23 +8,23 @@ public class NetLoginHandler extends NetHandler { public static Logger a = Logger.getLogger("Minecraft"); private static Random d = new Random(); - public NetworkManager b; + public NetworkManager networkManager; public boolean c = false; - private MinecraftServer e; + private MinecraftServer server; private int f = 0; private String g = null; private Packet1Login h = null; private String i = ""; public NetLoginHandler(MinecraftServer minecraftserver, Socket socket, String s) { - this.e = minecraftserver; - this.b = new NetworkManager(socket, s, this); - this.b.d = 0; + this.server = minecraftserver; + this.networkManager = new NetworkManager(socket, s, this); + this.networkManager.d = 0; } - + // CraftBukkit start public Socket getSocket() { - return b.f; + return networkManager.socket; } // CraftBukkit end @@ -35,17 +35,17 @@ public class NetLoginHandler extends NetHandler { } if (this.f++ == 600) { - this.a("Took too long to log in"); + this.disconnect("Took too long to log in"); } else { - this.b.a(); + this.networkManager.a(); } } - public void a(String s) { + public void disconnect(String s) { try { a.info("Disconnecting " + this.b() + ": " + s); - this.b.a((Packet) (new Packet255KickDisconnect(s))); - this.b.c(); + this.networkManager.a((Packet) (new Packet255KickDisconnect(s))); + this.networkManager.c(); this.c = true; } catch (Exception exception) { exception.printStackTrace(); @@ -53,50 +53,47 @@ public class NetLoginHandler extends NetHandler { } public void a(Packet2Handshake packet2handshake) { - if (this.e.l) { + if (this.server.onlineMode) { this.i = Long.toHexString(d.nextLong()); - this.b.a((Packet) (new Packet2Handshake(this.i))); + this.networkManager.a((Packet) (new Packet2Handshake(this.i))); } else { - this.b.a((Packet) (new Packet2Handshake("-"))); + this.networkManager.a((Packet) (new Packet2Handshake("-"))); } } public void a(Packet1Login packet1login) { - this.g = packet1login.b; + this.g = packet1login.name; if (packet1login.a != 10) { if (packet1login.a > 10) { - this.a("Outdated server!"); + this.disconnect("Outdated server!"); } else { - this.a("Outdated client!"); + this.disconnect("Outdated client!"); } } else { - if (!this.e.l) { + if (!this.server.onlineMode) { this.b(packet1login); } else { - (new ThreadLoginVerifier(this, packet1login, e.server)).start(); + (new ThreadLoginVerifier(this, packet1login, this.server.server)).start(); } } } public void b(Packet1Login packet1login) { - EntityPlayer entityplayer = this.e.f.a(this, packet1login.b, packet1login.c); + EntityPlayer entityplayer = this.server.serverConfigurationManager.a(this, packet1login.name, packet1login.c); if (entityplayer != null) { a.info(this.b() + " logged in with entity id " + entityplayer.id); - NetServerHandler netserverhandler = new NetServerHandler(this.e, this.b, entityplayer); + ChunkCoordinates chunkcoordinates = entityplayer.world.getSpawn(); // CraftBukkit + NetServerHandler netserverhandler = new NetServerHandler(this.server, this.networkManager, entityplayer); - // CraftBukkit start - ChunkCoordinates chunkcoordinates = entityplayer.world.m(); - netserverhandler.b((Packet) (new Packet1Login("", "", entityplayer.id, entityplayer.world.k(), (byte) entityplayer.world.m.g))); - netserverhandler.b((Packet) (new Packet6SpawnPosition(chunkcoordinates.a, chunkcoordinates.b, chunkcoordinates.c))); - // this.e.f.a((Packet) (new Packet3Chat("\u00A7e" + entityplayer.name + " joined the game."))); // CraftBukkit - message moved to join event - this.e.f.a(entityplayer); + netserverhandler.sendPacket(new Packet1Login("", "", entityplayer.id, entityplayer.world.getSeed(), (byte) entityplayer.world.worldProvider.dimension)); // CraftBukkit + netserverhandler.sendPacket(new Packet6SpawnPosition(chunkcoordinates.x, chunkcoordinates.y, chunkcoordinates.z)); + // this.server.serverConfigurationManager.sendAll(new Packet3Chat("\u00A7e" + entityplayer.name + " joined the game.")); // CraftBukkit - message moved to join event + this.server.serverConfigurationManager.a(entityplayer); netserverhandler.a(entityplayer.locX, entityplayer.locY, entityplayer.locZ, entityplayer.yaw, entityplayer.pitch); - this.e.c.a(netserverhandler); - netserverhandler.b((Packet) (new Packet4UpdateTime(entityplayer.world.l()))); - // CraftBukkit end - - entityplayer.m(); + this.server.networkListenThread.a(netserverhandler); + netserverhandler.sendPacket(new Packet4UpdateTime(entityplayer.world.getTime())); // CraftBukkit + entityplayer.syncInventory(); } this.c = true; @@ -108,11 +105,11 @@ public class NetLoginHandler extends NetHandler { } public void a(Packet packet) { - this.a("Protocol error"); + this.disconnect("Protocol error"); } public String b() { - return this.g != null ? this.g + " [" + this.b.b().toString() + "]" : this.b.b().toString(); + return this.g != null ? this.g + " [" + this.networkManager.getSocketAddress().toString() + "]" : this.networkManager.getSocketAddress().toString(); } static String a(NetLoginHandler netloginhandler) { diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index 449df13da1..8734ec9b91 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -24,25 +24,25 @@ public class NetServerHandler extends NetHandler implements ICommandListener { private static final int PLACE_DISTANCE_SQUARED = 6 * 6; // CraftBukkit here for now public static Logger a = Logger.getLogger("Minecraft"); - public NetworkManager b; - public boolean c = false; - private MinecraftServer d; - public EntityPlayer e; // CraftBukkit - private->public + public NetworkManager networkManager; + public boolean disconnected = false; + private MinecraftServer minecraftServer; + public EntityPlayer player; // CraftBukkit - private->public private int f; private int g; private boolean h; - private double i; - private double j; - private double k; + private double x; + private double y; + private double z; private boolean l = true; private Map m = new HashMap(); public NetServerHandler(MinecraftServer minecraftserver, NetworkManager networkmanager, EntityPlayer entityplayer) { - this.d = minecraftserver; - this.b = networkmanager; + this.minecraftServer = minecraftserver; + this.networkManager = networkmanager; networkmanager.a((NetHandler) this); - this.e = entityplayer; - entityplayer.a = this; + this.player = entityplayer; + entityplayer.netServerHandler = this; // CraftBukkit start server = minecraftserver.server; @@ -63,42 +63,42 @@ public class NetServerHandler extends NetHandler implements ICommandListener { private int lastMaterial; public CraftPlayer getPlayer() { - return (e == null) ? null : (CraftPlayer) e.getBukkitEntity(); + return (this.player == null) ? null : (CraftPlayer) player.getBukkitEntity(); } // CraftBukkit end public void a() { this.h = false; - this.b.a(); + this.networkManager.a(); if (this.f - this.g > 20) { - this.b((Packet) (new Packet0KeepAlive())); + this.sendPacket(new Packet0KeepAlive()); } } - public void a(String s) { + public void disconnect(String s) { // CraftBukkit start - String leaveMessage = "\u00A7e" + this.e.name + " left the game."; - PlayerKickEvent event = new PlayerKickEvent(server.getPlayer(this.e), s, leaveMessage); + String leaveMessage = "\u00A7e" + this.player.name + " left the game."; + PlayerKickEvent event = new PlayerKickEvent(server.getPlayer(this.player), s, leaveMessage); server.getPluginManager().callEvent(event); if (event.isCancelled()) { // Do not kick the player return; } // Send the possibly modified leave message - this.b.a((Packet) (new Packet255KickDisconnect( event.getReason() ))); - this.b.c(); + this.sendPacket(new Packet255KickDisconnect( event.getReason() )); + this.networkManager.c(); leaveMessage = event.getLeaveMessage(); if (leaveMessage != null) { - this.d.f.a((Packet) (new Packet3Chat(leaveMessage))); + this.minecraftServer.serverConfigurationManager.sendAll(new Packet3Chat(leaveMessage)); } // CraftBukkit end - this.d.f.c(this.e); - this.c = true; + this.minecraftServer.serverConfigurationManager.disconnect(this.player); + this.disconnected = true; } public void a(Packet27 packet27) { - this.e.a(packet27.c(), packet27.e(), packet27.g(), packet27.h(), packet27.d(), packet27.f()); + this.player.a(packet27.c(), packet27.e(), packet27.g(), packet27.h(), packet27.d(), packet27.f()); } public void a(Packet10Flying packet10flying) { @@ -106,8 +106,8 @@ public class NetServerHandler extends NetHandler implements ICommandListener { double d0; if (!this.l) { - d0 = packet10flying.b - this.j; - if (packet10flying.a == this.i && d0 * d0 < 0.01D && packet10flying.c == this.k) { + d0 = packet10flying.y - this.y; + if (packet10flying.x == this.x && d0 * d0 < 0.01D && packet10flying.z == this.z) { this.l = true; } } @@ -118,8 +118,8 @@ public class NetServerHandler extends NetHandler implements ICommandListener { Location to = player.getLocation(); // Prevent 40 event-calls for less than a single pixel of movement >.> - double delta = Math.pow( this.lastPosX - this.i, 2) + Math.pow( this.lastPosY - this.j, 2) + Math.pow( this.lastPosZ - this.k, 2); - float deltaAngle = Math.abs(this.lastYaw - this.e.yaw) + Math.abs(this.lastPitch - this.e.pitch); + double delta = Math.pow( this.lastPosX - this.x, 2) + Math.pow( this.lastPosY - this.y, 2) + Math.pow( this.lastPosZ - this.z, 2); + float deltaAngle = Math.abs(this.lastYaw - this.player.yaw) + Math.abs(this.lastPitch - this.player.pitch); if (delta > 1f/256 || deltaAngle > 10f) { // Skip the first time we do this @@ -130,45 +130,45 @@ public class NetServerHandler extends NetHandler implements ICommandListener { from = event.getFrom(); to = event.isCancelled() ? from : event.getTo(); - this.e.locX = to.getX(); - this.e.locY = to.getY(); - this.e.locZ = to.getZ(); - this.e.yaw = to.getYaw(); - this.e.pitch = to.getPitch(); + this.player.locX = to.getX(); + this.player.locY = to.getY(); + this.player.locZ = to.getZ(); + this.player.yaw = to.getYaw(); + this.player.pitch = to.getPitch(); } - this.lastPosX = this.e.locX; - this.lastPosY = this.e.locY; - this.lastPosZ = this.e.locZ; - this.lastYaw = this.e.yaw; - this.lastPitch = this.e.pitch; + this.lastPosX = this.player.locX; + this.lastPosY = this.player.locY; + this.lastPosZ = this.player.locZ; + this.lastYaw = this.player.yaw; + this.lastPitch = this.player.pitch; } - if (Math.abs(packet10flying.a) > 32000000 || Math.abs(packet10flying.c) > 32000000) { + if (Math.abs(packet10flying.x) > 32000000 || Math.abs(packet10flying.z) > 32000000) { System.err.println(player.getName() + " was caught trying to crash the server with an invalid position."); player.kickPlayer("Nope!"); return; } - if (Double.isNaN(packet10flying.a) || packet10flying.a == Double.POSITIVE_INFINITY || packet10flying.a == Double.NEGATIVE_INFINITY) { + if (Double.isNaN(packet10flying.x) || packet10flying.x == Double.POSITIVE_INFINITY || packet10flying.x == Double.NEGATIVE_INFINITY) { System.err.println(player.getName() + " was caught trying to set an invalid position."); player.kickPlayer("Nope!"); return; } - if (Double.isNaN(packet10flying.b) || packet10flying.b == Double.POSITIVE_INFINITY || packet10flying.b == Double.NEGATIVE_INFINITY) { + if (Double.isNaN(packet10flying.y) || packet10flying.y == Double.POSITIVE_INFINITY || packet10flying.y == Double.NEGATIVE_INFINITY) { System.err.println(player.getName() + " was caught trying to set an invalid position."); player.kickPlayer("Nope!"); return; } - if (Double.isNaN(packet10flying.c) || packet10flying.c == Double.POSITIVE_INFINITY || packet10flying.c == Double.NEGATIVE_INFINITY) { + if (Double.isNaN(packet10flying.z) || packet10flying.z == Double.POSITIVE_INFINITY || packet10flying.z == Double.NEGATIVE_INFINITY) { System.err.println(player.getName() + " was caught trying to set an invalid position."); player.kickPlayer("Nope!"); return; } - if (Double.isNaN(packet10flying.d) || packet10flying.d == Double.POSITIVE_INFINITY || packet10flying.d == Double.NEGATIVE_INFINITY) { + if (Double.isNaN(packet10flying.stance) || packet10flying.stance == Double.POSITIVE_INFINITY || packet10flying.stance == Double.NEGATIVE_INFINITY) { System.err.println(player.getName() + " was caught trying to set an invalid position."); player.kickPlayer("Nope!"); return; @@ -181,133 +181,133 @@ public class NetServerHandler extends NetHandler implements ICommandListener { double d3; double d4; - if (this.e.vehicle != null) { - float f = this.e.yaw; - float f1 = this.e.pitch; + if (this.player.vehicle != null) { + float f = this.player.yaw; + float f1 = this.player.pitch; - this.e.vehicle.h_(); - d1 = this.e.locX; - d2 = this.e.locY; - d3 = this.e.locZ; + this.player.vehicle.h_(); + d1 = this.player.locX; + d2 = this.player.locY; + d3 = this.player.locZ; double d5 = 0.0D; d4 = 0.0D; - if (packet10flying.i) { - f = packet10flying.e; - f1 = packet10flying.f; + if (packet10flying.hasLook) { + f = packet10flying.yaw; + f1 = packet10flying.pitch; } - if (packet10flying.h && packet10flying.b == -999.0D && packet10flying.d == -999.0D) { - d5 = packet10flying.a; - d4 = packet10flying.c; + if (packet10flying.h && packet10flying.y == -999.0D && packet10flying.stance == -999.0D) { + d5 = packet10flying.x; + d4 = packet10flying.z; } - this.e.onGround = packet10flying.g; - this.e.a(true); - this.e.c(d5, 0.0D, d4); - this.e.b(d1, d2, d3, f, f1); - this.e.motX = d5; - this.e.motZ = d4; - if (this.e.vehicle != null) { + this.player.onGround = packet10flying.g; + this.player.a(true); + this.player.move(d5, 0.0D, d4); + this.player.setLocation(d1, d2, d3, f, f1); + this.player.motX = d5; + this.player.motZ = d4; + if (this.player.vehicle != null) { // CraftBukkit - ((WorldServer) this.e.world).b(this.e.vehicle, true); + ((WorldServer) this.player.world).vehicleEnteredWorld(this.player.vehicle, true); } - if (this.e.vehicle != null) { - this.e.vehicle.h_(); + if (this.player.vehicle != null) { + this.player.vehicle.h_(); } - this.d.f.b(this.e); - this.i = this.e.locX; - this.j = this.e.locY; - this.k = this.e.locZ; + this.minecraftServer.serverConfigurationManager.b(this.player); + this.x = this.player.locX; + this.y = this.player.locY; + this.z = this.player.locZ; // CraftBukkit - this.e.world.f(this.e); + ((WorldServer) this.player.world).playerJoinedWorld(this.player); return; } - d0 = this.e.locY; - this.i = this.e.locX; - this.j = this.e.locY; - this.k = this.e.locZ; - d1 = this.e.locX; - d2 = this.e.locY; - d3 = this.e.locZ; - float f2 = this.e.yaw; - float f3 = this.e.pitch; + d0 = this.player.locY; + this.x = this.player.locX; + this.y = this.player.locY; + this.z = this.player.locZ; + d1 = this.player.locX; + d2 = this.player.locY; + d3 = this.player.locZ; + float f2 = this.player.yaw; + float f3 = this.player.pitch; - if (packet10flying.h && packet10flying.b == -999.0D && packet10flying.d == -999.0D) { + if (packet10flying.h && packet10flying.y == -999.0D && packet10flying.stance == -999.0D) { packet10flying.h = false; } if (packet10flying.h) { - d1 = packet10flying.a; - d2 = packet10flying.b; - d3 = packet10flying.c; - d4 = packet10flying.d - packet10flying.b; + d1 = packet10flying.x; + d2 = packet10flying.y; + d3 = packet10flying.z; + d4 = packet10flying.stance - packet10flying.y; if (d4 > 1.65D || d4 < 0.1D) { - this.a("Illegal stance"); - a.warning(this.e.name + " had an illegal stance: " + d4); + this.disconnect("Illegal stance"); + a.warning(this.player.name + " had an illegal stance: " + d4); d4 = 1.62D; // CraftBukkit - reset the stance to 'the normal' height } } // Craftbukkit start - better fix for invalid position issues; should be fixed in 1.5 - d4 = d1 - this.e.locX; - double d6 = d2 - this.e.locY; - double d7 = d3 - this.e.locZ; + d4 = d1 - this.player.locX; + double d6 = d2 - this.player.locY; + double d7 = d3 - this.player.locZ; float f4 = 0.0625F; - if (d6 > -0.5D || d6 < 0.5D) { - d6 = 0.0D; - } - - d7 = d3 - this.e.locZ; - double d8 = d4 * d4 + d6 * d6 + d7 * d7; - boolean flag1 = false; - - if (d8 > 6.25D && !this.e.F()) { - flag1 = true; - a.warning(this.e.name + " was caught moving faster than the maximum allowed speed. Possible malicious activity?"); - this.a(this.i, this.j, this.k, f2, f3); - return; - } - - this.e.c(d4, d6, d7); - d4 = d1 - this.e.locX; - d6 = d2 - this.e.locY; - if (d6 > -0.5D || d6 < 0.5D) { d6 = 0.0D; } - d7 = d3 - this.e.locZ; + d7 = d3 - this.player.locZ; + double d8 = d4 * d4 + d6 * d6 + d7 * d7; + boolean flag1 = false; - if (packet10flying.i) { - f2 = packet10flying.e; - f3 = packet10flying.f; + if (d8 > 6.25D && !this.player.isSleeping()) { + flag1 = true; + a.warning(this.player.name + " moved wrongly!"); + System.out.println("Got position " + d1 + ", " + d2 + ", " + d3); + System.out.println("Expected " + this.player.locX + ", " + this.player.locY + ", " + this.player.locZ); + } + + this.player.move(d4, d6, d7); + d4 = d1 - this.player.locX; + d6 = d2 - this.player.locY; + + if (d6 > -0.5D || d6 < 0.5D) { + d6 = 0.0D; + } + + d7 = d3 - this.player.locZ; + + if (packet10flying.hasLook) { + f2 = packet10flying.yaw; + f3 = packet10flying.pitch; } // Craftbukkit end - this.e.a(true); - this.e.bl = 0.0F; - this.e.b(this.i, this.j, this.k, f2, f3); + this.player.a(true); + this.player.bl = 0.0F; + this.player.setLocation(this.x, this.y, this.z, f2, f3); // CraftBukkit - boolean flag = this.e.world.a(this.e, this.e.boundingBox.b().e((double) f4, (double) f4, (double) f4)).size() == 0; + boolean flag = ((WorldServer) this.player.world).getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; - this.e.b(d1, d2, d3, f2, f3); + this.player.setLocation(d1, d2, d3, f2, f3); // CraftBukkit - boolean flag2 = this.e.world.a(this.e, this.e.boundingBox.b().e((double) f4, (double) f4, (double) f4)).size() == 0; + boolean flag2 = ((WorldServer) this.player.world).getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; - if (flag && (flag1 || !flag2) && !this.e.F()) { - this.a(this.i, this.j, this.k, f2, f3); + if (flag && (flag1 || !flag2) && !this.player.isSleeping()) { + this.a(this.x, this.y, this.z, f2, f3); return; } - this.e.onGround = packet10flying.g; - this.d.f.b(this.e); - this.e.b(this.e.locY - d0, packet10flying.g); + this.player.onGround = packet10flying.g; + this.minecraftServer.serverConfigurationManager.b(this.player); + this.player.b(this.player.locY - d0, packet10flying.g); } } @@ -340,11 +340,11 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end this.l = false; - this.i = d0; - this.j = d1; - this.k = d2; - this.e.b(d0, d1, d2, f, f1); - this.e.a.b((Packet) (new Packet13PlayerLookMove(d0, d1 + 1.6200000047683716D, d1, d2, f, f1, false))); + this.x = d0; + this.y = d1; + this.z = d2; + this.player.setLocation(d0, d1, d2, f, f1); + this.player.netServerHandler.sendPacket(new Packet13PlayerLookMove(d0, d1 + 1.6200000047683716D, d1, d2, f, f1, false)); // CraftBukkit -- Returns TRUE if the teleport was successful return !event.isCancelled(); @@ -352,10 +352,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener { public void a(Packet14BlockDig packet14blockdig) { if (packet14blockdig.e == 4) { - this.e.z(); + this.player.z(); } else { // CraftBukkit - boolean flag = ((WorldServer) this.e.world).v = this.d.f.h(this.e.name); + boolean flag = ((WorldServer) this.player.world).weirdIsOpCache = this.minecraftServer.serverConfigurationManager.isOp(this.player.name); boolean flag1 = false; if (packet14blockdig.e == 0) { @@ -371,9 +371,9 @@ public class NetServerHandler extends NetHandler implements ICommandListener { int k = packet14blockdig.c; if (flag1) { - double d0 = this.e.locX - ((double) i + 0.5D); - double d1 = this.e.locY - ((double) j + 0.5D); - double d2 = this.e.locZ - ((double) k + 0.5D); + double d0 = this.player.locX - ((double) i + 0.5D); + double d1 = this.player.locY - ((double) j + 0.5D); + double d2 = this.player.locZ - ((double) k + 0.5D); double d3 = d0 * d0 + d1 * d1 + d2 * d2; if (d3 > 36.0D) { @@ -382,9 +382,9 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit - ChunkCoordinates chunkcoordinates = this.e.world.m(); - int l = (int) MathHelper.e((float) (i - chunkcoordinates.a)); - int i1 = (int) MathHelper.e((float) (k - chunkcoordinates.c)); + ChunkCoordinates chunkcoordinates = ((WorldServer) this.player.world).getSpawn(); + int l = (int) MathHelper.abs((float) (i - chunkcoordinates.x)); + int i1 = (int) MathHelper.abs((float) (k - chunkcoordinates.z)); if (l > i1) { i1 = l; @@ -392,26 +392,26 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (packet14blockdig.e == 0) { // CraftBukkit - if (i1 > this.d.spawnProtection || flag) { + if (i1 > this.minecraftServer.spawnProtection || flag) { // CraftBukkit add face argument - this.e.c.a(i, j, k, packet14blockdig.d); + this.player.itemInWorldManager.dig(i, j, k, packet14blockdig.face); } } else if (packet14blockdig.e == 2) { - this.e.c.b(i, j, k); + this.player.itemInWorldManager.b(i, j, k); } else if (packet14blockdig.e == 3) { - double d4 = this.e.locX - ((double) i + 0.5D); - double d5 = this.e.locY - ((double) j + 0.5D); - double d6 = this.e.locZ - ((double) k + 0.5D); + double d4 = this.player.locX - ((double) i + 0.5D); + double d5 = this.player.locY - ((double) j + 0.5D); + double d6 = this.player.locZ - ((double) k + 0.5D); double d7 = d4 * d4 + d5 * d5 + d6 * d6; if (d7 < 256.0D) { // CraftBukkit - this.e.a.b((Packet) (new Packet53BlockChange(i, j, k, this.e.world))); + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.player.world)); } } // CraftBukkit - ((WorldServer) this.e.world).v = false; + ((WorldServer) this.player.world).weirdIsOpCache = false; } } @@ -425,14 +425,14 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // second one. This sadly has to remain until Mojang makes their packets saner. :( // -- Grum - if (packet15place.d == 255) { - if (packet15place.e != null && packet15place.e.id == lastMaterial && lastPacket != null && packet15place.j - lastPacket < 100) { + if (packet15place.face == 255) { + if (packet15place.itemstack != null && packet15place.itemstack.id == lastMaterial && lastPacket != null && packet15place.timestamp - lastPacket < 100) { lastPacket = null; return; } } else { - lastMaterial = packet15place.e == null ? -1 : packet15place.e.id; - lastPacket = packet15place.j; + lastMaterial = packet15place.itemstack == null ? -1 : packet15place.itemstack.id; + lastPacket = packet15place.timestamp; } // CraftBukkit if rightclick decremented the item, always send the update packet. @@ -442,20 +442,19 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end - ItemStack itemstack = this.e.inventory.b(); + ItemStack itemstack = this.player.inventory.getItemInHand(); + // boolean flag = this.minecraftServer.worldServer.weirdIsOpCache = this.minecraftServer.serverConfigurationManager.isOp(this.player.name); - // boolean flag = this.d.e.v = this.d.f.h(this.e.name); // CraftBukkit - - if (packet15place.d == 255) { + if (packet15place.face == 255) { if (itemstack == null) { return; } // CraftBukkit start int itemstackAmount = itemstack.count; - PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.e, Action.RIGHT_CLICK_AIR, itemstack); + PlayerInteractEvent event = CraftEventFactory.callPlayerInteractEvent(this.player, Action.RIGHT_CLICK_AIR, itemstack); if (event.useItemInHand() != Event.Result.DENY) { - this.e.c.a(this.e, this.e.world, itemstack); + this.player.itemInWorldManager.useItem(this.player, this.player.world, itemstack); } // CraftBukkit notch decrements the counter by 1 in the above method with food, @@ -467,12 +466,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener { int i = packet15place.a; int j = packet15place.b; int k = packet15place.c; - int l = packet15place.d; - - // CraftBukkit - ChunkCoordinates chunkcoordinates = this.e.world.m(); - int i1 = (int) MathHelper.e((float) (i - chunkcoordinates.a)); - int j1 = (int) MathHelper.e((float) (k - chunkcoordinates.c)); + int l = packet15place.face; + ChunkCoordinates chunkcoordinates = ((WorldServer) this.player.world).getSpawn(); // CraftBukkit + int i1 = (int) MathHelper.abs((float) (i - chunkcoordinates.x)); + int j1 = (int) MathHelper.abs((float) (k - chunkcoordinates.z)); if (i1 > j1) { j1 = i1; @@ -485,8 +482,8 @@ public class NetServerHandler extends NetHandler implements ICommandListener { return; } - this.e.c.a(this.e, this.e.world, itemstack, i, j, k, l); - this.e.a.b((Packet) (new Packet53BlockChange(i, j, k, this.e.world))); + this.player.itemInWorldManager.interact(this.player, this.player.world, itemstack, i, j, k, l); + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.player.world)); // CraftBukkit end if (l == 0) { @@ -514,78 +511,75 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit - this.e.a.b((Packet) (new Packet53BlockChange(i, j, k, this.e.world))); + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.player.world)); } if (itemstack != null && itemstack.count == 0) { - this.e.inventory.a[this.e.inventory.c] = null; + this.player.inventory.items[this.player.inventory.itemInHandIndex] = null; } - this.e.h = true; - this.e.inventory.a[this.e.inventory.c] = ItemStack.b(this.e.inventory.a[this.e.inventory.c]); - Slot slot = this.e.activeContainer.a(this.e.inventory, this.e.inventory.c); + this.player.h = true; + this.player.inventory.items[this.player.inventory.itemInHandIndex] = ItemStack.b(this.player.inventory.items[this.player.inventory.itemInHandIndex]); + Slot slot = this.player.activeContainer.a(this.player.inventory, this.player.inventory.itemInHandIndex); - this.e.activeContainer.a(); - this.e.h = false; - - // CraftBukkit - if (!ItemStack.a(this.e.inventory.b(), packet15place.e) || always) { - this.b((Packet) (new Packet103SetSlot(this.e.activeContainer.f, slot.a, this.e.inventory.b()))); + this.player.activeContainer.a(); + this.player.h = false; + if (!ItemStack.equals(this.player.inventory.getItemInHand(), packet15place.itemstack) || always) { // CraftBukkit + this.sendPacket(new Packet103SetSlot(this.player.activeContainer.f, slot.a, this.player.inventory.getItemInHand())); } // CraftBukkit - ((WorldServer) this.e.world).v = false; + ((WorldServer) this.player.world).weirdIsOpCache = false; } public void a(String s, Object[] aobject) { - // CraftBukkit start -- rarely it would send a disconnect line twice - if (!this.c) { - a.info(this.e.name + " lost connection: " + s); - String quitMessage = this.d.f.c(this.e); - if (quitMessage != null) { - this.d.f.a((Packet) (new Packet3Chat(quitMessage))); - } - } - // CraftBukkit end - this.c = true; + if (this.disconnected) return; // CraftBukkit -- rarely it would send a disconnect line twice + + a.info(this.player.name + " lost connection: " + s); + this.minecraftServer.serverConfigurationManager.sendAll(new Packet3Chat("\u00A7e" + this.player.name + " left the game.")); + this.minecraftServer.serverConfigurationManager.disconnect(this.player); + this.disconnected = true; } public void a(Packet packet) { a.warning(this.getClass() + " wasn\'t prepared to deal with a " + packet.getClass()); - this.a("Protocol error, unexpected packet"); + this.disconnect("Protocol error, unexpected packet"); } - public void b(Packet packet) { + public void sendPacket(Packet packet) { // CraftBukkit if (packet instanceof Packet6SpawnPosition) { Packet6SpawnPosition packet6 = (Packet6SpawnPosition) packet; - this.e.compassTarget = new Location(getPlayer().getWorld(), packet6.a, packet6.b, packet6.c); + this.player.compassTarget = new Location(getPlayer().getWorld(), packet6.x, packet6.y, packet6.z); } // CraftBukkit - this.b.a(packet); + this.networkManager.a(packet); this.g = this.f; } public void a(Packet16BlockItemSwitch packet16blockitemswitch) { - // CraftBukkit start - PlayerItemHeldEvent event = new PlayerItemHeldEvent(getPlayer(), e.inventory.c, packet16blockitemswitch.a); - server.getPluginManager().callEvent(event); - // CraftBukkit end - - this.e.inventory.c = packet16blockitemswitch.a; + if (packet16blockitemswitch.itemInHandIndex >= 0 && packet16blockitemswitch.itemInHandIndex <= InventoryPlayer.e()) { + // CraftBukkit start + PlayerItemHeldEvent event = new PlayerItemHeldEvent(getPlayer(), this.player.inventory.itemInHandIndex, packet16blockitemswitch.itemInHandIndex); + server.getPluginManager().callEvent(event); + // CraftBukkit end + this.player.inventory.itemInHandIndex = packet16blockitemswitch.itemInHandIndex; + } else { + a.warning(this.player.name + " tried to set an invalid carried item"); + } } public void a(Packet3Chat packet3chat) { String s = packet3chat.a; if (s.length() > 100) { - this.a("Chat message too long"); + this.disconnect("Chat message too long"); } else { s = s.trim(); for (int i = 0; i < s.length(); ++i) { if (FontAllowedCharacters.a.indexOf(s.charAt(i)) < 0) { - this.a("Illegal characters in chat"); + this.disconnect("Illegal characters in chat"); return; } } @@ -597,7 +591,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { public boolean chat(String msg) { if (msg.startsWith("/")) { - this.c(msg); + this.handleCommand(msg); return true; } else { // CraftBukkit start @@ -621,7 +615,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit end - private void c(String s) { + private void handleCommand(String s) { // CraftBukkit start CraftPlayer player = getPlayer(); @@ -648,33 +642,33 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit stop if (s.toLowerCase().startsWith("/me ")) { - s = "* " + this.e.name + " " + s.substring(s.indexOf(" ")).trim(); + s = "* " + this.player.name + " " + s.substring(s.indexOf(" ")).trim(); a.info(s); - this.d.f.a((Packet) (new Packet3Chat(s))); + this.minecraftServer.serverConfigurationManager.sendAll(new Packet3Chat(s)); } else if (s.toLowerCase().startsWith("/kill")) { - this.e.a((Entity) null, 1000); + this.player.damageEntity((Entity) null, 1000); } else if (s.toLowerCase().startsWith("/tell ")) { String[] astring = s.split(" "); if (astring.length >= 3) { s = s.substring(s.indexOf(" ")).trim(); s = s.substring(s.indexOf(" ")).trim(); - s = "\u00A77" + this.e.name + " whispers " + s; + s = "\u00A77" + this.player.name + " whispers " + s; a.info(s + " to " + astring[1]); - if (!this.d.f.a(astring[1], (Packet) (new Packet3Chat(s)))) { - this.b((Packet) (new Packet3Chat("\u00A7cThere\'s no player by that name online."))); + if (!this.minecraftServer.serverConfigurationManager.a(astring[1], (Packet) (new Packet3Chat(s)))) { + this.sendPacket(new Packet3Chat("\u00A7cThere\'s no player by that name online.")); } } } else { String s1; - if (this.d.f.h(this.e.name)) { + if (this.minecraftServer.serverConfigurationManager.isOp(this.player.name)) { s1 = s.substring(1); - a.info(this.e.name + " issued server command: " + s1); - this.d.a(s1, this); + a.info(this.player.name + " issued server command: " + s1); + this.minecraftServer.issueCommand(s1, this); } else { s1 = s.substring(1); - a.info(this.e.name + " tried command: " + s1); + a.info(this.player.name + " tried command: " + s1); } } } @@ -683,25 +677,25 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (packet18armanimation.b == 1) { // CraftBukkit -- raytrace to look for 'rogue armswings' float f = 1.0F; - float f1 = this.e.lastPitch + (this.e.pitch - this.e.lastPitch) * f; - float f2 = this.e.lastYaw + (this.e.yaw - this.e.lastYaw) * f; - double d0 = this.e.lastX + (this.e.locX - this.e.lastX) * (double) f; - double d1 = this.e.lastY + (this.e.locY - this.e.lastY) * (double) f + 1.62D - (double) this.e.height; - double d2 = this.e.lastZ + (this.e.locZ - this.e.lastZ) * (double) f; - Vec3D vec3d = Vec3D.b(d0, d1, d2); + float f1 = this.player.lastPitch + (this.player.pitch - this.player.lastPitch) * f; + float f2 = this.player.lastYaw + (this.player.yaw - this.player.lastYaw) * f; + double d0 = this.player.lastX + (this.player.locX - this.player.lastX) * (double) f; + double d1 = this.player.lastY + (this.player.locY - this.player.lastY) * (double) f + 1.62D - (double) this.player.height; + double d2 = this.player.lastZ + (this.player.locZ - this.player.lastZ) * (double) f; + Vec3D vec3d = Vec3D.create(d0, d1, d2); - float f3 = MathHelper.b(-f2 * 0.017453292F - 3.1415927F); - float f4 = MathHelper.a(-f2 * 0.017453292F - 3.1415927F); - float f5 = -MathHelper.b(-f1 * 0.017453292F); - float f6 = MathHelper.a(-f1 * 0.017453292F); + float f3 = MathHelper.cos(-f2 * 0.017453292F - 3.1415927F); + float f4 = MathHelper.sin(-f2 * 0.017453292F - 3.1415927F); + float f5 = -MathHelper.cos(-f1 * 0.017453292F); + float f6 = MathHelper.sin(-f1 * 0.017453292F); float f7 = f4 * f5; float f8 = f3 * f5; double d3 = 5.0D; - Vec3D vec3d1 = vec3d.c((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); - MovingObjectPosition movingobjectposition = this.e.world.a(vec3d, vec3d1, true); + Vec3D vec3d1 = vec3d.add((double) f7 * d3, (double) f6 * d3, (double) f8 * d3); + MovingObjectPosition movingobjectposition = this.player.world.rayTrace(vec3d, vec3d1, true); - if (movingobjectposition == null || movingobjectposition.a != EnumMovingObjectType.TILE) { - CraftEventFactory.callPlayerInteractEvent(this.e, Action.LEFT_CLICK_AIR, this.e.inventory.b()); + if (movingobjectposition == null || movingobjectposition.type != EnumMovingObjectType.TILE) { + CraftEventFactory.callPlayerInteractEvent(this.player, Action.LEFT_CLICK_AIR, this.player.inventory.getItemInHand()); } // Arm swing animation @@ -710,13 +704,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener { server.getPluginManager().callEvent(event); // CraftBukkit end - this.e.m_(); + this.player.m_(); } } public void a(Packet19EntityAction packet19entityaction) { - // CraftBukkit: Toggle Sneak - if (packet19entityaction.b == 1 || packet19entityaction.b == 2) { + // CraftBukkit start + if (packet19entityaction.animation == 1 || packet19entityaction.animation == 2) { Player player = getPlayer(); PlayerToggleSneakEvent event = new PlayerToggleSneakEvent(player); server.getPluginManager().callEvent(event); @@ -724,107 +718,109 @@ public class NetServerHandler extends NetHandler implements ICommandListener { return; } } - // CraftBukkit: Set Sneaking + // CraftBukkit end - if (packet19entityaction.b == 1) { - this.e.e(true); - } else if (packet19entityaction.b == 2) { - this.e.e(false); - } else if (packet19entityaction.b == 3) { - this.e.a(false, true, true); + if (packet19entityaction.animation == 1) { + this.player.setSneak(true); + } else if (packet19entityaction.animation == 2) { + this.player.setSneak(false); + } else if (packet19entityaction.animation == 3) { + this.player.a(false, true, true); this.l = false; } } public void a(Packet255KickDisconnect packet255kickdisconnect) { - this.b.a("disconnect.quitting", new Object[0]); + this.networkManager.a("disconnect.quitting", new Object[0]); } public int b() { - return this.b.d(); + return this.networkManager.d(); } - public void b(String s) { - this.b((Packet) (new Packet3Chat("\u00A77" + s))); + public void sendMessage(String s) { + this.sendPacket(new Packet3Chat("\u00A77" + s)); } - public String c() { - return this.e.name; + public String getName() { + return this.player.name; } public void a(Packet7UseEntity packet7useentity) { // CraftBukkit - Entity entity = ((WorldServer) this.e.world).a(packet7useentity.b); + Entity entity = ((WorldServer) this.player.world).getEntity(packet7useentity.target); - if (entity != null && this.e.e(entity) && this.e.f(entity) < 4.0F) { + if (entity != null && this.player.e(entity) && this.player.f(entity) < 4.0F) { if (packet7useentity.c == 0) { - this.e.c(entity); + this.player.c(entity); } else if (packet7useentity.c == 1) { - this.e.d(entity); + this.player.d(entity); } } } public void a(Packet9Respawn packet9respawn) { - if (this.e.health <= 0) { - this.e = this.d.f.d(this.e); + if (this.player.health <= 0) { + this.player = this.minecraftServer.serverConfigurationManager.d(this.player); // CraftBukkit start CraftPlayer player = getPlayer(); - player.setHandle(this.e); + player.setHandle(this.player); // CraftBukkit end } } public void a(Packet101CloseWindow packet101closewindow) { - this.e.w(); + this.player.w(); } public void a(Packet102WindowClick packet102windowclick) { - if (this.e.activeContainer.f == packet102windowclick.a && this.e.activeContainer.c(this.e)) { - ItemStack itemstack = this.e.activeContainer.a(packet102windowclick.b, packet102windowclick.c, this.e); + if (this.player.activeContainer.f == packet102windowclick.a && this.player.activeContainer.c(this.player)) { + ItemStack itemstack = this.player.activeContainer.a(packet102windowclick.b, packet102windowclick.c, this.player); - if (ItemStack.a(packet102windowclick.e, itemstack)) { - this.e.a.b((Packet) (new Packet106Transaction(packet102windowclick.a, packet102windowclick.d, true))); - this.e.h = true; - this.e.activeContainer.a(); - this.e.v(); - this.e.h = false; + if (ItemStack.equals(packet102windowclick.e, itemstack)) { + this.player.netServerHandler.sendPacket(new Packet106Transaction(packet102windowclick.a, packet102windowclick.d, true)); + this.player.h = true; + this.player.activeContainer.a(); + this.player.v(); + this.player.h = false; } else { - this.m.put(Integer.valueOf(this.e.activeContainer.f), Short.valueOf(packet102windowclick.d)); - this.e.a.b((Packet) (new Packet106Transaction(packet102windowclick.a, packet102windowclick.d, false))); - this.e.activeContainer.a(this.e, false); + this.m.put(Integer.valueOf(this.player.activeContainer.f), Short.valueOf(packet102windowclick.d)); + this.player.netServerHandler.sendPacket(new Packet106Transaction(packet102windowclick.a, packet102windowclick.d, false)); + this.player.activeContainer.a(this.player, false); ArrayList arraylist = new ArrayList(); - for (int i = 0; i < this.e.activeContainer.e.size(); ++i) { - arraylist.add(((Slot) this.e.activeContainer.e.get(i)).a()); + for (int i = 0; i < this.player.activeContainer.e.size(); ++i) { + arraylist.add(((Slot) this.player.activeContainer.e.get(i)).getItem()); } - this.e.a(this.e.activeContainer, arraylist); + this.player.a(this.player.activeContainer, arraylist); } } } public void a(Packet106Transaction packet106transaction) { - Short oshort = (Short) this.m.get(Integer.valueOf(this.e.activeContainer.f)); + Short oshort = (Short) this.m.get(Integer.valueOf(this.player.activeContainer.f)); - if (oshort != null && packet106transaction.b == oshort.shortValue() && this.e.activeContainer.f == packet106transaction.a && !this.e.activeContainer.c(this.e)) { - this.e.activeContainer.a(this.e, true); + if (oshort != null && packet106transaction.b == oshort.shortValue() && this.player.activeContainer.f == packet106transaction.a && !this.player.activeContainer.c(this.player)) { + this.player.activeContainer.a(this.player, true); } } public void a(Packet130UpdateSign packet130updatesign) { // CraftBukkit start - if (this.e.world.f(packet130updatesign.a, packet130updatesign.b, packet130updatesign.c)) { - TileEntity tileentity = this.e.world.getTileEntity(packet130updatesign.a, packet130updatesign.b, packet130updatesign.c); + if (((WorldServer) this.player.world).isLoaded(packet130updatesign.x, packet130updatesign.y, packet130updatesign.z)) { + TileEntity tileentity = ((WorldServer) this.player.world).getTileEntity(packet130updatesign.x, packet130updatesign.y, packet130updatesign.z); + // CraftBukkit end + if (tileentity instanceof TileEntitySign) { - TileEntitySign tileentitysign = (TileEntitySign)tileentity; + TileEntitySign tileentitysign = (TileEntitySign) tileentity; + if (!tileentitysign.a()) { - this.d.c("Player " + this.e.name + " just tried to change non-editable sign"); + this.minecraftServer.c("Player " + this.player.name + " just tried to change non-editable sign"); return; } } - // CraftBukkit end int i; int j; @@ -832,31 +828,31 @@ public class NetServerHandler extends NetHandler implements ICommandListener { for (j = 0; j < 4; ++j) { boolean flag = true; - if (packet130updatesign.d[j].length() > 15) { + if (packet130updatesign.lines[j].length() > 15) { flag = false; } else { - for (i = 0; i < packet130updatesign.d[j].length(); ++i) { - if (FontAllowedCharacters.a.indexOf(packet130updatesign.d[j].charAt(i)) < 0) { + for (i = 0; i < packet130updatesign.lines[j].length(); ++i) { + if (FontAllowedCharacters.a.indexOf(packet130updatesign.lines[j].charAt(i)) < 0) { flag = false; } } } if (!flag) { - packet130updatesign.d[j] = "!?"; + packet130updatesign.lines[j] = "!?"; } } if (tileentity instanceof TileEntitySign) { - j = packet130updatesign.a; - int k = packet130updatesign.b; + j = packet130updatesign.x; + int k = packet130updatesign.y; - i = packet130updatesign.c; + i = packet130updatesign.z; TileEntitySign tileentitysign1 = (TileEntitySign) tileentity; // CraftBukkit start - SIGN_CHANGE hook - Player player = server.getPlayer(this.e); - SignChangeEvent event = new SignChangeEvent((CraftBlock) player.getWorld().getBlockAt(j, k, i), server.getPlayer(this.e), packet130updatesign.d); + Player player = server.getPlayer(this.player); + SignChangeEvent event = new SignChangeEvent((CraftBlock) player.getWorld().getBlockAt(i, k, j), server.getPlayer(this.player), packet130updatesign.lines); server.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -869,13 +865,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end for (int l = 0; l < 4; ++l) { - tileentitysign1.a[l] = event.getLine(l); + tileentitysign1.lines[l] = event.getLine(l); // CraftBukkit } - tileentitysign1.i(); + tileentitysign1.update(); // CraftBukkit - this.e.world.g(j, k, i); + ((WorldServer) this.player.world).notify(i, k, j); } } } diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java index 649de1d9e8..6fd24057ed 100644 --- a/src/main/java/net/minecraft/server/NetworkManager.java +++ b/src/main/java/net/minecraft/server/NetworkManager.java @@ -2,15 +2,13 @@ package net.minecraft.server; import java.io.DataInputStream; import java.io.DataOutputStream; -import java.io.IOException; import java.net.Socket; import java.net.SocketAddress; -import java.net.SocketException; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; + +import java.io.IOException; // CraftBukkit public class NetworkManager { @@ -18,10 +16,10 @@ public class NetworkManager { public static int b; public static int c; private Object e = new Object(); - public Socket f; // CraftBukkit private->public + public Socket socket; // CraftBukkit -- private->public private final SocketAddress g; - private DataInputStream h; - private DataOutputStream i; + private DataInputStream input; + private DataOutputStream output; private boolean j = true; private List k = Collections.synchronizedList(new ArrayList()); private List l = Collections.synchronizedList(new ArrayList()); @@ -39,25 +37,18 @@ public class NetworkManager { private int w = 50; public NetworkManager(Socket socket, String s, NetHandler nethandler) { - this.f = socket; + this.socket = socket; this.g = socket.getRemoteSocketAddress(); this.n = nethandler; - // Craftbukkit start try { - socket.setSoTimeout(30000); + socket.setSoTimeout(30000); // Craftbukkit start socket.setTrafficClass(24); - } catch (SocketException socketexception) { + this.input = new DataInputStream(socket.getInputStream()); + this.output = new DataOutputStream(socket.getOutputStream()); + } catch (IOException socketexception) { System.err.println(socketexception.getMessage()); } - - try { - this.h = new DataInputStream(socket.getInputStream()); - this.i = new DataOutputStream(socket.getOutputStream()); - } catch (IOException ex) { - Logger.getLogger(NetworkManager.class.getName()).log(Level.SEVERE, null, ex); - } - // Craftbukkit end this.q = new NetworkReaderThread(this, s + " read thread"); this.p = new NetworkWriterThread(this, s + " write thread"); @@ -90,7 +81,7 @@ public class NetworkManager { Object object; Packet packet; - if (!this.l.isEmpty() && (this.d == 0 || System.currentTimeMillis() - ((Packet) this.l.get(0)).j >= (long) this.d)) { + if (!this.l.isEmpty() && (this.d == 0 || System.currentTimeMillis() - ((Packet) this.l.get(0)).timestamp >= (long) this.d)) { flag = false; object = this.e; synchronized (this.e) { @@ -98,10 +89,10 @@ public class NetworkManager { this.v -= packet.a() + 1; } - Packet.a(packet, this.i); + Packet.a(packet, this.output); } - if ((flag || this.w-- <= 0) && !this.m.isEmpty() && (this.d == 0 || System.currentTimeMillis() - ((Packet) this.m.get(0)).j >= (long) this.d)) { + if ((flag || this.w-- <= 0) && !this.m.isEmpty() && (this.d == 0 || System.currentTimeMillis() - ((Packet) this.m.get(0)).timestamp >= (long) this.d)) { flag = false; object = this.e; synchronized (this.e) { @@ -109,7 +100,7 @@ public class NetworkManager { this.v -= packet.a() + 1; } - Packet.a(packet, this.i); + Packet.a(packet, this.output); this.w = 50; } @@ -127,7 +118,7 @@ public class NetworkManager { private void f() { try { - Packet packet = Packet.b(this.h); + Packet packet = Packet.b(this.input); if (packet != null) { this.k.add(packet); @@ -155,22 +146,22 @@ public class NetworkManager { this.j = false; try { - this.h.close(); - this.h = null; + this.input.close(); + this.input = null; } catch (Throwable throwable) { ; } try { - this.i.close(); - this.i = null; + this.output.close(); + this.output = null; } catch (Throwable throwable1) { ; } try { - this.f.close(); - this.f = null; + this.socket.close(); + this.socket = null; } catch (Throwable throwable2) { ; } @@ -203,7 +194,7 @@ public class NetworkManager { } } - public SocketAddress b() { + public SocketAddress getSocketAddress() { return this.g; } diff --git a/src/main/java/net/minecraft/server/Packet.java b/src/main/java/net/minecraft/server/Packet.java index 1e6cdc14ae..faf8055768 100644 --- a/src/main/java/net/minecraft/server/Packet.java +++ b/src/main/java/net/minecraft/server/Packet.java @@ -6,6 +6,7 @@ import java.io.EOFException; import java.io.IOException; import java.util.HashMap; import java.util.Map; + // Craftbukkit start import java.net.SocketException; import java.net.SocketTimeoutException; @@ -15,7 +16,7 @@ public abstract class Packet { private static Map a = new HashMap(); private static Map b = new HashMap(); - public final long j = System.currentTimeMillis(); + public final long timestamp = System.currentTimeMillis(); public boolean k = false; private static HashMap c; private static int d; diff --git a/src/main/java/net/minecraft/server/PlayerInstance.java b/src/main/java/net/minecraft/server/PlayerInstance.java index 6fc6cf7330..deb8be1add 100644 --- a/src/main/java/net/minecraft/server/PlayerInstance.java +++ b/src/main/java/net/minecraft/server/PlayerInstance.java @@ -6,11 +6,11 @@ import java.util.List; class PlayerInstance { private List b; - private int c; - private int d; + private int chunkX; + private int chunkZ; private ChunkCoordIntPair e; - private short[] f; - private int g; + private short[] dirtyBlocks; + private int dirtyCount; private int h; private int i; private int j; @@ -18,27 +18,27 @@ class PlayerInstance { private int l; private int m; - final PlayerManager a; + final PlayerManager playerManager; public PlayerInstance(PlayerManager playermanager, int i, int j) { - this.a = playermanager; + this.playerManager = playermanager; this.b = new ArrayList(); - this.f = new short[10]; - this.g = 0; - this.c = i; - this.d = j; + this.dirtyBlocks = new short[10]; + this.dirtyCount = 0; + this.chunkX = i; + this.chunkZ = j; this.e = new ChunkCoordIntPair(i, j); // CraftBukkit - playermanager.world.u.c(i, j); + playermanager.world.chunkProviderServer.getChunkAt(i, j); } public void a(EntityPlayer entityplayer) { if (this.b.contains(entityplayer)) { - throw new IllegalStateException("Failed to add player. " + entityplayer + " already is in chunk " + this.c + ", " + this.d); + throw new IllegalStateException("Failed to add player. " + entityplayer + " already is in chunk " + this.chunkX + ", " + this.chunkZ); } else { entityplayer.g.add(this.e); - entityplayer.a.b((Packet) (new Packet50PreChunk(this.e.a, this.e.b, true))); + entityplayer.netServerHandler.sendPacket(new Packet50PreChunk(this.e.x, this.e.z, true)); this.b.add(entityplayer); entityplayer.f.add(this.e); } @@ -46,31 +46,31 @@ class PlayerInstance { public void b(EntityPlayer entityplayer) { if (!this.b.contains(entityplayer)) { - (new IllegalStateException("Failed to remove player. " + entityplayer + " isn\'t in chunk " + this.c + ", " + this.d)).printStackTrace(); + (new IllegalStateException("Failed to remove player. " + entityplayer + " isn\'t in chunk " + this.chunkX + ", " + this.chunkZ)).printStackTrace(); } else { this.b.remove(entityplayer); if (this.b.size() == 0) { - long i = (long) this.c + 2147483647L | (long) this.d + 2147483647L << 32; + long i = (long) this.chunkX + 2147483647L | (long) this.chunkZ + 2147483647L << 32; - PlayerManager.b(this.a).b(i); - if (this.g > 0) { - PlayerManager.c(this.a).remove(this); + PlayerManager.b(this.playerManager).b(i); + if (this.dirtyCount > 0) { + PlayerManager.c(this.playerManager).remove(this); } // CraftBukkit - ((WorldServer) entityplayer.world).u.d(this.c, this.d); + ((WorldServer) entityplayer.world).chunkProviderServer.queueUnload(this.chunkX, this.chunkZ); } entityplayer.f.remove(this.e); if (entityplayer.g.contains(this.e)) { - entityplayer.a.b((Packet) (new Packet50PreChunk(this.c, this.d, false))); + entityplayer.netServerHandler.sendPacket(new Packet50PreChunk(this.chunkX, this.chunkZ, false)); } } } public void a(int i, int j, int k) { - if (this.g == 0) { - PlayerManager.c(this.a).add(this); + if (this.dirtyCount == 0) { + PlayerManager.c(this.playerManager).add(this); this.h = this.i = i; this.j = this.k = j; this.l = this.m = k; @@ -100,95 +100,95 @@ class PlayerInstance { this.m = k; } - if (this.g < 10) { + if (this.dirtyCount < 10) { short short1 = (short) (i << 12 | k << 8 | j); - for (int l = 0; l < this.g; ++l) { - if (this.f[l] == short1) { + for (int l = 0; l < this.dirtyCount; ++l) { + if (this.dirtyBlocks[l] == short1) { return; } } - this.f[this.g++] = short1; + this.dirtyBlocks[this.dirtyCount++] = short1; } } - public void a(Packet packet) { + public void sendAll(Packet packet) { for (int i = 0; i < this.b.size(); ++i) { EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); if (entityplayer.g.contains(this.e)) { - entityplayer.a.b(packet); + entityplayer.netServerHandler.sendPacket(packet); } } } public void a() { - if (this.g != 0) { + if (this.dirtyCount != 0) { int i; int j; int k; - if (this.g == 1) { - i = this.c * 16 + this.h; + if (this.dirtyCount == 1) { + i = this.chunkX * 16 + this.h; j = this.j; - k = this.d * 16 + this.l; + k = this.chunkZ * 16 + this.l; // CraftBukkit start - this.a((Packet) (new Packet53BlockChange(i, j, k, a.world))); - if (Block.p[a.world.getTypeId(i, j, k)]) { - this.a(a.world.getTileEntity(i, j, k)); + this.sendAll(new Packet53BlockChange(i, j, k, this.playerManager.world)); + if (Block.isTileEntity[this.playerManager.world.getTypeId(i, j, k)]) { + this.sendTileEntity(this.playerManager.world.getTileEntity(i, j, k)); } // CraftBukkit end } else { int l; - if (this.g == 10) { + if (this.dirtyCount == 10) { this.j = this.j / 2 * 2; this.k = (this.k / 2 + 1) * 2; - i = this.h + this.c * 16; + i = this.h + this.chunkX * 16; j = this.j; - k = this.l + this.d * 16; + k = this.l + this.chunkZ * 16; l = this.i - this.h + 1; int i1 = this.k - this.j + 2; int j1 = this.m - this.l + 1; // CraftBukkit start - this.a((Packet) (new Packet51MapChunk(i, j, k, l, i1, j1, a.world))); - List list = a.world.d(i, j, k, i + l, j + i1, k + j1); + this.sendAll(new Packet51MapChunk(i, j, k, l, i1, j1, this.playerManager.world)); + List list = this.playerManager.world.getTileEntities(i, j, k, i + l, j + i1, k + j1); // CraftBukkit end for (int k1 = 0; k1 < list.size(); ++k1) { - this.a((TileEntity) list.get(k1)); + this.sendTileEntity((TileEntity) list.get(k1)); } } else { // CraftBukkit - this.a((Packet) (new Packet52MultiBlockChange(this.c, this.d, this.f, this.g, a.world))); + this.sendAll(new Packet52MultiBlockChange(this.chunkX, this.chunkZ, this.dirtyBlocks, this.dirtyCount, this.playerManager.world)); - for (i = 0; i < this.g; ++i) { - j = this.c * 16 + (this.g >> 12 & 15); - k = this.g & 255; - l = this.d * 16 + (this.g >> 8 & 15); + for (i = 0; i < this.dirtyCount; ++i) { + j = this.chunkX * 16 + (this.dirtyCount >> 12 & 15); + k = this.dirtyCount & 255; + l = this.chunkZ * 16 + (this.dirtyCount >> 8 & 15); // CraftBukkit start - if (Block.p[a.world.getTypeId(j, k, l)]) { + if (Block.isTileEntity[this.playerManager.world.getTypeId(j, k, l)]) { System.out.println("Sending!"); - this.a(a.world.getTileEntity(j, k, l)); + this.sendTileEntity(this.playerManager.world.getTileEntity(j, k, l)); } // CraftBukkit end } } } - this.g = 0; + this.dirtyCount = 0; } } - private void a(TileEntity tileentity) { + private void sendTileEntity(TileEntity tileentity) { if (tileentity != null) { Packet packet = tileentity.e(); if (packet != null) { - this.a(packet); + this.sendAll(packet); } } } diff --git a/src/main/java/net/minecraft/server/PlayerManager.java b/src/main/java/net/minecraft/server/PlayerManager.java index 4083dcf640..a1eda44813 100644 --- a/src/main/java/net/minecraft/server/PlayerManager.java +++ b/src/main/java/net/minecraft/server/PlayerManager.java @@ -8,7 +8,7 @@ public class PlayerManager { private List a = new ArrayList(); private PlayerList b = new PlayerList(); private List c = new ArrayList(); - private MinecraftServer d; + private MinecraftServer server; private final int[][] e = new int[][] { { 1, 0}, { 0, 1}, { -1, 0}, { 0, -1}}; // CraftBukkit start @@ -16,12 +16,12 @@ public class PlayerManager { // CraftBukkit - change of method signature public PlayerManager(MinecraftServer minecraftserver, WorldServer world) { - this.d = minecraftserver; this.world = world; + // CraftBukkit end + this.server = minecraftserver; } - // CraftBukkit end - public void a() { + public void flush() { for (int i = 0; i < this.c.size(); ++i) { ((PlayerInstance) this.c.get(i)).a(); } @@ -41,7 +41,7 @@ public class PlayerManager { return playerinstance; } - public void a(int i, int j, int k) { + public void flagDirty(int i, int j, int k) { int l = i >> 4; int i1 = k >> 4; PlayerInstance playerinstance = this.a(l, i1, false); @@ -51,7 +51,7 @@ public class PlayerManager { } } - public void a(EntityPlayer entityplayer) { + public void addPlayer(EntityPlayer entityplayer) { int i = (int) entityplayer.locX >> 4; int j = (int) entityplayer.locZ >> 4; @@ -89,7 +89,7 @@ public class PlayerManager { this.a.add(entityplayer); } - public void b(EntityPlayer entityplayer) { + public void removePlayer(EntityPlayer entityplayer) { int i = (int) entityplayer.d >> 4; int j = (int) entityplayer.e >> 4; @@ -113,7 +113,7 @@ public class PlayerManager { return i1 >= -10 && i1 <= 10 ? j1 >= -10 && j1 <= 10 : false; } - public void c(EntityPlayer entityplayer) { + public void movePlayer(EntityPlayer entityplayer) { int i = (int) entityplayer.locX >> 4; int j = (int) entityplayer.locZ >> 4; double d0 = entityplayer.d - entityplayer.locX; @@ -128,8 +128,8 @@ public class PlayerManager { // Craftbukkit start if (i1 > 10 || i1 < -10 || j1 > 10 || j1 < -10) { - b(entityplayer); - a(entityplayer); + this.removePlayer(entityplayer); + this.addPlayer(entityplayer); return; } // Craftbukkit end @@ -162,7 +162,7 @@ public class PlayerManager { } static MinecraftServer a(PlayerManager playermanager) { - return playermanager.d; + return playermanager.server; } static PlayerList b(PlayerManager playermanager) { diff --git a/src/main/java/net/minecraft/server/PropertyManager.java b/src/main/java/net/minecraft/server/PropertyManager.java index 58092bfe9b..ec7da39126 100644 --- a/src/main/java/net/minecraft/server/PropertyManager.java +++ b/src/main/java/net/minecraft/server/PropertyManager.java @@ -12,14 +12,14 @@ import joptsimple.OptionSet; // CraftBukkit public class PropertyManager { public static Logger a = Logger.getLogger("Minecraft"); - private Properties b = new Properties(); + private Properties properties = new Properties(); private File c; public PropertyManager(File file1) { this.c = file1; if (file1.exists()) { try { - this.b.load(new FileInputStream(file1)); + this.properties.load(new FileInputStream(file1)); } catch (Exception exception) { a.log(Level.WARNING, "Failed to load " + file1, exception); this.a(); @@ -55,45 +55,46 @@ public class PropertyManager { public void b() { try { - this.b.store(new FileOutputStream(this.c), "Minecraft server properties"); + this.properties.store(new FileOutputStream(this.c), "Minecraft server properties"); } catch (Exception exception) { a.log(Level.WARNING, "Failed to save " + this.c, exception); this.a(); } } - public String a(String s, String s1) { - if (!this.b.containsKey(s)) { - this.b.setProperty(s, getOverride(s, s1)); // CraftBukkit + public String getString(String s, String s1) { + if (!this.properties.containsKey(s)) { + s1 = getOverride(s, s1); // CraftBukkit + this.properties.setProperty(s, s1); this.b(); } - return getOverride(s, this.b.getProperty(s, s1)); // CraftBukkit + return getOverride(s, this.properties.getProperty(s, s1)); // CraftBukkit } - public int a(String s, int i) { + public int getInt(String s, int i) { try { - return getOverride(s, Integer.parseInt(this.a(s, "" + i))); // CraftBukkit + return getOverride(s, Integer.parseInt(this.getString(s, "" + i))); // CraftBukkit } catch (Exception exception) { i = getOverride(s, i); // CraftBukkit - this.b.setProperty(s, "" + i); + this.properties.setProperty(s, "" + i); return i; } } - public boolean a(String s, boolean flag) { + public boolean getBoolean(String s, boolean flag) { try { - return getOverride(s, Boolean.parseBoolean(this.a(s, "" + flag))); // CraftBukkit + return getOverride(s, Boolean.parseBoolean(this.getString(s, "" + flag))); // CraftBukkit } catch (Exception exception) { flag = getOverride(s, flag); // CraftBukkit - this.b.setProperty(s, "" + flag); + this.properties.setProperty(s, "" + flag); return flag; } } public void b(String s, boolean flag) { flag = getOverride(s, flag); // CraftBukkit - this.b.setProperty(s, "" + flag); + this.properties.setProperty(s, "" + flag); this.b(); } } diff --git a/src/main/java/net/minecraft/server/ServerConfigurationManager.java b/src/main/java/net/minecraft/server/ServerConfigurationManager.java index 20736dd004..4a3f77dffe 100644 --- a/src/main/java/net/minecraft/server/ServerConfigurationManager.java +++ b/src/main/java/net/minecraft/server/ServerConfigurationManager.java @@ -27,38 +27,38 @@ import org.bukkit.event.player.PlayerRespawnEvent; public class ServerConfigurationManager { public static Logger a = Logger.getLogger("Minecraft"); - public List b = new ArrayList(); - public MinecraftServer c; // CraftBukkit - private->public + public List players = new ArrayList(); + public MinecraftServer server; // CraftBukkit - private->public // public PlayerManager d; // CraftBukkit - removed! - public int e; // CraftBukkit - private->public - private Set f = new HashSet(); - private Set g = new HashSet(); + public int maxPlayers; // CraftBukkit - private->public + private Set banByName = new HashSet(); + private Set banByIP = new HashSet(); private Set h = new HashSet(); private Set i = new HashSet(); private File j; private File k; private File l; private File m; - public PlayerFileData n; // CraftBukkit - private->public + public PlayerFileData playerFileData; // CraftBukkit private->public private boolean o; // CraftBukkit start - private CraftServer server; + private CraftServer cserver; public ServerConfigurationManager(MinecraftServer minecraftserver) { minecraftserver.server = new CraftServer(minecraftserver, this); minecraftserver.console = new ColouredConsoleSender(minecraftserver.server); - server = minecraftserver.server; + cserver = minecraftserver.server; // CraftBukkit end - this.c = minecraftserver; + this.server = minecraftserver; this.j = minecraftserver.a("banned-players.txt"); this.k = minecraftserver.a("banned-ips.txt"); this.l = minecraftserver.a("ops.txt"); this.m = minecraftserver.a("white-list.txt"); // this.d = new PlayerManager(minecraftserver); // CraftBukkit - removed! - this.e = minecraftserver.d.a("max-players", 20); - this.o = minecraftserver.d.a("white-list", false); + this.maxPlayers = minecraftserver.propertyManager.getInt("max-players", 20); + this.o = minecraftserver.propertyManager.getBoolean("white-list", false); this.g(); this.i(); this.k(); @@ -69,12 +69,9 @@ public class ServerConfigurationManager { this.n(); } - public void a(WorldServer worldserver) { - // CraftBukkit start - if (this.n == null) { - this.n = worldserver.o().d(); - } - // CraftBukkit end + public void setPlayerFileData(WorldServer worldserver) { + if (this.playerFileData != null) return; // CraftBukkit + this.playerFileData = worldserver.o().d(); } public int a() { @@ -82,46 +79,45 @@ public class ServerConfigurationManager { } public void a(EntityPlayer entityplayer) { - this.b.add(entityplayer); - this.n.b(entityplayer); + this.players.add(entityplayer); + this.playerFileData.b(entityplayer); // CraftBukkit start - ((WorldServer) entityplayer.world).u.c((int) entityplayer.locX >> 4, (int) entityplayer.locZ >> 4); + ((WorldServer) entityplayer.world).chunkProviderServer.getChunkAt((int) entityplayer.locX >> 4, (int) entityplayer.locZ >> 4); - while (entityplayer.world.a(entityplayer, entityplayer.boundingBox).size() != 0) { - entityplayer.a(entityplayer.locX, entityplayer.locY + 1.0D, entityplayer.locZ); + while (entityplayer.world.getEntities(entityplayer, entityplayer.boundingBox).size() != 0) { + entityplayer.setPosition(entityplayer.locX, entityplayer.locY + 1.0D, entityplayer.locZ); } - entityplayer.world.a(entityplayer); + entityplayer.world.addEntity(entityplayer); - PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(server.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " joined the game."); - - server.getPluginManager().callEvent(playerJoinEvent); + PlayerJoinEvent playerJoinEvent = new PlayerJoinEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " joined the game."); + cserver.getPluginManager().callEvent(playerJoinEvent); String joinMessage = playerJoinEvent.getJoinMessage(); if (joinMessage != null) { - this.c.f.a((Packet) (new Packet3Chat(joinMessage))); + this.server.serverConfigurationManager.sendAll(new Packet3Chat(joinMessage)); } - ((WorldServer) entityplayer.world).manager.a(entityplayer); + ((WorldServer) entityplayer.world).manager.addPlayer(entityplayer); // CraftBukkit end } public void b(EntityPlayer entityplayer) { - ((WorldServer) entityplayer.world).manager.c(entityplayer); // CraftBukkit + ((WorldServer) entityplayer.world).manager.movePlayer(entityplayer); // CraftBukkit } - public String c(EntityPlayer entityplayer) { // CraftBukkit - changed return type + public String disconnect(EntityPlayer entityplayer) { // CraftBukkit - changed return type // CraftBukkit start // Quitting must be before we do final save of data, in case plugins need to modify it - ((WorldServer) entityplayer.world).manager.b(entityplayer); - PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(server.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " left the game."); - server.getPluginManager().callEvent(playerQuitEvent); + ((WorldServer) entityplayer.world).manager.removePlayer(entityplayer); + PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.name + " left the game."); + cserver.getPluginManager().callEvent(playerQuitEvent); // CraftBukkit end - this.n.a(entityplayer); - entityplayer.world.d(entityplayer); // CraftBukkit - this.b.remove(entityplayer); + this.playerFileData.a(entityplayer); + entityplayer.world.kill(entityplayer); // CraftBukkit + this.players.remove(entityplayer); return playerQuitEvent.getQuitMessage(); // CraftBukkit } @@ -131,84 +127,84 @@ public class ServerConfigurationManager { // Instead of kicking then returning, we need to store the kick reason // in the event, check with plugins to see if it's ok, and THEN kick // depending on the outcome. Also change any reference to this.e.c to entity.world - EntityPlayer entity = new EntityPlayer(c, c.worlds.get(0), s, new ItemInWorldManager(c.worlds.get(0))); + EntityPlayer entity = new EntityPlayer(this.server, this.server.worlds.get(0), s, new ItemInWorldManager(this.server.worlds.get(0))); Player player = (entity == null) ? null : (Player) entity.getBukkitEntity(); PlayerLoginEvent event = new PlayerLoginEvent(player); - String s2 = netloginhandler.b.b().toString(); + String s2 = netloginhandler.networkManager.getSocketAddress().toString(); s2 = s2.substring(s2.indexOf("/") + 1); s2 = s2.substring(0, s2.indexOf(":")); - if (this.f.contains(s.trim().toLowerCase())) { + if (this.banByName.contains(s.trim().toLowerCase())) { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, "You are banned from this server!"); - } else if (!this.g(s)) { + } else if (!this.isWhitelisted(s)) { event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, "You are not white-listed on this server!"); - } else if (this.g.contains(s2)) { + } else if (this.banByIP.contains(s2)) { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, "Your IP address is banned from this server!"); - } else if (this.b.size() >= this.e) { + } else if (this.players.size() >= this.maxPlayers) { event.disallow(PlayerLoginEvent.Result.KICK_FULL, "The server is full!"); } else { event.disallow(PlayerLoginEvent.Result.ALLOWED, s2); } - server.getPluginManager().callEvent(event); + cserver.getPluginManager().callEvent(event); if (event.getResult() != PlayerLoginEvent.Result.ALLOWED) { - netloginhandler.a(event.getKickMessage()); + netloginhandler.disconnect(event.getKickMessage()); return null; } - for (int i = 0; i < this.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); + for (int i = 0; i < this.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); if (entityplayer.name.equalsIgnoreCase(s)) { - entityplayer.a.a("You logged in from another location"); + entityplayer.netServerHandler.disconnect("You logged in from another location"); } } - return new EntityPlayer(this.c, entity.world, s, new ItemInWorldManager(entity.world)); + return new EntityPlayer(this.server, entity.world, s, new ItemInWorldManager(entity.world)); // CraftBukkit end } public EntityPlayer d(EntityPlayer entityplayer) { - // CraftBukkit start - every reference to this.c.e should be entityplayer.world - this.c.k.a(entityplayer); - this.c.k.b(entityplayer); - ((WorldServer) entityplayer.world).manager.b(entityplayer); - this.b.remove(entityplayer); - entityplayer.world.e(entityplayer); + // CraftBukkit start - every reference to this.minecraftServer.worldServer should be entityplayer.world + this.server.tracker.trackPlayer(entityplayer); + this.server.tracker.untrackEntity(entityplayer); + ((WorldServer) entityplayer.world).manager.removePlayer(entityplayer); + this.players.remove(entityplayer); + entityplayer.world.removeEntity(entityplayer); ChunkCoordinates chunkcoordinates = entityplayer.H(); - EntityPlayer entityplayer1 = new EntityPlayer(this.c, entityplayer.world, entityplayer.name, new ItemInWorldManager(entityplayer.world)); + EntityPlayer entityplayer1 = new EntityPlayer(this.server, entityplayer.world, entityplayer.name, new ItemInWorldManager(entityplayer.world)); entityplayer1.id = entityplayer.id; - entityplayer1.a = entityplayer.a; + entityplayer1.netServerHandler = entityplayer.netServerHandler; entityplayer1.displayName = entityplayer.displayName; // CraftBukkit entityplayer1.compassTarget = entityplayer.compassTarget; // CraftBukkit entityplayer1.fauxSleeping = entityplayer.fauxSleeping; // CraftBukkit - + if (chunkcoordinates != null) { - ChunkCoordinates chunkcoordinates1 = EntityHuman.a(entityplayer.world, chunkcoordinates); + ChunkCoordinates chunkcoordinates1 = EntityHuman.getBed(entityplayer.world, chunkcoordinates); if (chunkcoordinates1 != null) { - entityplayer1.c((double) ((float) chunkcoordinates1.a + 0.5F), (double) ((float) chunkcoordinates1.b + 0.1F), (double) ((float) chunkcoordinates1.c + 0.5F), 0.0F, 0.0F); + entityplayer1.setPositionRotation((double) ((float) chunkcoordinates1.x + 0.5F), (double) ((float) chunkcoordinates1.y + 0.1F), (double) ((float) chunkcoordinates1.z + 0.5F), 0.0F, 0.0F); entityplayer1.a(chunkcoordinates); } else { - entityplayer1.a.b((Packet) (new Packet70Bed(0))); + entityplayer1.netServerHandler.sendPacket(new Packet70Bed(0)); } } - - ((WorldServer) entityplayer.world).u.c((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4); - while (entityplayer.world.a(entityplayer1, entityplayer1.boundingBox).size() != 0) { - entityplayer1.a(entityplayer1.locX, entityplayer1.locY + 1.0D, entityplayer1.locZ); + ((WorldServer) entityplayer.world).chunkProviderServer.getChunkAt((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4); + + while (entityplayer.world.getEntities(entityplayer1, entityplayer1.boundingBox).size() != 0) { + entityplayer1.setPosition(entityplayer1.locX, entityplayer1.locY + 1.0D, entityplayer1.locZ); } // CraftBukkit start - Player respawnPlayer = server.getPlayer(entityplayer); + Player respawnPlayer = cserver.getPlayer(entityplayer); Location respawnLocation = new Location(respawnPlayer.getWorld(), entityplayer1.locX, entityplayer1.locY, entityplayer1.locZ, entityplayer1.yaw, entityplayer1.pitch); PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, respawnLocation ); - server.getPluginManager().callEvent(respawnEvent); + cserver.getPluginManager().callEvent(respawnEvent); entityplayer1.world = ((CraftWorld) respawnEvent.getRespawnLocation().getWorld()).getHandle(); entityplayer1.locX = respawnEvent.getRespawnLocation().getX(); @@ -216,77 +212,77 @@ public class ServerConfigurationManager { entityplayer1.locZ = respawnEvent.getRespawnLocation().getZ(); entityplayer1.yaw = respawnEvent.getRespawnLocation().getYaw(); entityplayer1.pitch = respawnEvent.getRespawnLocation().getPitch(); - entityplayer1.c = new ItemInWorldManager(((CraftWorld) respawnEvent.getRespawnLocation().getWorld()).getHandle()); - entityplayer1.c.a = entityplayer1; - ((WorldServer) entityplayer1.world).u.c((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4); + entityplayer1.itemInWorldManager = new ItemInWorldManager(((CraftWorld) respawnEvent.getRespawnLocation().getWorld()).getHandle()); + entityplayer1.itemInWorldManager.player = entityplayer1; + ((WorldServer) entityplayer1.world).chunkProviderServer.getChunkAt((int) entityplayer1.locX >> 4, (int) entityplayer1.locZ >> 4); // CraftBukkit end - entityplayer1.a.b((Packet) (new Packet9Respawn())); - entityplayer1.a.a(entityplayer1.locX, entityplayer1.locY, entityplayer1.locZ, entityplayer1.yaw, entityplayer1.pitch); + entityplayer1.netServerHandler.sendPacket(new Packet9Respawn()); + entityplayer1.netServerHandler.a(entityplayer1.locX, entityplayer1.locY, entityplayer1.locZ, entityplayer1.yaw, entityplayer1.pitch); // CraftBukkit start - entityplayer.world.a(entityplayer1); - ((WorldServer) entityplayer1.world).manager.a(entityplayer1); + ((WorldServer) entityplayer1.world).manager.addPlayer(entityplayer1); + entityplayer.world.addEntity(entityplayer1); // CraftBukkit end - this.b.add(entityplayer1); - entityplayer1.m(); + this.players.add(entityplayer1); + entityplayer1.syncInventory(); entityplayer1.t(); return entityplayer1; } public void b() { // CraftBukkit start - for (WorldServer world: c.worlds) { - world.manager.a(); + for (WorldServer world: this.server.worlds) { + world.manager.flush(); } // CraftBukkit end } // CraftBukkit start - changed signature - public void a(int i, int j, int k, WorldServer world) { - world.manager.a(i, j, k); + public void flagDirty(int i, int j, int k, WorldServer world) { + world.manager.flagDirty(i, j, k); } // CraftBukkit end - public void a(Packet packet) { - for (int i = 0; i < this.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); + public void sendAll(Packet packet) { + for (int i = 0; i < this.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); - entityplayer.a.b(packet); + entityplayer.netServerHandler.sendPacket(packet); } } public String c() { String s = ""; - for (int i = 0; i < this.b.size(); ++i) { + for (int i = 0; i < this.players.size(); ++i) { if (i > 0) { s = s + ", "; } - s = s + ((EntityPlayer) this.b.get(i)).name; + s = s + ((EntityPlayer) this.players.get(i)).name; } return s; } public void a(String s) { - this.f.add(s.toLowerCase()); + this.banByName.add(s.toLowerCase()); this.h(); } public void b(String s) { - this.f.remove(s.toLowerCase()); + this.banByName.remove(s.toLowerCase()); this.h(); } private void g() { try { - this.f.clear(); + this.banByName.clear(); BufferedReader bufferedreader = new BufferedReader(new FileReader(this.j)); String s = ""; while ((s = bufferedreader.readLine()) != null) { - this.f.add(s.trim().toLowerCase()); + this.banByName.add(s.trim().toLowerCase()); } bufferedreader.close(); @@ -298,7 +294,7 @@ public class ServerConfigurationManager { private void h() { try { PrintWriter printwriter = new PrintWriter(new FileWriter(this.j, false)); - Iterator iterator = this.f.iterator(); + Iterator iterator = this.banByName.iterator(); while (iterator.hasNext()) { String s = (String) iterator.next(); @@ -313,23 +309,23 @@ public class ServerConfigurationManager { } public void c(String s) { - this.g.add(s.toLowerCase()); + this.banByIP.add(s.toLowerCase()); this.j(); } public void d(String s) { - this.g.remove(s.toLowerCase()); + this.banByIP.remove(s.toLowerCase()); this.j(); } private void i() { try { - this.g.clear(); + this.banByIP.clear(); BufferedReader bufferedreader = new BufferedReader(new FileReader(this.k)); String s = ""; while ((s = bufferedreader.readLine()) != null) { - this.g.add(s.trim().toLowerCase()); + this.banByIP.add(s.trim().toLowerCase()); } bufferedreader.close(); @@ -341,7 +337,7 @@ public class ServerConfigurationManager { private void j() { try { PrintWriter printwriter = new PrintWriter(new FileWriter(this.k, false)); - Iterator iterator = this.g.iterator(); + Iterator iterator = this.banByIP.iterator(); while (iterator.hasNext()) { String s = (String) iterator.next(); @@ -431,18 +427,18 @@ public class ServerConfigurationManager { } } - public boolean g(String s) { + public boolean isWhitelisted(String s) { s = s.trim().toLowerCase(); return !this.o || this.h.contains(s) || this.i.contains(s); } - public boolean h(String s) { + public boolean isOp(String s) { return this.h.contains(s.trim().toLowerCase()); } public EntityPlayer i(String s) { - for (int i = 0; i < this.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); + for (int i = 0; i < this.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); if (entityplayer.name.equalsIgnoreCase(s)) { return entityplayer; @@ -456,19 +452,19 @@ public class ServerConfigurationManager { EntityPlayer entityplayer = this.i(s); if (entityplayer != null) { - entityplayer.a.b((Packet) (new Packet3Chat(s1))); + entityplayer.netServerHandler.sendPacket(new Packet3Chat(s1)); } } public void a(double d0, double d1, double d2, double d3, Packet packet) { - for (int i = 0; i < this.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); + for (int i = 0; i < this.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); double d4 = d0 - entityplayer.locX; double d5 = d1 - entityplayer.locY; double d6 = d2 - entityplayer.locZ; if (d4 * d4 + d5 * d5 + d6 * d6 < d3 * d3) { - entityplayer.a.b(packet); + entityplayer.netServerHandler.sendPacket(packet); } } } @@ -476,11 +472,11 @@ public class ServerConfigurationManager { public void j(String s) { Packet3Chat packet3chat = new Packet3Chat(s); - for (int i = 0; i < this.b.size(); ++i) { - EntityPlayer entityplayer = (EntityPlayer) this.b.get(i); + for (int i = 0; i < this.players.size(); ++i) { + EntityPlayer entityplayer = (EntityPlayer) this.players.get(i); - if (this.h(entityplayer.name)) { - entityplayer.a.b((Packet) packet3chat); + if (this.isOp(entityplayer.name)) { + entityplayer.netServerHandler.sendPacket(packet3chat); } } } @@ -489,16 +485,16 @@ public class ServerConfigurationManager { EntityPlayer entityplayer = this.i(s); if (entityplayer != null) { - entityplayer.a.b(packet); + entityplayer.netServerHandler.sendPacket(packet); return true; } else { return false; } } - public void d() { - for (int i = 0; i < this.b.size(); ++i) { - this.n.a((EntityHuman) this.b.get(i)); + public void savePlayers() { + for (int i = 0; i < this.players.size(); ++i) { + this.playerFileData.a((EntityHuman) this.players.get(i)); } } diff --git a/src/main/java/net/minecraft/server/Slot.java b/src/main/java/net/minecraft/server/Slot.java index a45cb2aaa2..e549a7fc4e 100644 --- a/src/main/java/net/minecraft/server/Slot.java +++ b/src/main/java/net/minecraft/server/Slot.java @@ -2,15 +2,15 @@ package net.minecraft.server; public class Slot { - public final int d; // CraftBukkit: private -> public - public final IInventory e; // CraftBukkit: private -> public + public final int index; // CraftBukkit: private -> public + public final IInventory inventory; // CraftBukkit: private -> public public int a; public int b; public int c; public Slot(IInventory iinventory, int i, int j, int k) { - this.e = iinventory; - this.d = i; + this.inventory = iinventory; + this.index = i; this.b = j; this.c = k; } @@ -19,33 +19,33 @@ public class Slot { this.b(); } - public boolean b(ItemStack itemstack) { + public boolean isAllowed(ItemStack itemstack) { return true; } - public ItemStack a() { - return this.e.c_(this.d); + public ItemStack getItem() { + return this.inventory.getItem(this.index); } public void c(ItemStack itemstack) { - this.e.a(this.d, itemstack); + this.inventory.setItem(this.index, itemstack); this.b(); } public void b() { - this.e.i(); + this.inventory.update(); } public int c() { - return this.e.r_(); + return this.inventory.getMaxStackSize(); } public ItemStack a(int i) { - return this.e.a(this.d, i); + return this.inventory.a(this.index, i); } public boolean a(IInventory iinventory, int i) { - return iinventory == this.e && i == this.d; + return iinventory == this.inventory && i == this.index; } public boolean d() { diff --git a/src/main/java/net/minecraft/server/ThreadCommandReader.java b/src/main/java/net/minecraft/server/ThreadCommandReader.java index 71efc0ad92..60bd142595 100644 --- a/src/main/java/net/minecraft/server/ThreadCommandReader.java +++ b/src/main/java/net/minecraft/server/ThreadCommandReader.java @@ -10,23 +10,23 @@ import jline.ConsoleReader; public class ThreadCommandReader extends Thread { - final MinecraftServer a; + final MinecraftServer server; public ThreadCommandReader(MinecraftServer minecraftserver) { - this.a = minecraftserver; + this.server = minecraftserver; } public void run() { // Craftbukkit start - whole method, nuked to oblivion! :o try { - ConsoleReader reader = a.reader; + ConsoleReader reader = this.server.reader; String line = null; - while ((!this.a.g) && (MinecraftServer.a(this.a)) && ((line = reader.readLine(">", null)) != null)) { - this.a.a(line, this.a); + while ((!this.server.isStopped) && (MinecraftServer.isRunning(this.server)) && ((line = reader.readLine(">", null)) != null)) { + this.server.issueCommand(line, (ICommandListener) this.server); } - } catch (IOException ex) { - Logger.getLogger(ThreadCommandReader.class.getName()).log(Level.SEVERE, null, ex); + } catch (IOException ioexception) { + Logger.getLogger(ThreadCommandReader.class.getName()).log(Level.SEVERE, null, ioexception); } // Craftbukkit end } diff --git a/src/main/java/net/minecraft/server/ThreadLoginVerifier.java b/src/main/java/net/minecraft/server/ThreadLoginVerifier.java index dd6850b714..9bf70e0403 100644 --- a/src/main/java/net/minecraft/server/ThreadLoginVerifier.java +++ b/src/main/java/net/minecraft/server/ThreadLoginVerifier.java @@ -1,51 +1,56 @@ -package net.minecraft.server; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLEncoder; -import org.bukkit.craftbukkit.CraftServer; -import org.bukkit.event.player.PlayerPreLoginEvent; - -class ThreadLoginVerifier extends Thread { - - final Packet1Login a; - - final NetLoginHandler b; - - // CraftBukkit start - CraftServer server; - - ThreadLoginVerifier(NetLoginHandler netloginhandler, Packet1Login packet1login, CraftServer server) { - this.server = server; - // CraftBukkit end - this.b = netloginhandler; - this.a = packet1login; - } - - public void run() { - try { - String s = NetLoginHandler.a(this.b); - URL url = new URL("http://www.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(this.a.b, "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8")); - BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream())); - String s1 = bufferedreader.readLine(); - - bufferedreader.close(); - if (s1.equals("YES")) { - PlayerPreLoginEvent event = new PlayerPreLoginEvent(this.a.b, b.getSocket().getInetAddress()); - server.getPluginManager().callEvent(event); - - if (event.getResult() != PlayerPreLoginEvent.Result.ALLOWED) { - this.b.a(event.getKickMessage()); - return; - } - - NetLoginHandler.a(this.b, this.a); - } else { - this.b.a("Failed to verify username!"); - } - } catch (Exception exception) { - exception.printStackTrace(); - } - } -} +package net.minecraft.server; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLEncoder; + +// CraftBukkit start +import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.event.player.PlayerPreLoginEvent; +// CraftBukkit end + +class ThreadLoginVerifier extends Thread { + + final Packet1Login loginPacket; + + final NetLoginHandler netLoginHandler; + + // CraftBukkit start + CraftServer server; + + ThreadLoginVerifier(NetLoginHandler netloginhandler, Packet1Login packet1login, CraftServer server) { + this.server = server; + // CraftBukkit end + this.netLoginHandler = netloginhandler; + this.loginPacket = packet1login; + } + + public void run() { + try { + String s = NetLoginHandler.a(this.netLoginHandler); + URL url = new URL("http://www.minecraft.net/game/checkserver.jsp?user=" + URLEncoder.encode(this.loginPacket.name, "UTF-8") + "&serverId=" + URLEncoder.encode(s, "UTF-8")); + BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(url.openStream())); + String s1 = bufferedreader.readLine(); + + bufferedreader.close(); + if (s1.equals("YES")) { + // CraftBukkit start + PlayerPreLoginEvent event = new PlayerPreLoginEvent(this.loginPacket.name, this.netLoginHandler.getSocket().getInetAddress()); + server.getPluginManager().callEvent(event); + + if (event.getResult() != PlayerPreLoginEvent.Result.ALLOWED) { + this.netLoginHandler.disconnect(event.getKickMessage()); + return; + } + // CraftBukkit end + + NetLoginHandler.a(this.netLoginHandler, this.loginPacket); + } else { + this.netLoginHandler.disconnect("Failed to verify username!"); + } + } catch (Exception exception) { + exception.printStackTrace(); + } + } +} diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java index 275ab04cf6..a4095f3d4a 100644 --- a/src/main/java/net/minecraft/server/TileEntityChest.java +++ b/src/main/java/net/minecraft/server/TileEntityChest.java @@ -2,40 +2,40 @@ package net.minecraft.server; public class TileEntityChest extends TileEntity implements IInventory { - private ItemStack[] a = new ItemStack[27]; // CraftBukkit + private ItemStack[] items = new ItemStack[27]; // CraftBukkit // CraftBukkit start public ItemStack[] getContents() { - return a; + return items; } // CraftBukkit end public TileEntityChest() {} - public int q_() { + public int getSize() { return 27; } - public ItemStack c_(int i) { - return this.a[i]; + public ItemStack getItem(int i) { + return this.items[i]; } public ItemStack a(int i, int j) { - if (this.a[i] != null) { + if (this.items[i] != null) { ItemStack itemstack; - if (this.a[i].count <= j) { - itemstack = this.a[i]; - this.a[i] = null; - this.i(); + if (this.items[i].count <= j) { + itemstack = this.items[i]; + this.items[i] = null; + this.update(); return itemstack; } else { - itemstack = this.a[i].a(j); - if (this.a[i].count == 0) { - this.a[i] = null; + itemstack = this.items[i].a(j); + if (this.items[i].count == 0) { + this.items[i] = null; } - this.i(); + this.update(); return itemstack; } } else { @@ -43,16 +43,16 @@ public class TileEntityChest extends TileEntity implements IInventory { } } - public void a(int i, ItemStack itemstack) { - this.a[i] = itemstack; - if (itemstack != null && itemstack.count > this.r_()) { - itemstack.count = this.r_(); + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; + if (itemstack != null && itemstack.count > this.getMaxStackSize()) { + itemstack.count = this.getMaxStackSize(); } - this.i(); + this.update(); } - public String c() { + public String getName() { return "Chest"; } @@ -60,14 +60,14 @@ public class TileEntityChest extends TileEntity implements IInventory { super.a(nbttagcompound); NBTTagList nbttaglist = nbttagcompound.l("Items"); - this.a = new ItemStack[this.q_()]; + this.items = new ItemStack[this.getSize()]; for (int i = 0; i < nbttaglist.c(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i); int j = nbttagcompound1.c("Slot") & 255; - if (j >= 0 && j < this.a.length) { - this.a[j] = new ItemStack(nbttagcompound1); + if (j >= 0 && j < this.items.length) { + this.items[j] = new ItemStack(nbttagcompound1); } } } @@ -76,12 +76,12 @@ public class TileEntityChest extends TileEntity implements IInventory { super.b(nbttagcompound); NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < this.a.length; ++i) { - if (this.a[i] != null) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.a("Slot", (byte) i); - this.a[i].a(nbttagcompound1); + this.items[i].a(nbttagcompound1); nbttaglist.a((NBTBase) nbttagcompound1); } } @@ -89,11 +89,11 @@ public class TileEntityChest extends TileEntity implements IInventory { nbttagcompound.a("Items", (NBTBase) nbttaglist); } - public int r_() { + public int getMaxStackSize() { return 64; } public boolean a_(EntityHuman entityhuman) { - return this.d.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; + return this.world.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; } } diff --git a/src/main/java/net/minecraft/server/TileEntityDispenser.java b/src/main/java/net/minecraft/server/TileEntityDispenser.java index d13acca4fc..faa9635c04 100644 --- a/src/main/java/net/minecraft/server/TileEntityDispenser.java +++ b/src/main/java/net/minecraft/server/TileEntityDispenser.java @@ -4,41 +4,41 @@ import java.util.Random; public class TileEntityDispenser extends TileEntity implements IInventory { - private ItemStack[] a = new ItemStack[9]; + private ItemStack[] items = new ItemStack[9]; private Random b = new Random(); // CraftBukkit start public ItemStack[] getContents() { - return a; + return items; } // CraftBukkit end public TileEntityDispenser() {} - public int q_() { + public int getSize() { return 9; } - public ItemStack c_(int i) { - return this.a[i]; + public ItemStack getItem(int i) { + return this.items[i]; } public ItemStack a(int i, int j) { - if (this.a[i] != null) { + if (this.items[i] != null) { ItemStack itemstack; - if (this.a[i].count <= j) { - itemstack = this.a[i]; - this.a[i] = null; - this.i(); + if (this.items[i].count <= j) { + itemstack = this.items[i]; + this.items[i] = null; + this.update(); return itemstack; } else { - itemstack = this.a[i].a(j); - if (this.a[i].count == 0) { - this.a[i] = null; + itemstack = this.items[i].a(j); + if (this.items[i].count == 0) { + this.items[i] = null; } - this.i(); + this.update(); return itemstack; } } else { @@ -50,8 +50,8 @@ public class TileEntityDispenser extends TileEntity implements IInventory { int i = -1; int j = 1; - for (int k = 0; k < this.a.length; ++k) { - if (this.a[k] != null && this.b.nextInt(j) == 0) { + for (int k = 0; k < this.items.length; ++k) { + if (this.items[k] != null && this.b.nextInt(j) == 0) { i = k; ++j; } @@ -64,16 +64,16 @@ public class TileEntityDispenser extends TileEntity implements IInventory { } } - public void a(int i, ItemStack itemstack) { - this.a[i] = itemstack; - if (itemstack != null && itemstack.count > this.r_()) { - itemstack.count = this.r_(); + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; + if (itemstack != null && itemstack.count > this.getMaxStackSize()) { + itemstack.count = this.getMaxStackSize(); } - this.i(); + this.update(); } - public String c() { + public String getName() { return "Trap"; } @@ -81,14 +81,14 @@ public class TileEntityDispenser extends TileEntity implements IInventory { super.a(nbttagcompound); NBTTagList nbttaglist = nbttagcompound.l("Items"); - this.a = new ItemStack[this.q_()]; + this.items = new ItemStack[this.getSize()]; for (int i = 0; i < nbttaglist.c(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i); int j = nbttagcompound1.c("Slot") & 255; - if (j >= 0 && j < this.a.length) { - this.a[j] = new ItemStack(nbttagcompound1); + if (j >= 0 && j < this.items.length) { + this.items[j] = new ItemStack(nbttagcompound1); } } } @@ -97,12 +97,12 @@ public class TileEntityDispenser extends TileEntity implements IInventory { super.b(nbttagcompound); NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < this.a.length; ++i) { - if (this.a[i] != null) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.a("Slot", (byte) i); - this.a[i].a(nbttagcompound1); + this.items[i].a(nbttagcompound1); nbttaglist.a((NBTBase) nbttagcompound1); } } @@ -110,11 +110,11 @@ public class TileEntityDispenser extends TileEntity implements IInventory { nbttagcompound.a("Items", (NBTBase) nbttaglist); } - public int r_() { + public int getMaxStackSize() { return 64; } public boolean a_(EntityHuman entityhuman) { - return this.d.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; + return this.world.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; } } diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java index 848a74af3b..d0e1ff35a9 100644 --- a/src/main/java/net/minecraft/server/TileEntityFurnace.java +++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java @@ -2,39 +2,39 @@ package net.minecraft.server; public class TileEntityFurnace extends TileEntity implements IInventory { - private ItemStack[] h = new ItemStack[3]; - public int a = 0; + private ItemStack[] items = new ItemStack[3]; + public int burnTime = 0; public int b = 0; - public int c = 0; + public int cookTime = 0; // CraftBukkit start public ItemStack[] getContents() { - return h; + return items; } // CraftBukkit end public TileEntityFurnace() {} - public int q_() { - return this.h.length; + public int getSize() { + return this.items.length; } - public ItemStack c_(int i) { - return this.h[i]; + public ItemStack getItem(int i) { + return this.items[i]; } public ItemStack a(int i, int j) { - if (this.h[i] != null) { + if (this.items[i] != null) { ItemStack itemstack; - if (this.h[i].count <= j) { - itemstack = this.h[i]; - this.h[i] = null; + if (this.items[i].count <= j) { + itemstack = this.items[i]; + this.items[i] = null; return itemstack; } else { - itemstack = this.h[i].a(j); - if (this.h[i].count == 0) { - this.h[i] = null; + itemstack = this.items[i].a(j); + if (this.items[i].count == 0) { + this.items[i] = null; } return itemstack; @@ -44,14 +44,14 @@ public class TileEntityFurnace extends TileEntity implements IInventory { } } - public void a(int i, ItemStack itemstack) { - this.h[i] = itemstack; - if (itemstack != null && itemstack.count > this.r_()) { - itemstack.count = this.r_(); + public void setItem(int i, ItemStack itemstack) { + this.items[i] = itemstack; + if (itemstack != null && itemstack.count > this.getMaxStackSize()) { + itemstack.count = this.getMaxStackSize(); } } - public String c() { + public String getName() { return "Furnace"; } @@ -59,34 +59,34 @@ public class TileEntityFurnace extends TileEntity implements IInventory { super.a(nbttagcompound); NBTTagList nbttaglist = nbttagcompound.l("Items"); - this.h = new ItemStack[this.q_()]; + this.items = new ItemStack[this.getSize()]; for (int i = 0; i < nbttaglist.c(); ++i) { NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.a(i); byte b0 = nbttagcompound1.c("Slot"); - if (b0 >= 0 && b0 < this.h.length) { - this.h[b0] = new ItemStack(nbttagcompound1); + if (b0 >= 0 && b0 < this.items.length) { + this.items[b0] = new ItemStack(nbttagcompound1); } } - this.a = nbttagcompound.d("BurnTime"); - this.c = nbttagcompound.d("CookTime"); - this.b = this.a(this.h[1]); + this.burnTime = nbttagcompound.d("BurnTime"); + this.cookTime = nbttagcompound.d("CookTime"); + this.b = this.a(this.items[1]); } public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); - nbttagcompound.a("BurnTime", (short) this.a); - nbttagcompound.a("CookTime", (short) this.c); + nbttagcompound.a("BurnTime", (short) this.burnTime); + nbttagcompound.a("CookTime", (short) this.cookTime); NBTTagList nbttaglist = new NBTTagList(); - for (int i = 0; i < this.h.length; ++i) { - if (this.h[i] != null) { + for (int i = 0; i < this.items.length; ++i) { + if (this.items[i] != null) { NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.a("Slot", (byte) i); - this.h[i].a(nbttagcompound1); + this.items[i].a(nbttagcompound1); nbttaglist.a((NBTBase) nbttagcompound1); } } @@ -94,81 +94,81 @@ public class TileEntityFurnace extends TileEntity implements IInventory { nbttagcompound.a("Items", (NBTBase) nbttaglist); } - public int r_() { + public int getMaxStackSize() { return 64; } public boolean f() { - return this.a > 0; + return this.burnTime > 0; } public void i_() { - boolean flag = this.a > 0; + boolean flag = this.burnTime > 0; boolean flag1 = false; - if (this.a > 0) { - --this.a; + if (this.burnTime > 0) { + --this.burnTime; } - if (!this.d.isStatic) { - if (this.a == 0 && this.h()) { - this.b = this.a = this.a(this.h[1]); - if (this.a > 0) { + if (!this.world.isStatic) { + if (this.burnTime == 0 && this.h()) { + this.b = this.burnTime = this.a(this.items[1]); + if (this.burnTime > 0) { flag1 = true; - if (this.h[1] != null) { - --this.h[1].count; - if (this.h[1].count == 0) { - this.h[1] = null; + if (this.items[1] != null) { + --this.items[1].count; + if (this.items[1].count == 0) { + this.items[1] = null; } } } } if (this.f() && this.h()) { - ++this.c; - if (this.c == 200) { - this.c = 0; + ++this.cookTime; + if (this.cookTime == 200) { + this.cookTime = 0; this.g(); flag1 = true; } } else { - this.c = 0; + this.cookTime = 0; } - if (flag != this.a > 0) { + if (flag != this.burnTime > 0) { flag1 = true; - BlockFurnace.a(this.a > 0, this.d, this.e, this.f, this.g); + BlockFurnace.a(this.burnTime > 0, this.world, this.e, this.f, this.g); } } if (flag1) { - this.i(); + this.update(); } } private boolean h() { - if (this.h[0] == null) { + if (this.items[0] == null) { return false; } else { - ItemStack itemstack = FurnaceRecipes.a().a(this.h[0].a().id); + ItemStack itemstack = FurnaceRecipes.a().a(this.items[0].getItem().id); - return itemstack == null ? false : (this.h[2] == null ? true : (!this.h[2].a(itemstack) ? false : (this.h[2].count < this.r_() && this.h[2].count < this.h[2].b() ? true : this.h[2].count < itemstack.b()))); + return itemstack == null ? false : (this.items[2] == null ? true : (!this.items[2].a(itemstack) ? false : (this.items[2].count < this.getMaxStackSize() && this.items[2].count < this.items[2].b() ? true : this.items[2].count < itemstack.b()))); } } public void g() { if (this.h()) { - ItemStack itemstack = FurnaceRecipes.a().a(this.h[0].a().id); + ItemStack itemstack = FurnaceRecipes.a().a(this.items[0].getItem().id); - if (this.h[2] == null) { - this.h[2] = itemstack.j(); - } else if (this.h[2].id == itemstack.id) { - ++this.h[2].count; + if (this.items[2] == null) { + this.items[2] = itemstack.j(); + } else if (this.items[2].id == itemstack.id) { + ++this.items[2].count; } - --this.h[0].count; - if (this.h[0].count <= 0) { - this.h[0] = null; + --this.items[0].count; + if (this.items[0].count <= 0) { + this.items[0] = null; } } } @@ -177,13 +177,13 @@ public class TileEntityFurnace extends TileEntity implements IInventory { if (itemstack == null) { return 0; } else { - int i = itemstack.a().id; + int i = itemstack.getItem().id; return i < 256 && Block.byId[i].material == Material.WOOD ? 300 : (i == Item.STICK.id ? 100 : (i == Item.COAL.id ? 1600 : (i == Item.LAVA_BUCKET.id ? 20000 : 0))); } } public boolean a_(EntityHuman entityhuman) { - return this.d.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; + return this.world.getTileEntity(this.e, this.f, this.g) != this ? false : entityhuman.d((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D) <= 64.0D; } } diff --git a/src/main/java/net/minecraft/server/TileEntityMobSpawner.java b/src/main/java/net/minecraft/server/TileEntityMobSpawner.java index c2bbdb1757..5e739c3ec8 100644 --- a/src/main/java/net/minecraft/server/TileEntityMobSpawner.java +++ b/src/main/java/net/minecraft/server/TileEntityMobSpawner.java @@ -2,48 +2,48 @@ package net.minecraft.server; public class TileEntityMobSpawner extends TileEntity { - public int a = -1; - public String h = "Pig"; // CraftBukkit private -> public + public int spawnDelay = -1; + public String mobName = "Pig"; // CraftBukkit private -> public public double b; public double c = 0.0D; public TileEntityMobSpawner() { - this.a = 20; + this.spawnDelay = 20; } public void a(String s) { - this.h = s; + this.mobName = s; } public boolean a() { - return this.d.a((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D, 16.0D) != null; + return this.world.a((double) this.e + 0.5D, (double) this.f + 0.5D, (double) this.g + 0.5D, 16.0D) != null; } public void i_() { this.c = this.b; if (this.a()) { - double d0 = (double) ((float) this.e + this.d.k.nextFloat()); - double d1 = (double) ((float) this.f + this.d.k.nextFloat()); - double d2 = (double) ((float) this.g + this.d.k.nextFloat()); + double d0 = (double) ((float) this.e + this.world.random.nextFloat()); + double d1 = (double) ((float) this.f + this.world.random.nextFloat()); + double d2 = (double) ((float) this.g + this.world.random.nextFloat()); - this.d.a("smoke", d0, d1, d2, 0.0D, 0.0D, 0.0D); - this.d.a("flame", d0, d1, d2, 0.0D, 0.0D, 0.0D); + this.world.a("smoke", d0, d1, d2, 0.0D, 0.0D, 0.0D); + this.world.a("flame", d0, d1, d2, 0.0D, 0.0D, 0.0D); - for (this.b += (double) (1000.0F / ((float) this.a + 200.0F)); this.b > 360.0D; this.c -= 360.0D) { + for (this.b += (double) (1000.0F / ((float) this.spawnDelay + 200.0F)); this.b > 360.0D; this.c -= 360.0D) { this.b -= 360.0D; } - if (this.a == -1) { + if (this.spawnDelay == -1) { this.c(); } - if (this.a > 0) { - --this.a; + if (this.spawnDelay > 0) { + --this.spawnDelay; } else { byte b0 = 4; for (int i = 0; i < b0; ++i) { - EntityLiving entityliving = (EntityLiving) ((EntityLiving) EntityTypes.a(this.h, this.d)); + EntityLiving entityliving = (EntityLiving) ((EntityLiving) EntityTypes.a(this.mobName, this.world)); if (entityliving == null) { return; @@ -51,12 +51,12 @@ public class TileEntityMobSpawner extends TileEntity { // CraftBukkit start - The world we're spawning in accepts this creature boolean isAnimal = entityliving instanceof EntityAnimal || entityliving instanceof EntityWaterAnimal; - if ((isAnimal && !this.d.E) || (!isAnimal && !this.d.D)) { + if ((isAnimal && !this.world.allowAnimals) || (!isAnimal && !this.world.allowMonsters)) { return; } // CraftBukkit end - int j = this.d.a(entityliving.getClass(), AxisAlignedBB.b((double) this.e, (double) this.f, (double) this.g, (double) (this.e + 1), (double) (this.f + 1), (double) (this.g + 1)).b(8.0D, 4.0D, 8.0D)).size(); + int j = this.world.a(entityliving.getClass(), AxisAlignedBB.b((double) this.e, (double) this.f, (double) this.g, (double) (this.e + 1), (double) (this.f + 1), (double) (this.g + 1)).b(8.0D, 4.0D, 8.0D)).size(); if (j >= 6) { this.c(); @@ -64,20 +64,20 @@ public class TileEntityMobSpawner extends TileEntity { } if (entityliving != null) { - double d3 = (double) this.e + (this.d.k.nextDouble() - this.d.k.nextDouble()) * 4.0D; - double d4 = (double) (this.f + this.d.k.nextInt(3) - 1); - double d5 = (double) this.g + (this.d.k.nextDouble() - this.d.k.nextDouble()) * 4.0D; + double d3 = (double) this.e + (this.world.random.nextDouble() - this.world.random.nextDouble()) * 4.0D; + double d4 = (double) (this.f + this.world.random.nextInt(3) - 1); + double d5 = (double) this.g + (this.world.random.nextDouble() - this.world.random.nextDouble()) * 4.0D; - entityliving.c(d3, d4, d5, this.d.k.nextFloat() * 360.0F, 0.0F); + entityliving.setPositionRotation(d3, d4, d5, this.world.random.nextFloat() * 360.0F, 0.0F); if (entityliving.b()) { - this.d.a((Entity) entityliving); + this.world.addEntity(entityliving); for (int k = 0; k < 20; ++k) { - d0 = (double) this.e + 0.5D + ((double) this.d.k.nextFloat() - 0.5D) * 2.0D; - d1 = (double) this.f + 0.5D + ((double) this.d.k.nextFloat() - 0.5D) * 2.0D; - d2 = (double) this.g + 0.5D + ((double) this.d.k.nextFloat() - 0.5D) * 2.0D; - this.d.a("smoke", d0, d1, d2, 0.0D, 0.0D, 0.0D); - this.d.a("flame", d0, d1, d2, 0.0D, 0.0D, 0.0D); + d0 = (double) this.e + 0.5D + ((double) this.world.random.nextFloat() - 0.5D) * 2.0D; + d1 = (double) this.f + 0.5D + ((double) this.world.random.nextFloat() - 0.5D) * 2.0D; + d2 = (double) this.g + 0.5D + ((double) this.world.random.nextFloat() - 0.5D) * 2.0D; + this.world.a("smoke", d0, d1, d2, 0.0D, 0.0D, 0.0D); + this.world.a("flame", d0, d1, d2, 0.0D, 0.0D, 0.0D); } entityliving.M(); @@ -92,18 +92,18 @@ public class TileEntityMobSpawner extends TileEntity { } private void c() { - this.a = 200 + this.d.k.nextInt(600); + this.spawnDelay = 200 + this.world.random.nextInt(600); } public void a(NBTTagCompound nbttagcompound) { super.a(nbttagcompound); - this.h = nbttagcompound.i("EntityId"); - this.a = nbttagcompound.d("Delay"); + this.mobName = nbttagcompound.getString("EntityId"); + this.spawnDelay = nbttagcompound.d("Delay"); } public void b(NBTTagCompound nbttagcompound) { super.b(nbttagcompound); - nbttagcompound.a("EntityId", this.h); - nbttagcompound.a("Delay", (short) this.a); + nbttagcompound.setString("EntityId", this.mobName); + nbttagcompound.a("Delay", (short) this.spawnDelay); } } diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 28f24db1a7..5ccebcc8de 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -20,12 +20,12 @@ public class World implements IBlockAccess { public boolean a = false; private List u = new ArrayList(); - public List b = new ArrayList(); + public List entityList = new ArrayList(); private List v = new ArrayList(); private TreeSet w = new TreeSet(); private Set x = new HashSet(); public List c = new ArrayList(); - public List d = new ArrayList(); + public List players = new ArrayList(); private long y = 16777215L; public int e = 0; protected int f = (new Random()).nextInt(); @@ -33,56 +33,56 @@ public class World implements IBlockAccess { public boolean h = false; private long z = System.currentTimeMillis(); protected int i = 40; - public int j; - public Random k = new Random(); + public int spawnMonsters; + public Random random = new Random(); public boolean l = false; - public final WorldProvider m; + public final WorldProvider worldProvider; protected List n = new ArrayList(); - public IChunkProvider o; // CraftBukkit protected->public + public IChunkProvider chunkProvider; // CraftBukkit protected->public protected final IDataManager p; - public WorldData q; // CraftBukkit protected->public - public boolean r; + public WorldData worldData; // CraftBukkit protected->public + public boolean isLoading; private boolean A; private ArrayList B = new ArrayList(); private int C = 0; - public boolean D = true; // CraftBukkit private->public - public boolean E = true; // CraftBukkit private->public + public boolean allowMonsters = true; // CraftBukkit private->public + public boolean allowAnimals = true; // CraftBukkit private->public static int s = 0; private Set F = new HashSet(); private int G; private List H; public boolean isStatic; - public WorldChunkManager a() { - return this.m.b; + public WorldChunkManager getWorldChunkManager() { + return this.worldProvider.b; } public World(IDataManager idatamanager, String s, long i, WorldProvider worldprovider) { - this.G = this.k.nextInt(12000); + this.G = this.random.nextInt(12000); this.H = new ArrayList(); this.isStatic = false; this.p = idatamanager; - this.q = idatamanager.c(); - this.l = this.q == null; + this.worldData = idatamanager.c(); + this.l = this.worldData == null; if (worldprovider != null) { - this.m = worldprovider; - } else if (this.q != null && this.q.h() == -1) { - this.m = new WorldProviderHell(); + this.worldProvider = worldprovider; + } else if (this.worldData != null && this.worldData.h() == -1) { + this.worldProvider = new WorldProviderHell(); } else { - this.m = new WorldProvider(); + this.worldProvider = new WorldProvider(); } boolean flag = false; - if (this.q == null) { - this.q = new WorldData(i, s); + if (this.worldData == null) { + this.worldData = new WorldData(i, s); flag = true; } else { - this.q.a(s); + this.worldData.a(s); } - this.m.a(this); - this.o = this.b(); + this.worldProvider.a(this); + this.chunkProvider = this.b(); if (flag) { this.c(); } @@ -91,24 +91,24 @@ public class World implements IBlockAccess { } protected IChunkProvider b() { - IChunkLoader ichunkloader = this.p.a(this.m); + IChunkLoader ichunkloader = this.p.a(this.worldProvider); - return new ChunkProviderLoadOrGenerate(this, ichunkloader, this.m.c()); + return new ChunkProviderLoadOrGenerate(this, ichunkloader, this.worldProvider.c()); } protected void c() { - this.r = true; + this.isLoading = true; int i = 0; byte b0 = 64; int j; - for (j = 0; !this.m.a(i, j); j += this.k.nextInt(64) - this.k.nextInt(64)) { - i += this.k.nextInt(64) - this.k.nextInt(64); + for (j = 0; !this.worldProvider.a(i, j); j += this.random.nextInt(64) - this.random.nextInt(64)) { + i += this.random.nextInt(64) - this.random.nextInt(64); } - this.q.a(i, b0, j); - this.r = false; + this.worldData.setSpawn(i, b0, j); + this.isLoading = false; } public int a(int i, int j) { @@ -121,8 +121,8 @@ public class World implements IBlockAccess { return this.getTypeId(i, k, j); } - public void a(boolean flag, IProgressUpdate iprogressupdate) { - if (this.o.b()) { + public void save(boolean flag, IProgressUpdate iprogressupdate) { + if (this.chunkProvider.b()) { if (iprogressupdate != null) { iprogressupdate.a("Saving level"); } @@ -132,25 +132,25 @@ public class World implements IBlockAccess { iprogressupdate.b("Saving chunks"); } - this.o.a(flag, iprogressupdate); + this.chunkProvider.saveChunks(flag, iprogressupdate); } } private void t() { this.j(); - this.p.a(this.q, this.d); + this.p.a(this.worldData, this.players); } public int getTypeId(int i, int j, int k) { - return i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000 ? (j < 0 ? 0 : (j >= 128 ? 0 : this.c(i >> 4, k >> 4).a(i & 15, j, k & 15))) : 0; + return i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000 ? (j < 0 ? 0 : (j >= 128 ? 0 : this.getChunkAt(i >> 4, k >> 4).getTypeId(i & 15, j, k & 15))) : 0; } public boolean isEmpty(int i, int j, int k) { return this.getTypeId(i, j, k) == 0; } - public boolean f(int i, int j, int k) { - return j >= 0 && j < 128 ? this.f(i >> 4, k >> 4) : false; + public boolean isLoaded(int i, int j, int k) { + return j >= 0 && j < 128 ? this.isChunkLoaded(i >> 4, k >> 4) : false; } public boolean a(int i, int j, int k, int l) { @@ -168,7 +168,7 @@ public class World implements IBlockAccess { for (int k1 = i; k1 <= l; ++k1) { for (int l1 = k; l1 <= j1; ++l1) { - if (!this.f(k1, l1)) { + if (!this.isChunkLoaded(k1, l1)) { return false; } } @@ -180,12 +180,12 @@ public class World implements IBlockAccess { } } - private boolean f(int i, int j) { - return this.o.a(i, j); + private boolean isChunkLoaded(int i, int j) { + return this.chunkProvider.isChunkLoaded(i, j); } public Chunk b(int i, int j) { - return this.c(i >> 4, j >> 4); + return this.getChunkAt(i >> 4, j >> 4); } // CraftBukkit start @@ -193,13 +193,13 @@ public class World implements IBlockAccess { int lastXAccessed = Integer.MIN_VALUE; int lastZAccessed = Integer.MIN_VALUE; final Object chunkLock = new Object(); - public Chunk c(int i, int j) { + public Chunk getChunkAt(int i, int j) { Chunk result = null; synchronized (chunkLock) { if (lastChunkAccessed == null || lastXAccessed != i || lastZAccessed != j) { lastXAccessed = i; lastZAccessed = j; - lastChunkAccessed = this.o.b(i, j); + lastChunkAccessed = this.chunkProvider.getOrCreateChunk(i, j); } result = lastChunkAccessed; } @@ -207,14 +207,14 @@ public class World implements IBlockAccess { } // CraftBukkit end - public boolean setTypeIdAndData(int i, int j, int k, int l, int i1) { + public boolean setRawTypeIdAndData(int i, int j, int k, int l, int i1) { if (i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000) { if (j < 0) { return false; } else if (j >= 128) { return false; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); return chunk.a(i & 15, j, k & 15, l, i1); } @@ -223,14 +223,14 @@ public class World implements IBlockAccess { } } - public boolean setTypeId(int i, int j, int k, int l) { + public boolean setRawTypeId(int i, int j, int k, int l) { if (i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000) { if (j < 0) { return false; } else if (j >= 128) { return false; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); return chunk.a(i & 15, j, k & 15, l); } @@ -252,31 +252,31 @@ public class World implements IBlockAccess { } else if (j >= 128) { return 0; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); i &= 15; k &= 15; - return chunk.b(i, j, k); + return chunk.getData(i, j, k); } } else { return 0; } } - public void c(int i, int j, int k, int l) { - if (this.d(i, j, k, l)) { - this.f(i, j, k, this.getTypeId(i, j, k)); + public void setData(int i, int j, int k, int l) { + if (this.setRawData(i, j, k, l)) { + this.update(i, j, k, this.getTypeId(i, j, k)); } } - public boolean d(int i, int j, int k, int l) { + public boolean setRawData(int i, int j, int k, int l) { if (i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000) { if (j < 0) { return false; } else if (j >= 128) { return false; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); i &= 15; k &= 15; @@ -288,11 +288,11 @@ public class World implements IBlockAccess { } } - public boolean e(int i, int j, int k, int l) { + public boolean setTypeId(int i, int j, int k, int l) { // Craftbukkit start int old = this.getTypeId(i, j, k); - if (this.setTypeId(i, j, k, l)) { - this.f(i, j, k, l == 0 ? old : l); + if (this.setRawTypeId(i, j, k, l)) { + this.update(i, j, k, l == 0 ? old : l); return true; } else { return false; @@ -300,11 +300,11 @@ public class World implements IBlockAccess { // Craftbukkit end } - public boolean b(int i, int j, int k, int l, int i1) { + public boolean setTypeIdAndData(int i, int j, int k, int l, int i1) { // Craftbukkit start int old = this.getTypeId(i, j, k); - if (this.setTypeIdAndData(i, j, k, l, i1)) { - this.f(i, j, k, l == 0 ? old : l); + if (this.setRawTypeIdAndData(i, j, k, l, i1)) { + this.update(i, j, k, l == 0 ? old : l); return true; } else { return false; @@ -312,15 +312,15 @@ public class World implements IBlockAccess { // Craftbukkit end } - public void g(int i, int j, int k) { + public void notify(int i, int j, int k) { for (int l = 0; l < this.n.size(); ++l) { ((IWorldAccess) this.n.get(l)).a(i, j, k); } } - protected void f(int i, int j, int k, int l) { - this.g(i, j, k); - this.h(i, j, k, l); + protected void update(int i, int j, int k, int l) { + this.notify(i, j, k); + this.applyPhysics(i, j, k, l); } public void g(int i, int j, int k, int l) { @@ -346,7 +346,7 @@ public class World implements IBlockAccess { } } - public void h(int i, int j, int k, int l) { + public void applyPhysics(int i, int j, int k, int l) { this.k(i - 1, j, k, l); this.k(i + 1, j, k, l); this.k(i, j - 1, k, l); @@ -372,16 +372,16 @@ public class World implements IBlockAccess { } // CraftBukkit stop - block.a(this, i, j, k, l); + block.doPhysics(this, i, j, k, l); } } } - public boolean i(int i, int j, int k) { - return this.c(i >> 4, k >> 4).c(i & 15, j, k & 15); + public boolean isChunkLoaded(int i, int j, int k) { + return this.getChunkAt(i >> 4, k >> 4).c(i & 15, j, k & 15); } - public int j(int i, int j, int k) { + public int getLightLevel(int i, int j, int k) { return this.a(i, j, k, true); } @@ -428,7 +428,7 @@ public class World implements IBlockAccess { return l; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); i &= 15; k &= 15; @@ -445,10 +445,10 @@ public class World implements IBlockAccess { return false; } else if (j >= 128) { return true; - } else if (!this.f(i >> 4, k >> 4)) { + } else if (!this.isChunkLoaded(i >> 4, k >> 4)) { return false; } else { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); i &= 15; k &= 15; @@ -459,12 +459,12 @@ public class World implements IBlockAccess { } } - public int d(int i, int j) { + public int getHighestBlockYAt(int i, int j) { if (i >= -32000000 && j >= -32000000 && i < 32000000 && j <= 32000000) { - if (!this.f(i >> 4, j >> 4)) { + if (!this.isChunkLoaded(i >> 4, j >> 4)) { return 0; } else { - Chunk chunk = this.c(i >> 4, j >> 4); + Chunk chunk = this.getChunkAt(i >> 4, j >> 4); return chunk.b(i & 15, j & 15); } @@ -474,8 +474,8 @@ public class World implements IBlockAccess { } public void a(EnumSkyBlock enumskyblock, int i, int j, int k, int l) { - if (!this.m.e || enumskyblock != EnumSkyBlock.SKY) { - if (this.f(i, j, k)) { + if (!this.worldProvider.e || enumskyblock != EnumSkyBlock.SKY) { + if (this.isLoaded(i, j, k)) { if (enumskyblock == EnumSkyBlock.SKY) { if (this.k(i, j, k)) { l = 15; @@ -500,10 +500,10 @@ public class World implements IBlockAccess { int l = i >> 4; int i1 = k >> 4; - if (!this.f(l, i1)) { + if (!this.isChunkLoaded(l, i1)) { return 0; } else { - Chunk chunk = this.c(l, i1); + Chunk chunk = this.getChunkAt(l, i1); return chunk.a(enumskyblock, i & 15, j, k & 15); } @@ -516,8 +516,8 @@ public class World implements IBlockAccess { if (i >= -32000000 && k >= -32000000 && i < 32000000 && k <= 32000000) { if (j >= 0) { if (j < 128) { - if (this.f(i >> 4, k >> 4)) { - Chunk chunk = this.c(i >> 4, k >> 4); + if (this.isChunkLoaded(i >> 4, k >> 4)) { + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); chunk.a(enumskyblock, i & 15, j, k & 15, l); @@ -531,7 +531,7 @@ public class World implements IBlockAccess { } public float l(int i, int j, int k) { - return this.m.f[this.j(i, j, k)]; + return this.worldProvider.f[this.getLightLevel(i, j, k)]; } public boolean d() { @@ -539,18 +539,18 @@ public class World implements IBlockAccess { } public MovingObjectPosition a(Vec3D vec3d, Vec3D vec3d1) { - return this.a(vec3d, vec3d1, false); + return this.rayTrace(vec3d, vec3d1, false); } - public MovingObjectPosition a(Vec3D vec3d, Vec3D vec3d1, boolean flag) { + public MovingObjectPosition rayTrace(Vec3D vec3d, Vec3D vec3d1, boolean flag) { if (!Double.isNaN(vec3d.a) && !Double.isNaN(vec3d.b) && !Double.isNaN(vec3d.c)) { if (!Double.isNaN(vec3d1.a) && !Double.isNaN(vec3d1.b) && !Double.isNaN(vec3d1.c)) { - int i = MathHelper.b(vec3d1.a); - int j = MathHelper.b(vec3d1.b); - int k = MathHelper.b(vec3d1.c); - int l = MathHelper.b(vec3d.a); - int i1 = MathHelper.b(vec3d.b); - int j1 = MathHelper.b(vec3d.c); + int i = MathHelper.floor(vec3d1.a); + int j = MathHelper.floor(vec3d1.b); + int k = MathHelper.floor(vec3d1.c); + int l = MathHelper.floor(vec3d.a); + int i1 = MathHelper.floor(vec3d.b); + int j1 = MathHelper.floor(vec3d.c); int k1 = 200; while (k1-- >= 0) { @@ -644,21 +644,21 @@ public class World implements IBlockAccess { vec3d.c = d2; } - Vec3D vec3d2 = Vec3D.b(vec3d.a, vec3d.b, vec3d.c); + Vec3D vec3d2 = Vec3D.create(vec3d.a, vec3d.b, vec3d.c); - l = (int) (vec3d2.a = (double) MathHelper.b(vec3d.a)); + l = (int) (vec3d2.a = (double) MathHelper.floor(vec3d.a)); if (b0 == 5) { --l; ++vec3d2.a; } - i1 = (int) (vec3d2.b = (double) MathHelper.b(vec3d.b)); + i1 = (int) (vec3d2.b = (double) MathHelper.floor(vec3d.b)); if (b0 == 1) { --i1; ++vec3d2.b; } - j1 = (int) (vec3d2.c = (double) MathHelper.b(vec3d.c)); + j1 = (int) (vec3d2.c = (double) MathHelper.floor(vec3d.c)); if (b0 == 3) { --j1; ++vec3d2.c; @@ -686,13 +686,13 @@ public class World implements IBlockAccess { } } - public void a(Entity entity, String s, float f, float f1) { + public void makeSound(Entity entity, String s, float f, float f1) { for (int i = 0; i < this.n.size(); ++i) { ((IWorldAccess) this.n.get(i)).a(s, entity.locX, entity.locY - (double) entity.height, entity.locZ, f, f1); } } - public void a(double d0, double d1, double d2, String s, float f, float f1) { + public void makeSound(double d0, double d1, double d2, String s, float f, float f1) { for (int i = 0; i < this.n.size(); ++i) { ((IWorldAccess) this.n.get(i)).a(s, d0, d1, d2, f, f1); } @@ -710,9 +710,9 @@ public class World implements IBlockAccess { } } - public boolean a(Entity entity) { - int i = MathHelper.b(entity.locX / 16.0D); - int j = MathHelper.b(entity.locZ / 16.0D); + public boolean addEntity(Entity entity) { + int i = MathHelper.floor(entity.locX / 16.0D); + int j = MathHelper.floor(entity.locZ / 16.0D); boolean flag = false; if (entity instanceof EntityHuman) { @@ -728,18 +728,18 @@ public class World implements IBlockAccess { } // CraftBukkit end - if (!flag && !this.f(i, j)) { + if (!flag && !this.isChunkLoaded(i, j)) { return false; } else { if (entity instanceof EntityHuman) { EntityHuman entityhuman = (EntityHuman) entity; - this.d.add(entityhuman); - this.q(); + this.players.add(entityhuman); + this.everyoneSleeping(); } - this.c(i, j).a(entity); - this.b.add(entity); + this.getChunkAt(i, j).a(entity); + this.entityList.add(entity); this.b(entity); return true; } @@ -757,56 +757,56 @@ public class World implements IBlockAccess { } } - public void d(Entity entity) { + public void kill(Entity entity) { if (entity.passenger != null) { - entity.passenger.b((Entity) null); + entity.passenger.mount((Entity) null); } if (entity.vehicle != null) { - entity.b((Entity) null); + entity.mount((Entity) null); } - entity.D(); + entity.die(); if (entity instanceof EntityHuman) { - this.d.remove((EntityHuman) entity); - this.q(); + this.players.remove((EntityHuman) entity); + this.everyoneSleeping(); } } - public void e(Entity entity) { - entity.D(); + public void removeEntity(Entity entity) { + entity.die(); if (entity instanceof EntityHuman) { - this.d.remove((EntityHuman) entity); - this.q(); + this.players.remove((EntityHuman) entity); + this.everyoneSleeping(); } int i = entity.chunkX; int j = entity.chunkZ; - if (entity.bA && this.f(i, j)) { - this.c(i, j).b(entity); + if (entity.bA && this.isChunkLoaded(i, j)) { + this.getChunkAt(i, j).b(entity); } - this.b.remove(entity); + this.entityList.remove(entity); this.c(entity); } - public void a(IWorldAccess iworldaccess) { + public void addIWorldAccess(IWorldAccess iworldaccess) { this.n.add(iworldaccess); } - public List a(Entity entity, AxisAlignedBB axisalignedbb) { + public List getEntities(Entity entity, AxisAlignedBB axisalignedbb) { this.B.clear(); - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); for (int k1 = i; k1 < j; ++k1) { for (int l1 = i1; l1 < j1; ++l1) { - if (this.f(k1, 64, l1)) { + if (this.isLoaded(k1, 64, l1)) { for (int i2 = k - 1; i2 < l; ++i2) { Block block = Block.byId[this.getTypeId(k1, i2, l1)]; @@ -839,7 +839,7 @@ public class World implements IBlockAccess { public int a(float f) { float f1 = this.b(f); - float f2 = 1.0F - (MathHelper.b(f1 * 3.1415927F * 2.0F) * 2.0F + 0.5F); + float f2 = 1.0F - (MathHelper.cos(f1 * 3.1415927F * 2.0F) * 2.0F + 0.5F); if (f2 < 0.0F) { f2 = 0.0F; @@ -853,7 +853,7 @@ public class World implements IBlockAccess { } public float b(float f) { - return this.m.a(this.q.f(), f); + return this.worldProvider.a(this.worldData.f(), f); } public int e(int i, int j) { @@ -868,7 +868,7 @@ public class World implements IBlockAccess { i &= 15; for (j &= 15; k > 0; --k) { - int l = chunk.a(i, k, j); + int l = chunk.getTypeId(i, k, j); if (l != 0 && (Block.byId[l].material.isSolid() || Block.byId[l].material.isLiquid())) { return k + 1; @@ -887,13 +887,13 @@ public class World implements IBlockAccess { int j1 = this.getTypeId(nextticklistentry.a, nextticklistentry.b, nextticklistentry.c); if (j1 == nextticklistentry.d && j1 > 0) { - Block.byId[j1].a(this, nextticklistentry.a, nextticklistentry.b, nextticklistentry.c, this.k); + Block.byId[j1].a(this, nextticklistentry.a, nextticklistentry.b, nextticklistentry.c, this.random); } } } else { if (this.a(i - b0, j - b0, k - b0, i + b0, j + b0, k + b0)) { if (l > 0) { - nextticklistentry.a((long) i1 + this.q.f()); + nextticklistentry.a((long) i1 + this.worldData.f()); } if (!this.x.contains(nextticklistentry)) { @@ -904,8 +904,8 @@ public class World implements IBlockAccess { } } - public void e() { - this.b.removeAll(this.v); + public void cleanUp() { + this.entityList.removeAll(this.v); int i; Entity entity; @@ -916,8 +916,8 @@ public class World implements IBlockAccess { entity = (Entity) this.v.get(i); j = entity.chunkX; k = entity.chunkZ; - if (entity.bA && this.f(j, k)) { - this.c(j, k).b(entity); + if (entity.bA && this.isChunkLoaded(j, k)) { + this.getChunkAt(j, k).b(entity); } } @@ -927,8 +927,8 @@ public class World implements IBlockAccess { this.v.clear(); - for (i = 0; i < this.b.size(); ++i) { - entity = (Entity) this.b.get(i); + for (i = 0; i < this.entityList.size(); ++i) { + entity = (Entity) this.entityList.get(i); if (entity.vehicle != null) { if (!entity.vehicle.dead && entity.vehicle.passenger == entity) { continue; @@ -939,17 +939,17 @@ public class World implements IBlockAccess { } if (!entity.dead) { - this.f(entity); + this.playerJoinedWorld(entity); } if (entity.dead) { j = entity.chunkX; k = entity.chunkZ; - if (entity.bA && this.f(j, k)) { - this.c(j, k).b(entity); + if (entity.bA && this.isChunkLoaded(j, k)) { + this.getChunkAt(j, k).b(entity); } - this.b.remove(i--); + this.entityList.remove(i--); this.c(entity); } } @@ -961,13 +961,13 @@ public class World implements IBlockAccess { } } - public void f(Entity entity) { - this.a(entity, true); + public void playerJoinedWorld(Entity entity) { + this.entityJoinedWorld(entity, true); } - public void a(Entity entity, boolean flag) { - int i = MathHelper.b(entity.locX); - int j = MathHelper.b(entity.locZ); + public void entityJoinedWorld(Entity entity, boolean flag) { + int i = MathHelper.floor(entity.locX); + int j = MathHelper.floor(entity.locZ); byte b0 = 32; if (!flag || this.a(i - b0, 0, j - b0, i + b0, 128, j + b0)) { @@ -1004,18 +1004,18 @@ public class World implements IBlockAccess { entity.yaw = entity.lastYaw; } - int k = MathHelper.b(entity.locX / 16.0D); - int l = MathHelper.b(entity.locY / 16.0D); - int i1 = MathHelper.b(entity.locZ / 16.0D); + int k = MathHelper.floor(entity.locX / 16.0D); + int l = MathHelper.floor(entity.locY / 16.0D); + int i1 = MathHelper.floor(entity.locZ / 16.0D); if (!entity.bA || entity.chunkX != k || entity.bC != l || entity.chunkZ != i1) { - if (entity.bA && this.f(entity.chunkX, entity.chunkZ)) { - this.c(entity.chunkX, entity.chunkZ).a(entity, entity.bC); + if (entity.bA && this.isChunkLoaded(entity.chunkX, entity.chunkZ)) { + this.getChunkAt(entity.chunkX, entity.chunkZ).a(entity, entity.bC); } - if (this.f(k, i1)) { + if (this.isChunkLoaded(k, i1)) { entity.bA = true; - this.c(k, i1).a(entity); + this.getChunkAt(k, i1).a(entity); } else { entity.bA = false; } @@ -1023,7 +1023,7 @@ public class World implements IBlockAccess { if (flag && entity.bA && entity.passenger != null) { if (!entity.passenger.dead && entity.passenger.vehicle == entity) { - this.f(entity.passenger); + this.playerJoinedWorld(entity.passenger); } else { entity.passenger.vehicle = null; entity.passenger = null; @@ -1032,7 +1032,7 @@ public class World implements IBlockAccess { } } - public boolean a(AxisAlignedBB axisalignedbb) { + public boolean containsEntity(AxisAlignedBB axisalignedbb) { List list = this.b((Entity) null, axisalignedbb); for (int i = 0; i < list.size(); ++i) { @@ -1047,12 +1047,12 @@ public class World implements IBlockAccess { } public boolean b(AxisAlignedBB axisalignedbb) { - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); if (axisalignedbb.a < 0.0D) { --i; @@ -1082,12 +1082,12 @@ public class World implements IBlockAccess { } public boolean c(AxisAlignedBB axisalignedbb) { - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); if (this.a(i, k, i1, j, l, j1)) { for (int k1 = i; k1 < j; ++k1) { @@ -1107,18 +1107,18 @@ public class World implements IBlockAccess { } public boolean a(AxisAlignedBB axisalignedbb, Material material, Entity entity) { - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); if (!this.a(i, k, i1, j, l, j1)) { return false; } else { boolean flag = false; - Vec3D vec3d = Vec3D.b(0.0D, 0.0D, 0.0D); + Vec3D vec3d = Vec3D.create(0.0D, 0.0D, 0.0D); for (int k1 = i; k1 < j; ++k1) { for (int l1 = k; l1 < l; ++l1) { @@ -1151,12 +1151,12 @@ public class World implements IBlockAccess { } public boolean a(AxisAlignedBB axisalignedbb, Material material) { - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); for (int k1 = i; k1 < j; ++k1) { for (int l1 = k; l1 < l; ++l1) { @@ -1174,12 +1174,12 @@ public class World implements IBlockAccess { } public boolean b(AxisAlignedBB axisalignedbb, Material material) { - int i = MathHelper.b(axisalignedbb.a); - int j = MathHelper.b(axisalignedbb.d + 1.0D); - int k = MathHelper.b(axisalignedbb.b); - int l = MathHelper.b(axisalignedbb.e + 1.0D); - int i1 = MathHelper.b(axisalignedbb.c); - int j1 = MathHelper.b(axisalignedbb.f + 1.0D); + int i = MathHelper.floor(axisalignedbb.a); + int j = MathHelper.floor(axisalignedbb.d + 1.0D); + int k = MathHelper.floor(axisalignedbb.b); + int l = MathHelper.floor(axisalignedbb.e + 1.0D); + int i1 = MathHelper.floor(axisalignedbb.c); + int j1 = MathHelper.floor(axisalignedbb.f + 1.0D); for (int k1 = i; k1 < j; ++k1) { for (int l1 = k; l1 < l; ++l1) { @@ -1206,10 +1206,10 @@ public class World implements IBlockAccess { } public Explosion a(Entity entity, double d0, double d1, double d2, float f) { - return this.a(entity, d0, d1, d2, f, false); + return this.createExplosion(entity, d0, d1, d2, f, false); } - public Explosion a(Entity entity, double d0, double d1, double d2, float f, boolean flag) { + public Explosion createExplosion(Entity entity, double d0, double d1, double d2, float f, boolean flag) { Explosion explosion = new Explosion(this, entity, d0, d1, d2, f); explosion.a = flag; @@ -1232,7 +1232,7 @@ public class World implements IBlockAccess { double d4 = axisalignedbb.b + (axisalignedbb.e - axisalignedbb.b) * (double) f1; double d5 = axisalignedbb.c + (axisalignedbb.f - axisalignedbb.c) * (double) f2; - if (this.a(Vec3D.b(d3, d4, d5), vec3d) == null) { + if (this.a(Vec3D.create(d3, d4, d5), vec3d) == null) { ++i; } @@ -1245,13 +1245,13 @@ public class World implements IBlockAccess { } public TileEntity getTileEntity(int i, int j, int k) { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); return chunk != null ? chunk.d(i & 15, j, k & 15) : null; } public void setTileEntity(int i, int j, int k, TileEntity tileentity) { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); if (chunk != null) { chunk.a(i & 15, j, k & 15, tileentity); @@ -1259,7 +1259,7 @@ public class World implements IBlockAccess { } public void n(int i, int j, int k) { - Chunk chunk = this.c(i >> 4, k >> 4); + Chunk chunk = this.getChunkAt(i >> 4, k >> 4); if (chunk != null) { chunk.e(i & 15, j, k & 15); @@ -1272,17 +1272,17 @@ public class World implements IBlockAccess { return block == null ? false : block.a(); } - public boolean f() { + public boolean doLighting() { if (this.C >= 50) { return false; } else { ++this.C; + boolean flag; + try { int i = 500; - boolean flag; - while (this.u.size() > 0) { --i; if (i <= 0) { @@ -1294,10 +1294,11 @@ public class World implements IBlockAccess { } flag = false; - return flag; } finally { --this.C; } + + return flag; } } @@ -1306,7 +1307,7 @@ public class World implements IBlockAccess { } public void a(EnumSkyBlock enumskyblock, int i, int j, int k, int l, int i1, int j1, boolean flag) { - if (!this.m.e || enumskyblock != EnumSkyBlock.SKY) { + if (!this.worldProvider.e || enumskyblock != EnumSkyBlock.SKY) { ++s; if (s == 50) { --s; @@ -1314,7 +1315,7 @@ public class World implements IBlockAccess { int k1 = (l + i) / 2; int l1 = (j1 + k) / 2; - if (!this.f(k1, 64, l1)) { + if (!this.isLoaded(k1, 64, l1)) { --s; } else if (!this.b(k1, l1).g()) { int i2 = this.u.size(); @@ -1357,35 +1358,35 @@ public class World implements IBlockAccess { } } - public void a(boolean flag, boolean flag1) { - this.D = flag; - this.E = flag1; + public void setSpawnFlags(boolean flag, boolean flag1) { + this.allowMonsters = flag; + this.allowAnimals = flag1; } - public void h() { + public void doTick() { long i; - if (this.s()) { + if (this.everyoneDeeplySleeping()) { boolean flag = false; - if (this.D && this.j >= 1) { - flag = SpawnerCreature.a(this, this.d); + if (this.allowMonsters && this.spawnMonsters >= 1) { + flag = SpawnerCreature.a(this, this.players); } if (!flag) { - i = this.q.f() + 24000L; - this.q.a(i - i % 24000L); + i = this.worldData.f() + 24000L; + this.worldData.a(i - i % 24000L); this.r(); } } // CraftBukkit start -- Only call spawner if we have players online and the world allows for mobs or animals - if ((this.D || this.E) && (this instanceof WorldServer && ((WorldServer) this).getServer().getHandle().b.size() > 0)) { - SpawnerCreature.a(this, this.D, this.E); + if ((this.allowMonsters || this.allowAnimals) && (this instanceof WorldServer && ((WorldServer) this).getServer().getHandle().players.size() > 0)) { + SpawnerCreature.spawnEntities(this, this.allowMonsters, this.allowAnimals); } // CraftBukkit end - this.o.a(); + this.chunkProvider.unloadChunks(); int j = this.a(1.0F); if (j != this.e) { @@ -1396,12 +1397,12 @@ public class World implements IBlockAccess { } } - i = this.q.f() + 1L; + i = this.worldData.f() + 1L; if (i % (long) this.i == 0L) { - this.a(false, (IProgressUpdate) null); + this.save(false, (IProgressUpdate) null); } - this.q.a(i); + this.worldData.a(i); this.a(false); this.i(); } @@ -1414,11 +1415,11 @@ public class World implements IBlockAccess { int k; int l; - for (int i1 = 0; i1 < this.d.size(); ++i1) { - EntityHuman entityhuman = (EntityHuman) this.d.get(i1); + for (int i1 = 0; i1 < this.players.size(); ++i1) { + EntityHuman entityhuman = (EntityHuman) this.players.get(i1); - i = MathHelper.b(entityhuman.locX / 16.0D); - j = MathHelper.b(entityhuman.locZ / 16.0D); + i = MathHelper.floor(entityhuman.locX / 16.0D); + j = MathHelper.floor(entityhuman.locZ / 16.0D); byte b0 = 9; for (k = -b0; k <= b0; ++k) { @@ -1437,9 +1438,9 @@ public class World implements IBlockAccess { while (iterator.hasNext()) { ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) iterator.next(); - i = chunkcoordintpair.a * 16; - j = chunkcoordintpair.b * 16; - Chunk chunk = this.c(chunkcoordintpair.a, chunkcoordintpair.b); + i = chunkcoordintpair.x * 16; + j = chunkcoordintpair.z * 16; + Chunk chunk = this.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z); int j1; int k1; int l1; @@ -1450,15 +1451,15 @@ public class World implements IBlockAccess { l = k & 15; j1 = k >> 8 & 15; k1 = k >> 16 & 127; - l1 = chunk.a(l, k1, j1); + l1 = chunk.getTypeId(l, k1, j1); l += i; j1 += j; - if (l1 == 0 && this.j(l, k1, j1) <= this.k.nextInt(8) && this.a(EnumSkyBlock.SKY, l, k1, j1) <= 0) { + if (l1 == 0 && this.getLightLevel(l, k1, j1) <= this.random.nextInt(8) && this.a(EnumSkyBlock.SKY, l, k1, j1) <= 0) { EntityHuman entityhuman1 = this.a((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D, 8.0D); if (entityhuman1 != null && entityhuman1.d((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D) > 4.0D) { - this.a((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D, "ambient.cave.cave", 0.7F, 0.8F + this.k.nextFloat() * 0.2F); - this.G = this.k.nextInt(12000) + 6000; + this.makeSound((double) l + 0.5D, (double) k1 + 0.5D, (double) j1 + 0.5D, "ambient.cave.cave", 0.7F, 0.8F + this.random.nextFloat() * 0.2F); + this.G = this.random.nextInt(12000) + 6000; } } } @@ -1472,7 +1473,7 @@ public class World implements IBlockAccess { int i2 = chunk.b[j1 << 11 | k1 << 7 | l1] & 255; if (Block.n[i2]) { - Block.byId[i2].a(this, j1 + i, l1, k1 + j, this.k); + Block.byId[i2].a(this, j1 + i, l1, k1 + j, this.random); } } } @@ -1491,7 +1492,7 @@ public class World implements IBlockAccess { for (int j = 0; j < i; ++j) { NextTickListEntry nextticklistentry = (NextTickListEntry) this.w.first(); - if (!flag && nextticklistentry.e > this.q.f()) { + if (!flag && nextticklistentry.e > this.worldData.f()) { break; } @@ -1503,7 +1504,7 @@ public class World implements IBlockAccess { int k = this.getTypeId(nextticklistentry.a, nextticklistentry.b, nextticklistentry.c); if (k == nextticklistentry.d && k > 0) { - Block.byId[k].a(this, nextticklistentry.a, nextticklistentry.b, nextticklistentry.c, this.k); + Block.byId[k].a(this, nextticklistentry.a, nextticklistentry.b, nextticklistentry.c, this.random); } } } @@ -1514,15 +1515,15 @@ public class World implements IBlockAccess { public List b(Entity entity, AxisAlignedBB axisalignedbb) { this.H.clear(); - int i = MathHelper.b((axisalignedbb.a - 2.0D) / 16.0D); - int j = MathHelper.b((axisalignedbb.d + 2.0D) / 16.0D); - int k = MathHelper.b((axisalignedbb.c - 2.0D) / 16.0D); - int l = MathHelper.b((axisalignedbb.f + 2.0D) / 16.0D); + int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D); + int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D); + int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D); + int l = MathHelper.floor((axisalignedbb.f + 2.0D) / 16.0D); for (int i1 = i; i1 <= j; ++i1) { for (int j1 = k; j1 <= l; ++j1) { - if (this.f(i1, j1)) { - this.c(i1, j1).a(entity, axisalignedbb, this.H); + if (this.isChunkLoaded(i1, j1)) { + this.getChunkAt(i1, j1).a(entity, axisalignedbb, this.H); } } } @@ -1531,16 +1532,16 @@ public class World implements IBlockAccess { } public List a(Class oclass, AxisAlignedBB axisalignedbb) { - int i = MathHelper.b((axisalignedbb.a - 2.0D) / 16.0D); - int j = MathHelper.b((axisalignedbb.d + 2.0D) / 16.0D); - int k = MathHelper.b((axisalignedbb.c - 2.0D) / 16.0D); - int l = MathHelper.b((axisalignedbb.f + 2.0D) / 16.0D); + int i = MathHelper.floor((axisalignedbb.a - 2.0D) / 16.0D); + int j = MathHelper.floor((axisalignedbb.d + 2.0D) / 16.0D); + int k = MathHelper.floor((axisalignedbb.c - 2.0D) / 16.0D); + int l = MathHelper.floor((axisalignedbb.f + 2.0D) / 16.0D); ArrayList arraylist = new ArrayList(); for (int i1 = i; i1 <= j; ++i1) { for (int j1 = k; j1 <= l; ++j1) { - if (this.f(i1, j1)) { - this.c(i1, j1).a(oclass, axisalignedbb, arraylist); + if (this.isChunkLoaded(i1, j1)) { + this.getChunkAt(i1, j1).a(oclass, axisalignedbb, arraylist); } } } @@ -1549,7 +1550,7 @@ public class World implements IBlockAccess { } public void b(int i, int j, int k, TileEntity tileentity) { - if (this.f(i, j, k)) { + if (this.isLoaded(i, j, k)) { this.b(i, k).f(); } @@ -1561,8 +1562,8 @@ public class World implements IBlockAccess { public int a(Class oclass) { int i = 0; - for (int j = 0; j < this.b.size(); ++j) { - Entity entity = (Entity) this.b.get(j); + for (int j = 0; j < this.entityList.size(); ++j) { + Entity entity = (Entity) this.entityList.get(j); if (oclass.isAssignableFrom(entity.getClass())) { ++i; @@ -1585,7 +1586,7 @@ public class World implements IBlockAccess { } } - this.b.add(entity); + this.entityList.add(entity); // CraftBukkit end this.b((Entity) list.get(i)); } @@ -1606,9 +1607,9 @@ public class World implements IBlockAccess { } // CraftBukkit start - We dont want to allow the user to override the bounding box check - boolean defaultReturn = axisalignedbb != null && !this.a(axisalignedbb) ? false : (block != Block.WATER && block != Block.STATIONARY_WATER && block != Block.LAVA && block != Block.STATIONARY_LAVA && block != Block.FIRE && block != Block.SNOW ? i > 0 && block == null && block1.a(this, j, k, l) : true); + boolean defaultReturn = axisalignedbb != null && !this.containsEntity(axisalignedbb) ? false : (block != Block.WATER && block != Block.STATIONARY_WATER && block != Block.LAVA && block != Block.STATIONARY_LAVA && block != Block.FIRE && block != Block.SNOW ? i > 0 && block == null && block1.canPlace(this, j, k, l) : true); - if (axisalignedbb != null && !this.a(axisalignedbb)) { + if (axisalignedbb != null && !this.containsEntity(axisalignedbb)) { return false; } @@ -1619,10 +1620,10 @@ public class World implements IBlockAccess { // CraftBukkit end } - public PathEntity a(Entity entity, Entity entity1, float f) { - int i = MathHelper.b(entity.locX); - int j = MathHelper.b(entity.locY); - int k = MathHelper.b(entity.locZ); + public PathEntity findPath(Entity entity, Entity entity1, float f) { + int i = MathHelper.floor(entity.locX); + int j = MathHelper.floor(entity.locY); + int k = MathHelper.floor(entity.locZ); int l = (int) (f + 16.0F); int i1 = i - l; int j1 = j - l; @@ -1636,9 +1637,9 @@ public class World implements IBlockAccess { } public PathEntity a(Entity entity, int i, int j, int k, float f) { - int l = MathHelper.b(entity.locX); - int i1 = MathHelper.b(entity.locY); - int j1 = MathHelper.b(entity.locZ); + int l = MathHelper.floor(entity.locX); + int i1 = MathHelper.floor(entity.locY); + int j1 = MathHelper.floor(entity.locZ); int k1 = (int) (f + 8.0F); int l1 = l - k1; int i2 = i1 - k1; @@ -1651,28 +1652,28 @@ public class World implements IBlockAccess { return (new Pathfinder(chunkcache)).a(entity, i, j, k, f); } - public boolean i(int i, int j, int k, int l) { + public boolean isBlockFacePowered(int i, int j, int k, int l) { int i1 = this.getTypeId(i, j, k); return i1 == 0 ? false : Block.byId[i1].c(this, i, j, k, l); } - public boolean o(int i, int j, int k) { - return this.i(i, j - 1, k, 0) ? true : (this.i(i, j + 1, k, 1) ? true : (this.i(i, j, k - 1, 2) ? true : (this.i(i, j, k + 1, 3) ? true : (this.i(i - 1, j, k, 4) ? true : this.i(i + 1, j, k, 5))))); + public boolean isBlockPowered(int i, int j, int k) { + return this.isBlockFacePowered(i, j - 1, k, 0) ? true : (this.isBlockFacePowered(i, j + 1, k, 1) ? true : (this.isBlockFacePowered(i, j, k - 1, 2) ? true : (this.isBlockFacePowered(i, j, k + 1, 3) ? true : (this.isBlockFacePowered(i - 1, j, k, 4) ? true : this.isBlockFacePowered(i + 1, j, k, 5))))); } - public boolean j(int i, int j, int k, int l) { + public boolean isBlockFaceIndirectlyPowered(int i, int j, int k, int l) { if (this.d(i, j, k)) { - return this.o(i, j, k); + return this.isBlockPowered(i, j, k); } else { int i1 = this.getTypeId(i, j, k); - return i1 == 0 ? false : Block.byId[i1].b((IBlockAccess) this, i, j, k, l); + return i1 == 0 ? false : Block.byId[i1].b(this, i, j, k, l); } } - public boolean p(int i, int j, int k) { - return this.j(i, j - 1, k, 0) ? true : (this.j(i, j + 1, k, 1) ? true : (this.j(i, j, k - 1, 2) ? true : (this.j(i, j, k + 1, 3) ? true : (this.j(i - 1, j, k, 4) ? true : this.j(i + 1, j, k, 5))))); + public boolean isBlockIndirectlyPowered(int i, int j, int k) { + return this.isBlockFaceIndirectlyPowered(i, j - 1, k, 0) ? true : (this.isBlockFaceIndirectlyPowered(i, j + 1, k, 1) ? true : (this.isBlockFaceIndirectlyPowered(i, j, k - 1, 2) ? true : (this.isBlockFaceIndirectlyPowered(i, j, k + 1, 3) ? true : (this.isBlockFaceIndirectlyPowered(i - 1, j, k, 4) ? true : this.isBlockFaceIndirectlyPowered(i + 1, j, k, 5))))); } public EntityHuman a(Entity entity, double d0) { @@ -1683,8 +1684,8 @@ public class World implements IBlockAccess { double d4 = -1.0D; EntityHuman entityhuman = null; - for (int i = 0; i < this.d.size(); ++i) { - EntityHuman entityhuman1 = (EntityHuman) this.d.get(i); + for (int i = 0; i < this.players.size(); ++i) { + EntityHuman entityhuman1 = (EntityHuman) this.players.get(i); double d5 = entityhuman1.d(d0, d1, d2); if ((d3 < 0.0D || d5 < d3 * d3) && (d4 == -1.0D || d5 < d4)) { @@ -1697,9 +1698,9 @@ public class World implements IBlockAccess { } public EntityHuman a(String s) { - for (int i = 0; i < this.d.size(); ++i) { - if (s.equals(((EntityHuman) this.d.get(i)).name)) { - return (EntityHuman) this.d.get(i); + for (int i = 0; i < this.players.size(); ++i) { + if (s.equals(((EntityHuman) this.players.get(i)).name)) { + return (EntityHuman) this.players.get(i); } } @@ -1748,7 +1749,7 @@ public class World implements IBlockAccess { k4 = 16; } - k2 = this.c(j3, i4).a(abyte, k3, l2, j4, l3, i3, k4, k2); + k2 = this.getChunkAt(j3, i4).a(abyte, k3, l2, j4, l3, i3, k4, k2); } } @@ -1759,20 +1760,20 @@ public class World implements IBlockAccess { this.p.b(); } - public void a(long i) { - this.q.a(i); + public void setTime(long i) { + this.worldData.a(i); } - public long k() { - return this.q.b(); + public long getSeed() { + return this.worldData.b(); } - public long l() { - return this.q.f(); + public long getTime() { + return this.worldData.f(); } - public ChunkCoordinates m() { - return new ChunkCoordinates(this.q.c(), this.q.d(), this.q.e()); + public ChunkCoordinates getSpawn() { + return new ChunkCoordinates(this.worldData.c(), this.worldData.d(), this.worldData.e()); } public boolean a(EntityHuman entityhuman, int i, int j, int k) { @@ -1782,7 +1783,7 @@ public class World implements IBlockAccess { public void a(Entity entity, byte b0) {} public IChunkProvider n() { - return this.o; + return this.chunkProvider; } public void d(int i, int j, int k, int l, int i1) { @@ -1798,19 +1799,18 @@ public class World implements IBlockAccess { } public WorldData p() { - return this.q; + return this.worldData; } - public void q() { - this.A = !this.d.isEmpty(); - Iterator iterator = this.d.iterator(); + public void everyoneSleeping() { + this.A = !this.players.isEmpty(); + Iterator iterator = this.players.iterator(); while (iterator.hasNext()) { EntityHuman entityhuman = (EntityHuman) iterator.next(); - // CraftBukkit start - if (!entityhuman.F() && !entityhuman.fauxSleeping) { - // CraftBukkit end + // CraftBukkit + if (!entityhuman.isSleeping() && !entityhuman.fauxSleeping) { this.A = false; break; } @@ -1822,31 +1822,31 @@ public class World implements IBlockAccess { // Called by CraftPlayer.setPermanentSleeping() public void checkSleepStatus() { if (!isStatic) { - q(); + everyoneSleeping(); } } // CraftBukkit end protected void r() { this.A = false; - Iterator iterator = this.d.iterator(); + Iterator iterator = this.players.iterator(); while (iterator.hasNext()) { EntityHuman entityhuman = (EntityHuman) iterator.next(); - if (entityhuman.F()) { + if (entityhuman.isSleeping()) { entityhuman.a(false, false, false); } } } - public boolean s() { + public boolean everyoneDeeplySleeping() { if (this.A && !this.isStatic) { - Iterator iterator = this.d.iterator(); - + Iterator iterator = this.players.iterator(); + // CraftBukkit start boolean foundActualSleepers = false; - + // This allows us to assume that some people are in bed // but not really, allowing time to pass in spite of AFKers @@ -1858,10 +1858,10 @@ public class World implements IBlockAccess { } entityhuman = (EntityHuman) iterator.next(); - if (entityhuman.G()) { + if (entityhuman.isDeeplySleeping()) { foundActualSleepers = true; } - } while (entityhuman.G() || entityhuman.fauxSleeping); + } while (entityhuman.isDeeplySleeping() || entityhuman.fauxSleeping); // CraftBukkit end return false; diff --git a/src/main/java/net/minecraft/server/WorldData.java b/src/main/java/net/minecraft/server/WorldData.java index c63bb1948c..233a3974a9 100644 --- a/src/main/java/net/minecraft/server/WorldData.java +++ b/src/main/java/net/minecraft/server/WorldData.java @@ -13,7 +13,7 @@ public class WorldData { private long g; private NBTTagCompound h; private int i; - public String j; // CraftBukkit private->public + public String name; // CraftBukkit private->public private int k; public WorldData(NBTTagCompound nbttagcompound) { @@ -24,9 +24,9 @@ public class WorldData { this.e = nbttagcompound.f("Time"); this.f = nbttagcompound.f("LastPlayed"); this.g = nbttagcompound.f("SizeOnDisk"); - this.j = nbttagcompound.i("LevelName"); + this.name = nbttagcompound.getString("LevelName"); this.k = nbttagcompound.e("version"); - if (nbttagcompound.b("Player")) { + if (nbttagcompound.hasKey("Player")) { this.h = nbttagcompound.k("Player"); this.i = this.h.e("Dimension"); } @@ -34,7 +34,7 @@ public class WorldData { public WorldData(long i, String s) { this.a = i; - this.j = s; + this.name = s; } public WorldData(WorldData worlddata) { @@ -47,7 +47,7 @@ public class WorldData { this.g = worlddata.g; this.h = worlddata.h; this.i = worlddata.i; - this.j = worlddata.j; + this.name = worlddata.name; this.k = worlddata.k; } @@ -84,7 +84,7 @@ public class WorldData { nbttagcompound.a("Time", this.e); nbttagcompound.a("SizeOnDisk", this.g); nbttagcompound.a("LastPlayed", System.currentTimeMillis()); - nbttagcompound.a("LevelName", this.j); + nbttagcompound.setString("LevelName", this.name); nbttagcompound.a("version", this.k); if (nbttagcompound1 != null) { nbttagcompound.a("Player", nbttagcompound1); @@ -127,14 +127,14 @@ public class WorldData { this.g = i; } - public void a(int i, int j, int k) { + public void setSpawn(int i, int j, int k) { this.b = i; this.c = j; this.d = k; } public void a(String s) { - this.j = s; + this.name = s; } public int i() { diff --git a/src/main/java/net/minecraft/server/WorldGenBigTree.java b/src/main/java/net/minecraft/server/WorldGenBigTree.java index 693b371da1..5ef40e15c3 100644 --- a/src/main/java/net/minecraft/server/WorldGenBigTree.java +++ b/src/main/java/net/minecraft/server/WorldGenBigTree.java @@ -121,7 +121,7 @@ public class WorldGenBigTree extends WorldGenerator { if (l1 != 0 && l1 != 18) { ++k1; } else { - this.c.setTypeId(aint1[0], aint1[1], aint1[2], l); + this.c.setRawTypeId(aint1[0], aint1[1], aint1[2], l); ++k1; } } @@ -194,10 +194,10 @@ public class WorldGenBigTree extends WorldGenerator { int j = 0; for (int k = aint2[b1] + b4; j != k; j += b4) { - aint3[b1] = MathHelper.b((double) (aint[b1] + j) + 0.5D); - aint3[b2] = MathHelper.b((double) aint[b2] + (double) j * d0 + 0.5D); - aint3[b3] = MathHelper.b((double) aint[b3] + (double) j * d1 + 0.5D); - this.c.setTypeId(aint3[0], aint3[1], aint3[2], i); + aint3[b1] = MathHelper.floor((double) (aint[b1] + j) + 0.5D); + aint3[b2] = MathHelper.floor((double) aint[b2] + (double) j * d0 + 0.5D); + aint3[b3] = MathHelper.floor((double) aint[b3] + (double) j * d1 + 0.5D); + this.c.setRawTypeId(aint3[0], aint3[1], aint3[2], i); } } } diff --git a/src/main/java/net/minecraft/server/WorldGenForest.java b/src/main/java/net/minecraft/server/WorldGenForest.java index 3cccabbbd9..288aaefd74 100644 --- a/src/main/java/net/minecraft/server/WorldGenForest.java +++ b/src/main/java/net/minecraft/server/WorldGenForest.java @@ -59,7 +59,7 @@ public class WorldGenForest extends WorldGenerator { } else { i1 = world.getTypeId(i, j - 1, k); if ((i1 == Block.GRASS.id || i1 == Block.DIRT.id) && j < 128 - l - 1) { - world.setTypeId(i, j - 1, k, Block.DIRT.id); + world.setRawTypeId(i, j - 1, k, Block.DIRT.id); int i2; @@ -74,7 +74,7 @@ public class WorldGenForest extends WorldGenerator { int l2 = k2 - k; if ((Math.abs(j2) != k1 || Math.abs(l2) != k1 || random.nextInt(2) != 0 && j1 != 0) && !Block.o[world.getTypeId(l1, i2, k2)]) { - world.setTypeIdAndData(l1, i2, k2, Block.LEAVES.id, 2); + world.setRawTypeIdAndData(l1, i2, k2, Block.LEAVES.id, 2); } } } @@ -83,7 +83,7 @@ public class WorldGenForest extends WorldGenerator { for (i2 = 0; i2 < l; ++i2) { j1 = world.getTypeId(i, j + i2, k); if (j1 == 0 || j1 == Block.LEAVES.id) { - world.setTypeIdAndData(i, j + i2, k, Block.LOG.id, 2); + world.setRawTypeIdAndData(i, j + i2, k, Block.LOG.id, 2); } } diff --git a/src/main/java/net/minecraft/server/WorldGenTaiga1.java b/src/main/java/net/minecraft/server/WorldGenTaiga1.java index cf03e450db..972f806db0 100644 --- a/src/main/java/net/minecraft/server/WorldGenTaiga1.java +++ b/src/main/java/net/minecraft/server/WorldGenTaiga1.java @@ -61,7 +61,7 @@ public class WorldGenTaiga1 extends WorldGenerator { } else { l1 = world.getTypeId(i, j - 1, k); if ((l1 == Block.GRASS.id || l1 == Block.DIRT.id) && j < 128 - l - 1) { - world.setTypeId(i, j - 1, k, Block.DIRT.id); + world.setRawTypeId(i, j - 1, k, Block.DIRT.id); l2 = 0; for (i2 = j + l; i2 >= j + i1; --i2) { @@ -72,7 +72,7 @@ public class WorldGenTaiga1 extends WorldGenerator { int j3 = i3 - k; if ((Math.abs(k2) != l2 || Math.abs(j3) != l2 || l2 <= 0) && !Block.o[world.getTypeId(j2, i2, i3)]) { - world.setTypeIdAndData(j2, i2, i3, Block.LEAVES.id, 1); + world.setRawTypeIdAndData(j2, i2, i3, Block.LEAVES.id, 1); } } } @@ -87,7 +87,7 @@ public class WorldGenTaiga1 extends WorldGenerator { for (i2 = 0; i2 < l - 1; ++i2) { j2 = world.getTypeId(i, j + i2, k); if (j2 == 0 || j2 == Block.LEAVES.id) { - world.setTypeIdAndData(i, j + i2, k, Block.LOG.id, 1); + world.setRawTypeIdAndData(i, j + i2, k, Block.LOG.id, 1); } } diff --git a/src/main/java/net/minecraft/server/WorldGenTaiga2.java b/src/main/java/net/minecraft/server/WorldGenTaiga2.java index 7af3f12dc2..6bee4ce478 100644 --- a/src/main/java/net/minecraft/server/WorldGenTaiga2.java +++ b/src/main/java/net/minecraft/server/WorldGenTaiga2.java @@ -60,7 +60,7 @@ public class WorldGenTaiga2 extends WorldGenerator { } else { l1 = world.getTypeId(i, j - 1, k); if ((l1 == Block.GRASS.id || l1 == Block.DIRT.id) && j < 128 - l - 1) { - world.setTypeId(i, j - 1, k, Block.DIRT.id); + world.setRawTypeId(i, j - 1, k, Block.DIRT.id); k2 = random.nextInt(2); i2 = 1; byte b0 = 0; @@ -78,7 +78,7 @@ public class WorldGenTaiga2 extends WorldGenerator { int i4 = l3 - k; if ((Math.abs(k3) != k2 || Math.abs(i4) != k2 || k2 <= 0) && !Block.o[world.getTypeId(i3, j3, l3)]) { - world.setTypeIdAndData(i3, j3, l3, Block.LEAVES.id, 1); + world.setRawTypeIdAndData(i3, j3, l3, Block.LEAVES.id, 1); } } } @@ -100,7 +100,7 @@ public class WorldGenTaiga2 extends WorldGenerator { for (j3 = 0; j3 < l - j2; ++j3) { i3 = world.getTypeId(i, j + j3, k); if (i3 == 0 || i3 == Block.LEAVES.id) { - world.setTypeIdAndData(i, j + j3, k, Block.LOG.id, 1); + world.setRawTypeIdAndData(i, j + j3, k, Block.LOG.id, 1); } } diff --git a/src/main/java/net/minecraft/server/WorldGenTrees.java b/src/main/java/net/minecraft/server/WorldGenTrees.java index 93142cdb27..c5baf5c28d 100644 --- a/src/main/java/net/minecraft/server/WorldGenTrees.java +++ b/src/main/java/net/minecraft/server/WorldGenTrees.java @@ -59,7 +59,7 @@ public class WorldGenTrees extends WorldGenerator { } else { i1 = world.getTypeId(i, j - 1, k); if ((i1 == Block.GRASS.id || i1 == Block.DIRT.id) && j < 128 - l - 1) { - world.setTypeId(i, j - 1, k, Block.DIRT.id); + world.setRawTypeId(i, j - 1, k, Block.DIRT.id); int i2; @@ -74,7 +74,7 @@ public class WorldGenTrees extends WorldGenerator { int l2 = k2 - k; if ((Math.abs(j2) != k1 || Math.abs(l2) != k1 || random.nextInt(2) != 0 && j1 != 0) && !Block.o[world.getTypeId(l1, i2, k2)]) { - world.setTypeId(l1, i2, k2, Block.LEAVES.id); + world.setRawTypeId(l1, i2, k2, Block.LEAVES.id); } } } @@ -83,7 +83,7 @@ public class WorldGenTrees extends WorldGenerator { for (i2 = 0; i2 < l; ++i2) { j1 = world.getTypeId(i, j + i2, k); if (j1 == 0 || j1 == Block.LEAVES.id) { - world.setTypeId(i, j + i2, k, Block.LOG.id); + world.setRawTypeId(i, j + i2, k, Block.LOG.id); } } diff --git a/src/main/java/net/minecraft/server/WorldManager.java b/src/main/java/net/minecraft/server/WorldManager.java index d96c1699c1..f565a9f939 100644 --- a/src/main/java/net/minecraft/server/WorldManager.java +++ b/src/main/java/net/minecraft/server/WorldManager.java @@ -2,23 +2,23 @@ package net.minecraft.server; public class WorldManager implements IWorldAccess { - private MinecraftServer a; + private MinecraftServer server; public WorldServer world; // CraftBukkit // CraftBukkit - changed signature public WorldManager(MinecraftServer minecraftserver, WorldServer world) { - this.a = minecraftserver; + this.server = minecraftserver; this.world = world; // CraftBukkit } public void a(String s, double d0, double d1, double d2, double d3, double d4, double d5) {} public void a(Entity entity) { - this.a.k.a(entity); + this.server.tracker.a(entity); } public void b(Entity entity) { - this.a.k.b(entity); + this.server.tracker.untrackEntity(entity); } public void a(String s, double d0, double d1, double d2, float f, float f1) {} @@ -28,13 +28,13 @@ public class WorldManager implements IWorldAccess { public void a() {} public void a(int i, int j, int k) { - // CraftBukkit - this.a.f.a(i, j, k, world); + // CraftBukkit -- add world argument + this.server.serverConfigurationManager.flagDirty(i, j, k, world); } public void a(String s, int i, int j, int k) {} public void a(int i, int j, int k, TileEntity tileentity) { - this.a.f.a(i, j, k, tileentity); + this.server.serverConfigurationManager.a(i, j, k, tileentity); } } diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java index 5172d506b9..805a42ea01 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -12,59 +12,59 @@ import org.bukkit.craftbukkit.CraftWorld; public class WorldServer extends World implements BlockChangeDelegate { // CraftBukkit end - public ChunkProviderServer u; - public boolean v = false; + public ChunkProviderServer chunkProviderServer; + public boolean weirdIsOpCache = false; public boolean w; - public final MinecraftServer x; // CraftBukkit - private -> public final + public final MinecraftServer server; // CraftBukkit - private -> public final private EntityList y = new EntityList(); public PlayerManager manager; // CraftBukkit public WorldServer(MinecraftServer minecraftserver, IDataManager idatamanager, String s, int i, long j) { super(idatamanager, s, j, WorldProvider.a(i)); - this.x = minecraftserver; + this.server = minecraftserver; // CraftBukkit start - this.server = minecraftserver.server; + this.cserver = minecraftserver.server; this.world = new CraftWorld(this); this.manager = new PlayerManager(minecraftserver, this); } private final CraftWorld world; - private final CraftServer server; + private final CraftServer cserver; public CraftWorld getWorld() { return world; } public CraftServer getServer() { - return server; + return cserver; } // CraftBukkit end - public void a(Entity entity, boolean flag) { + public void entityJoinedWorld(Entity entity, boolean flag) { // CraftBukkit start -- We prevent spawning in general, so this butchering is not needed - //if (!this.x.m && (entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal)) { - // entity.D(); + //if (!this.server.spawnAnimals && (entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal)) { + // entity.die(); //} // CraftBukkit end if (entity.passenger == null || !(entity.passenger instanceof EntityHuman)) { - super.a(entity, flag); + super.entityJoinedWorld(entity, flag); } } - public void b(Entity entity, boolean flag) { - super.a(entity, flag); + public void vehicleEnteredWorld(Entity entity, boolean flag) { + super.entityJoinedWorld(entity, flag); } protected IChunkProvider b() { - IChunkLoader ichunkloader = this.p.a(this.m); + IChunkLoader ichunkloader = this.p.a(this.worldProvider); - this.u = new ChunkProviderServer(this, ichunkloader, this.m.c()); - return this.u; + this.chunkProviderServer = new ChunkProviderServer(this, ichunkloader, this.worldProvider.c()); + return this.chunkProviderServer; } - public List d(int i, int j, int k, int l, int i1, int j1) { + public List getTileEntities(int i, int j, int k, int l, int i1, int j1) { ArrayList arraylist = new ArrayList(); for (int k1 = 0; k1 < this.c.size(); ++k1) { @@ -79,15 +79,15 @@ public class WorldServer extends World implements BlockChangeDelegate { } public boolean a(EntityHuman entityhuman, int i, int j, int k) { - int l = (int) MathHelper.e((float) (i - this.q.c())); - int i1 = (int) MathHelper.e((float) (k - this.q.e())); + int l = (int) MathHelper.abs((float) (i - this.worldData.c())); + int i1 = (int) MathHelper.abs((float) (k - this.worldData.e())); if (l > i1) { i1 = l; } // CraftBukkit -- Configurable spawn protection - return i1 > this.x.spawnProtection || this.x.f.h(entityhuman.name); + return i1 > this.server.spawnProtection || this.server.serverConfigurationManager.isOp(entityhuman.name); } protected void b(Entity entity) { @@ -100,18 +100,18 @@ public class WorldServer extends World implements BlockChangeDelegate { this.y.d(entity.id); } - public Entity a(int i) { + public Entity getEntity(int i) { return (Entity) this.y.a(i); } public void a(Entity entity, byte b0) { Packet38EntityStatus packet38entitystatus = new Packet38EntityStatus(entity.id, b0); - this.x.k.b(entity, packet38entitystatus); + this.server.tracker.b(entity, packet38entitystatus); } - public Explosion a(Entity entity, double d0, double d1, double d2, float f, boolean flag) { - Explosion explosion = super.a(entity, d0, d1, d2, f, flag); + public Explosion createExplosion(Entity entity, double d0, double d1, double d2, float f, boolean flag) { + Explosion explosion = super.createExplosion(entity, d0, d1, d2, f, flag); // CraftBukkit start if (explosion.wasCanceled) { @@ -119,16 +119,16 @@ public class WorldServer extends World implements BlockChangeDelegate { } // CraftBukkit end - this.x.f.a(d0, d1, d2, 64.0D, new Packet60Explosion(d0, d1, d2, f, explosion.g)); + this.server.serverConfigurationManager.a(d0, d1, d2, 64.0D, new Packet60Explosion(d0, d1, d2, f, explosion.g)); return explosion; } public void d(int i, int j, int k, int l, int i1) { super.d(i, j, k, l, i1); - this.x.f.a((double) i, (double) j, (double) k, 64.0D, new Packet54PlayNoteBlock(i, j, k, l, i1)); + this.server.serverConfigurationManager.a((double) i, (double) j, (double) k, 64.0D, new Packet54PlayNoteBlock(i, j, k, l, i1)); } - public void t() { + public void saveLevel() { this.p.e(); } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java index fb85405482..06df2b14e9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java @@ -20,12 +20,12 @@ public class CraftChunk implements Chunk { private WorldServer worldServer; private int x; private int z; - + public CraftChunk(net.minecraft.server.Chunk chunk) { this.weakChunk = new WeakReference(chunk); - worldServer = (WorldServer) getHandle().d; - x = getHandle().j; - z = getHandle().k; + worldServer = (WorldServer) getHandle().world; + x = getHandle().x; + z = getHandle().z; } public World getWorld() { @@ -35,7 +35,7 @@ public class CraftChunk implements Chunk { public net.minecraft.server.Chunk getHandle() { net.minecraft.server.Chunk c = weakChunk.get(); if (c == null) { - c = worldServer.c(x,z); + c = worldServer.getChunkAt(x,z); weakChunk = new WeakReference(c); } return c; @@ -77,12 +77,12 @@ public class CraftChunk implements Chunk { int count = 0, index = 0; net.minecraft.server.Chunk chunk = getHandle(); for (int i = 0; i < 8; i++) { - count += chunk.m[i].size(); + count += chunk.entitySlices[i].size(); } Entity[] entities = new Entity[count]; for (int i = 0; i < 8; i++) { - for (Object obj: chunk.m[i].toArray()) { + for (Object obj: chunk.entitySlices[i].toArray()) { if (!(obj instanceof net.minecraft.server.Entity)) continue; entities[index++] = ((net.minecraft.server.Entity) obj).getBukkitEntity(); } @@ -93,11 +93,11 @@ public class CraftChunk implements Chunk { public BlockState[] getTileEntities() { int index = 0; net.minecraft.server.Chunk chunk = getHandle(); - BlockState[] entities = new BlockState[chunk.l.size()]; - for (Object obj : chunk.l.keySet().toArray()) { - if (!(obj instanceof ChunkPosition)) continue; + BlockState[] entities = new BlockState[chunk.tileEntities.size()]; + for (Object obj : chunk.tileEntities.keySet().toArray()) { + if (!(obj instanceof ChunkPosition)) continue; ChunkPosition position = (ChunkPosition) obj; - entities[index++] = worldServer.getWorld().getBlockAt(position.a + (chunk.j << 4), position.b, position.c + (chunk.k << 4)).getState(); + entities[index++] = worldServer.getWorld().getBlockAt(position.x + (chunk.x << 4), position.y, position.z + (chunk.z << 4)).getState(); } return entities; } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index e15a39c5e6..90fbb28c89 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -127,11 +127,11 @@ public final class CraftServer implements Server { } public Player[] getOnlinePlayers() { - List online = server.b; + List online = server.players; Player[] players = new Player[online.size()]; for (int i = 0; i < players.length; i++) { - players[i] = online.get(i).a.getPlayer(); + players[i] = online.get(i).netServerHandler.getPlayer(); } return players; @@ -167,7 +167,7 @@ public final class CraftServer implements Server { } public Player getPlayer(final EntityPlayer entity) { - return entity.a.getPlayer(); + return entity.netServerHandler.getPlayer(); } public List matchPlayer(String partialName) { @@ -192,7 +192,7 @@ public final class CraftServer implements Server { } public int getMaxPlayers() { - return server.e; + return server.maxPlayers; } // NOTE: These are dependent on the corrisponding call in MinecraftServer @@ -215,11 +215,11 @@ public final class CraftServer implements Server { // NOTE: Temporary calls through to server.properies until its replaced private String getConfigString(String variable, String defaultValue) { - return this.console.d.a(variable, defaultValue); + return this.console.propertyManager.getString(variable, defaultValue); } private int getConfigInt(String variable, int defaultValue) { - return this.console.d.a(variable, defaultValue); + return this.console.propertyManager.getInt(variable, defaultValue); } // End Temporary calls @@ -243,10 +243,10 @@ public final class CraftServer implements Server { // NOTE: Should only be called from MinecraftServer.b() public boolean dispatchCommand(CommandSender sender, ServerCommand serverCommand) { - if ( commandMap.dispatch(sender, serverCommand.a) ) { + if ( commandMap.dispatch(sender, serverCommand.command) ) { return true; } - return console.o.a(serverCommand); + return console.consoleCommandHandler.handle(serverCommand); } public boolean dispatchCommand(CommandSender sender, String commandLine) { @@ -260,24 +260,24 @@ public final class CraftServer implements Server { } // See if the server can process this command - return console.o.a(new ServerCommand(commandLine, new CommandListener(sender))); + return console.consoleCommandHandler.handle(new ServerCommand(commandLine, new CommandListener(sender))); } public void reload() { PropertyManager config = new PropertyManager(console.options); - console.d = config; + console.propertyManager = config; - boolean animals = config.a("spawn-monsters", console.m); - boolean monsters = config.a("spawn-monsters", console.worlds.get(0).j > 0); + boolean animals = config.getBoolean("spawn-monsters", console.spawnAnimals); + boolean monsters = config.getBoolean("spawn-monsters", console.worlds.get(0).spawnMonsters > 0); - console.l = config.a("online-mode", console.l); - console.m = config.a("spawn-animals", console.m); - console.n = config.a("pvp", console.n); + console.onlineMode = config.getBoolean("online-mode", console.onlineMode); + console.spawnAnimals = config.getBoolean("spawn-animals", console.spawnAnimals); + console.pvpMode = config.getBoolean("pvp", console.pvpMode); for (WorldServer world : console.worlds) { - world.j = monsters ? 1 : 0; - world.a(monsters, animals); + world.spawnMonsters = monsters ? 1 : 0; + world.setSpawnFlags(monsters, animals); } pluginManager.clearPlugins(); @@ -307,17 +307,17 @@ public final class CraftServer implements Server { } Convertable converter = new WorldLoaderServer(folder); - if (converter.a(name)) { + if (converter.isConvertable(name)) { getLogger().info("Converting world '" + name + "'"); - converter.a(name, new ConvertProgressUpdater(console)); + converter.convert(name, new ConvertProgressUpdater(console)); } WorldServer internal = new WorldServer(console, new ServerNBTManager(new File("."), name, true), name, environment == World.Environment.NETHER ? -1 : 0, seed); - internal.a(new WorldManager(console, internal)); - internal.j = 1; - internal.a(true, true); - console.f.a(internal); + internal.addIWorldAccess(new WorldManager(console, internal)); + internal.spawnMonsters = 1; + internal.setSpawnFlags(true, true); + console.serverConfigurationManager.setPlayerFileData(internal); console.worlds.add(internal); short short1 = 196; @@ -338,10 +338,10 @@ public final class CraftServer implements Server { i = l; } - ChunkCoordinates chunkcoordinates = internal.m(); - internal.u.c(chunkcoordinates.a + j >> 4, chunkcoordinates.c + k >> 4); + ChunkCoordinates chunkcoordinates = internal.getSpawn(); + internal.chunkProviderServer.getChunkAt(chunkcoordinates.x + j >> 4, chunkcoordinates.z + k >> 4); - while (internal.f()) { + while (internal.doLighting()) { ; } } @@ -363,7 +363,7 @@ public final class CraftServer implements Server { } public Logger getLogger() { - return MinecraftServer.a; + return MinecraftServer.log; } public ConsoleReader getReader() { @@ -381,7 +381,7 @@ public final class CraftServer implements Server { } public void savePlayers() { - server.d(); + server.savePlayers(); } public void configureDbConfig(ServerConfig config) { @@ -410,11 +410,11 @@ public final class CraftServer implements Server { this.prefix = parts[parts.length-1]; } - public void b(String msg) { + public void sendMessage(String msg) { this.commandSender.sendMessage(msg); } - public String c() { + public String getName() { return this.prefix; } } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index b487b6d531..162a2bfb99 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -34,9 +34,9 @@ public class CraftWorld implements World { public CraftWorld(WorldServer world) { this.world = world; this.server = world.getServer(); - this.provider = world.u; + this.provider = world.chunkProviderServer; - if (world.m instanceof WorldProviderHell) { + if (world.worldProvider instanceof WorldProviderHell) { environment = Environment.NETHER; } else { environment = Environment.NORMAL; @@ -63,18 +63,18 @@ public class CraftWorld implements World { } public int getHighestBlockYAt(int x, int z) { - return world.d(x, z); + return world.getHighestBlockYAt(x, z); } public Location getSpawnLocation() { - ChunkCoordinates spawn = world.m(); - return new Location(this, spawn.a, spawn.b, spawn.c); + ChunkCoordinates spawn = world.getSpawn(); + return new Location(this, spawn.x, spawn.y, spawn.z); } - + public boolean setSpawnLocation(int x, int y, int z) { try { Location previousLocation = getSpawnLocation(); - world.q.a(x, y, z); + world.worldData.setSpawn(x, y, z); // Notify anyone who's listening. SpawnChangeEvent event = new SpawnChangeEvent(this, previousLocation); @@ -85,9 +85,9 @@ public class CraftWorld implements World { return false; } } - + public Chunk getChunkAt(int x, int z) { - return this.provider.c(x, z).bukkitChunk; + return this.provider.getChunkAt(x,z).bukkitChunk; } public Chunk getChunkAt(Block block) { @@ -95,11 +95,11 @@ public class CraftWorld implements World { } public boolean isChunkLoaded(int x, int z) { - return provider.a( x, z ); + return provider.isChunkLoaded( x, z ); } public Chunk[] getLoadedChunks() { - Object[] chunks = provider.e.values().toArray(); + Object[] chunks = provider.chunks.values().toArray(); org.bukkit.Chunk[] craftChunks = new CraftChunk[chunks.length]; for (int i = 0; i < chunks.length; i++) { @@ -131,7 +131,7 @@ public class CraftWorld implements World { return false; } - provider.d(x, z); + provider.queueUnload(x, z); return true; } @@ -140,34 +140,34 @@ public class CraftWorld implements World { if (safe && isChunkInUse(x, z)) { return false; } - - net.minecraft.server.Chunk chunk = provider.b(x, z); - + + net.minecraft.server.Chunk chunk = provider.getOrCreateChunk(x, z); + if (save) { - chunk.e(); - provider.b(chunk); - provider.a(chunk); + chunk.removeEntities(); + provider.saveChunk(chunk); + provider.saveChunkNOP(chunk); } - preserveChunk((CraftChunk)chunk.bukkitChunk); - provider.a.remove(x, z); - provider.e.remove(x, z); - provider.f.remove(chunk); - + preserveChunk((CraftChunk) chunk.bukkitChunk); + provider.unloadQueue.remove(x, z); + provider.chunks.remove(x, z); + provider.chunkList.remove(chunk); + return true; } public boolean regenerateChunk(int x, int z) { unloadChunk(x, z, false, false); - provider.a.remove(x, z); + provider.unloadQueue.remove(x, z); net.minecraft.server.Chunk chunk = null; - if (provider.c == null) { - chunk = provider.b; + if (provider.chunkProvider == null) { + chunk = provider.emptyChunk; } else { - chunk = provider.c.b(x, z); + chunk = provider.chunkProvider.getOrCreateChunk(x, z); } chunkLoadPostProcess(chunk, x, z); @@ -191,9 +191,9 @@ public class CraftWorld implements World { // The server will compress the chunk and send it to all clients for(int xx = px; xx < (px + 16); xx++) { - world.g(xx, 0, pz); + world.notify(xx, 0, pz); } - world.g(px, 127, pz+15); + world.notify(px, 127, pz+15); return true; } @@ -201,10 +201,10 @@ public class CraftWorld implements World { public boolean isChunkInUse(int x, int z) { Player[] players = server.getOnlinePlayers(); - + for (Player player : players) { Location loc = player.getLocation(); - if (loc.getWorld() != provider.g.getWorld()) { + if (loc.getWorld() != provider.world.getWorld()) { continue; } @@ -221,14 +221,14 @@ public class CraftWorld implements World { public boolean loadChunk(int x, int z, boolean generate) { if (generate) { // Use the default variant of loadChunk when generate == true. - return provider.c(x, z) != null; + return provider.getChunkAt(x, z) != null; } - provider.a.remove(x, z); - net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) provider.e.get(x, z); + provider.unloadQueue.remove(x, z); + net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) provider.chunks.get(x, z); if (chunk == null) { - chunk = provider.e(x, z); + chunk = provider.loadChunk(x, z); chunkLoadPostProcess(chunk, x, z); } @@ -237,26 +237,26 @@ public class CraftWorld implements World { private void chunkLoadPostProcess(net.minecraft.server.Chunk chunk, int x, int z) { if (chunk != null) { - provider.e.put(x, z, chunk); - provider.f.add(chunk); + provider.chunks.put(x, z, chunk); + provider.chunkList.add(chunk); - chunk.c(); - chunk.d(); + chunk.loadNOP(); + chunk.addEntities(); - if (!chunk.n && provider.a(x + 1, z + 1) && provider.a(x, z + 1) && provider.a(x + 1, z)) { - provider.a(provider, x, z); + if (!chunk.done && provider.isChunkLoaded(x + 1, z + 1) && provider.isChunkLoaded(x, z + 1) && provider.isChunkLoaded(x + 1, z)) { + provider.getChunkAt(provider, x, z); } - if (provider.a(x - 1, z) && !provider.b(x - 1, z).n && provider.a(x - 1, z + 1) && provider.a(x, z + 1) && provider.a(x - 1, z)) { - provider.a(provider, x - 1, z); + if (provider.isChunkLoaded(x - 1, z) && !provider.getOrCreateChunk(x - 1, z).done && provider.isChunkLoaded(x - 1, z + 1) && provider.isChunkLoaded(x, z + 1) && provider.isChunkLoaded(x - 1, z)) { + provider.getChunkAt(provider, x - 1, z); } - if (provider.a(x, z - 1) && !provider.b(x, z - 1).n && provider.a(x + 1, z - 1) && provider.a(x, z - 1) && provider.a(x + 1, z)) { - provider.a(provider, x, z - 1); + if (provider.isChunkLoaded(x, z - 1) && !provider.getOrCreateChunk(x, z - 1).done && provider.isChunkLoaded(x + 1, z - 1) && provider.isChunkLoaded(x, z - 1) && provider.isChunkLoaded(x + 1, z)) { + provider.getChunkAt(provider, x, z - 1); } - if (provider.a(x - 1, z - 1) && !provider.b(x - 1, z - 1).n && provider.a(x - 1, z - 1) && provider.a(x, z - 1) && provider.a(x - 1, z)) { - provider.a(provider, x - 1, z - 1); + if (provider.isChunkLoaded(x - 1, z - 1) && !provider.getOrCreateChunk(x - 1, z - 1).done && provider.isChunkLoaded(x - 1, z - 1) && provider.isChunkLoaded(x, z - 1) && provider.isChunkLoaded(x - 1, z)) { + provider.getChunkAt(provider, x - 1, z - 1); } } } @@ -281,17 +281,17 @@ public class CraftWorld implements World { item.getDurability() ); EntityItem entity = new EntityItem(world, loc.getX(), loc.getY(), loc.getZ(), stack); - entity.c = 10; - world.a(entity); + entity.pickupDelay = 10; + world.addEntity(entity); //TODO this is inconsistent with how Entity.getBukkitEntity() works. // However, this entity is not at the moment backed by a server entity class so it may be left. return new CraftItem(world.getServer(), entity); } public org.bukkit.entity.Item dropItemNaturally(Location loc, ItemStack item) { - double xs = world.k.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; - double ys = world.k.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; - double zs = world.k.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; + double xs = world.random.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; + double ys = world.random.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; + double zs = world.random.nextFloat() * 0.7F + (1.0F - 0.7F) * 0.5D; loc = loc.clone(); loc.setX(loc.getX() + xs); loc.setY(loc.getY() + ys); @@ -301,8 +301,8 @@ public class CraftWorld implements World { public Arrow spawnArrow(Location loc, Vector velocity, float speed, float spread) { EntityArrow arrow = new EntityArrow(world); - arrow.c(loc.getX(), loc.getY(), loc.getZ(), 0, 0); - world.a(arrow); + arrow.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), 0, 0); + world.addEntity(arrow); arrow.a(velocity.getX(), velocity.getY(), velocity.getZ(), speed, spread); return (Arrow) arrow.getBukkitEntity(); } @@ -315,7 +315,7 @@ public class CraftWorld implements World { loc.getZ(), CraftMinecart.Type.Minecart.getId() ); - world.a(minecart); + world.addEntity(minecart); return (Minecart) minecart.getBukkitEntity(); } @@ -327,7 +327,7 @@ public class CraftWorld implements World { loc.getZ(), CraftMinecart.Type.StorageMinecart.getId() ); - world.a(minecart); + world.addEntity(minecart); return (StorageMinecart) minecart.getBukkitEntity(); } @@ -339,13 +339,13 @@ public class CraftWorld implements World { loc.getZ(), CraftMinecart.Type.PoweredMinecart.getId() ); - world.a(minecart); + world.addEntity(minecart); return (PoweredMinecart) minecart.getBukkitEntity(); } public Boat spawnBoat(Location loc) { EntityBoat boat = new EntityBoat(world, loc.getX(), loc.getY(), loc.getZ()); - world.a(boat); + world.addEntity(boat); return (Boat) boat.getBukkitEntity(); } @@ -353,9 +353,9 @@ public class CraftWorld implements World { LivingEntity creature; try { EntityLiving entityCreature = (EntityLiving) EntityTypes.a(creatureType.getName(), world); - entityCreature.a(loc.getX(), loc.getY(), loc.getZ()); + entityCreature.setPosition(loc.getX(), loc.getY(), loc.getZ()); creature = (LivingEntity) CraftEntity.getEntity(server, entityCreature); - world.a(entityCreature); + world.addEntity(entityCreature); } catch (Exception e) { // if we fail, for any reason, return null. creature = null; @@ -388,11 +388,11 @@ public class CraftWorld implements World { } public String getName() { - return world.q.j; + return world.worldData.name; } public long getId() { - return world.q.b(); + return world.worldData.b(); } @Override @@ -413,16 +413,16 @@ public class CraftWorld implements World { } public long getFullTime() { - return world.l(); + return world.getTime(); } public void setFullTime(long time) { - world.a(time); + world.setTime(time); //Forces the client to update to the new time immediately for (Player p: getPlayers()) { CraftPlayer cp = (CraftPlayer) p; - cp.getHandle().a.b(new Packet4UpdateTime(time)); + cp.getHandle().netServerHandler.sendPacket(new Packet4UpdateTime(time)); } } @@ -485,7 +485,7 @@ public class CraftWorld implements World { public List getEntities() { List list = new ArrayList(); - for (Object o: world.b) { + for (Object o: world.entityList) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity)o; Entity bukkitEntity = mcEnt.getBukkitEntity(); @@ -503,7 +503,7 @@ public class CraftWorld implements World { public List getLivingEntities() { List list = new ArrayList(); - for (Object o: world.b) { + for (Object o: world.entityList) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity)o; Entity bukkitEntity = mcEnt.getBukkitEntity(); @@ -521,11 +521,11 @@ public class CraftWorld implements World { public List getPlayers() { List list = new ArrayList(); - for (Object o : world.b) { + for (Object o : world.entityList) { if (o instanceof net.minecraft.server.Entity) { net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity)o; Entity bukkitEntity = mcEnt.getBukkitEntity(); - + if ((bukkitEntity != null) && (bukkitEntity instanceof Player)) { list.add((Player)bukkitEntity); } @@ -537,9 +537,9 @@ public class CraftWorld implements World { public void save() { // Writes level.dat - world.t(); + world.saveLevel(); // Saves all chunks/regions - world.o.a(true, null); + world.chunkProvider.saveChunks(true, null); } } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java index cde4dc93f4..6891aedd45 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java @@ -88,14 +88,14 @@ public class CraftBlock implements Block { * @param data New block specific metadata */ public void setData(final byte data) { - chunk.getHandle().d.c(x, y, z, data); + chunk.getHandle().world.setData(x, y, z, data); } public void setData(final byte data, boolean applyPhysics) { if (applyPhysics) { - chunk.getHandle().d.c(x, y, z, data); + chunk.getHandle().world.setData(x, y, z, data); } else { - chunk.getHandle().d.d(x, y, z, data); + chunk.getHandle().world.setRawData(x, y, z, data); } } @@ -105,7 +105,7 @@ public class CraftBlock implements Block { * @return block specific metadata */ public byte getData() { - return (byte) chunk.getHandle().b(this.x & 0xF, this.y & 0x7F, this.z & 0xF); + return (byte) chunk.getHandle().getData(this.x & 0xF, this.y & 0x7F, this.z & 0xF); } /** @@ -124,24 +124,24 @@ public class CraftBlock implements Block { * @return whether the block was changed */ public boolean setTypeId(final int type) { - return chunk.getHandle().d.e(x, y, z, type); + return chunk.getHandle().world.setRawTypeId(x, y, z, type); } - + public boolean setTypeId(final int type, final boolean applyPhysics) { if (applyPhysics) { return setTypeId(type); } else { - return chunk.getHandle().d.setTypeId(x, y, z, type); + return chunk.getHandle().world.setRawTypeId(x, y, z, type); } } public boolean setTypeIdAndData(final int type, final byte data, final boolean applyPhysics) { if (applyPhysics) { - return chunk.getHandle().d.b(x, y, z, type, data); + return chunk.getHandle().world.setTypeIdAndData(x, y, z, type, data); } else { - boolean success = chunk.getHandle().d.setTypeIdAndData(x, y, z, type, data); - if(success) { - chunk.getHandle().d.g(x, y, z); + boolean success = chunk.getHandle().world.setRawTypeIdAndData(x, y, z, type, data); + if (success) { + chunk.getHandle().world.notify(x, y, z); } return success; } @@ -162,7 +162,7 @@ public class CraftBlock implements Block { * @return block type-id */ public int getTypeId() { - return chunk.getHandle().a(this.x & 0xF, this.y & 0x7F, this.z & 0xF); + return chunk.getHandle().getTypeId(this.x & 0xF, this.y & 0x7F, this.z & 0xF); } /** @@ -171,7 +171,7 @@ public class CraftBlock implements Block { * @return light level */ public byte getLightLevel() { - return (byte) chunk.getHandle().d.j(this.x, this.y, this.z); + return (byte) chunk.getHandle().world.getLightLevel(this.x, this.y, this.z); } /** @@ -331,7 +331,7 @@ public class CraftBlock implements Block { } public Biome getBiome() { - BiomeBase base = chunk.getHandle().d.a().a(x, z); + BiomeBase base = chunk.getHandle().world.getWorldChunkManager().getBiome(x, z); if (base == BiomeBase.RAINFOREST) { return Biome.RAINFOREST; @@ -363,11 +363,11 @@ public class CraftBlock implements Block { } public boolean isBlockPowered() { - return chunk.getHandle().d.o(x, y, z); + return chunk.getHandle().world.isBlockPowered(x, y, z); } public boolean isBlockIndirectlyPowered() { - return chunk.getHandle().d.p(x, y, z); + return chunk.getHandle().world.isBlockIndirectlyPowered(x, y, z); } @Override @@ -376,26 +376,26 @@ public class CraftBlock implements Block { } public boolean isBlockFacePowered(BlockFace face) { - return chunk.getHandle().d.i(x, y, z, blockFaceToNotch(face)); + return chunk.getHandle().world.isBlockFacePowered(x, y, z, blockFaceToNotch(face)); } public boolean isBlockFaceIndirectlyPowered(BlockFace face) { - return chunk.getHandle().d.j(x, y, z, blockFaceToNotch(face)); + return chunk.getHandle().world.isBlockFaceIndirectlyPowered(x, y, z, blockFaceToNotch(face)); } - + public int getBlockPower(BlockFace face) { int power = 0; BlockRedstoneWire wire = (BlockRedstoneWire) net.minecraft.server.Block.REDSTONE_WIRE; - net.minecraft.server.World world = chunk.getHandle().d; - if ((face == BlockFace.DOWN || face == BlockFace.SELF) && world.i(x, y - 1, z, 0)) power = wire.f(world, x, y - 1, z, power); - if ((face == BlockFace.UP || face == BlockFace.SELF) && world.i(x, y + 1, z, 1)) power = wire.f(world, x, y + 1, z, power); - if ((face == BlockFace.EAST || face == BlockFace.SELF) && world.i(x, y, z - 1, 2)) power = wire.f(world, x, y, z - 1, power); - if ((face == BlockFace.WEST || face == BlockFace.SELF) && world.i(x, y, z + 1, 3)) power = wire.f(world, x, y, z + 1, power); - if ((face == BlockFace.NORTH || face == BlockFace.SELF) && world.i(x - 1, y, z, 4)) power = wire.f(world, x - 1, y, z, power); - if ((face == BlockFace.SOUTH || face == BlockFace.SELF) && world.i(x + 1, y, z, 5)) power = wire.f(world, x + 1, y, z, power); + net.minecraft.server.World world = chunk.getHandle().world; + if ((face == BlockFace.DOWN || face == BlockFace.SELF) && world.isBlockFacePowered(x, y - 1, z, 0)) power = wire.getPower(world, x, y - 1, z, power); + if ((face == BlockFace.UP || face == BlockFace.SELF) && world.isBlockFacePowered(x, y + 1, z, 1)) power = wire.getPower(world, x, y + 1, z, power); + if ((face == BlockFace.EAST || face == BlockFace.SELF) && world.isBlockFacePowered(x, y, z - 1, 2)) power = wire.getPower(world, x, y, z - 1, power); + if ((face == BlockFace.WEST || face == BlockFace.SELF) && world.isBlockFacePowered(x, y, z + 1, 3)) power = wire.getPower(world, x, y, z + 1, power); + if ((face == BlockFace.NORTH || face == BlockFace.SELF) && world.isBlockFacePowered(x - 1, y, z, 4)) power = wire.getPower(world, x - 1, y, z, power); + if ((face == BlockFace.SOUTH || face == BlockFace.SELF) && world.isBlockFacePowered(x + 1, y, z, 5)) power = wire.getPower(world, x + 1, y, z, power); return power > 0 ? power : (face == BlockFace.SELF ? isBlockIndirectlyPowered() : isBlockFaceIndirectlyPowered(face)) ? 15 : 0; } - + public int getBlockPower() { return getBlockPower(BlockFace.SELF); } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java index c389d3a2f2..5d1c963ea1 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftChest.java @@ -32,7 +32,7 @@ public class CraftChest extends CraftBlockState implements Chest { boolean result = super.update(force); if (result) { - chest.i(); + chest.update(); } return result; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java index 2acab116af..9af5f12f54 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftCreatureSpawner.java @@ -18,15 +18,15 @@ public class CraftCreatureSpawner extends CraftBlockState implements CreatureSpa } public CreatureType getCreatureType() { - return CreatureType.fromName(spawner.h); + return CreatureType.fromName(spawner.mobName); } public void setCreatureType(CreatureType creatureType) { - spawner.h = creatureType.getName(); + spawner.mobName = creatureType.getName(); } public String getCreatureTypeId() { - return spawner.h; + return spawner.mobName; } public void setCreatureTypeId(String creatureType) { @@ -35,15 +35,15 @@ public class CraftCreatureSpawner extends CraftBlockState implements CreatureSpa if (type == null) { return; } - spawner.h = type.getName(); + spawner.mobName = type.getName(); } - + public int getDelay() { - return spawner.a; + return spawner.spawnDelay; } public void setDelay(int delay) { - spawner.a = delay; + spawner.spawnDelay = delay; } } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java index d2f432d83b..4a6410a56f 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftDispenser.java @@ -36,7 +36,7 @@ public class CraftDispenser extends CraftBlockState implements Dispenser { synchronized (block) { if (block.getType() == Material.DISPENSER) { BlockDispenser dispense = (BlockDispenser)net.minecraft.server.Block.DISPENSER; - dispense.b(world.getHandle(), getX(), getY(), getZ(), new Random()); + dispense.dispense(world.getHandle(), getX(), getY(), getZ(), new Random()); return true; } else { return false; @@ -49,7 +49,7 @@ public class CraftDispenser extends CraftBlockState implements Dispenser { boolean result = super.update(force); if (result) { - dispenser.i(); + dispenser.update(); } return result; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java index feb8a84834..f266ece497 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftFurnace.java @@ -32,25 +32,25 @@ public class CraftFurnace extends CraftBlockState implements Furnace { boolean result = super.update(force); if (result) { - furnace.i(); + furnace.update(); } return result; } public short getBurnTime() { - return (short)furnace.a; + return (short)furnace.burnTime; } public void setBurnTime(short burnTime) { - furnace.a = burnTime; + furnace.burnTime = burnTime; } public short getCookTime() { - return (short)furnace.c; + return (short)furnace.cookTime; } public void setCookTime(short cookTime) { - furnace.c = cookTime; + furnace.cookTime = cookTime; } } diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java index ec49c9f930..f2c1615a6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftNoteBlock.java @@ -23,11 +23,11 @@ public class CraftNoteBlock extends CraftBlockState implements NoteBlock { } public byte getNote() { - return note.a; + return note.note; } public void setNote(byte n) { - note.a = n; + note.note = n; } public boolean play() { @@ -35,7 +35,7 @@ public class CraftNoteBlock extends CraftBlockState implements NoteBlock { synchronized (block) { if (block.getType() == Material.NOTE_BLOCK) { - note.a(world.getHandle(), getX(), getY(), getZ()); + note.play(world.getHandle(), getX(), getY(), getZ()); return true; } else { return false; diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java index 5983c3dd5a..c3e9d238bf 100644 --- a/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java +++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSign.java @@ -17,15 +17,15 @@ public class CraftSign extends CraftBlockState implements Sign { } public String[] getLines() { - return sign.a; + return sign.lines; } public String getLine(int index) throws IndexOutOfBoundsException { - return sign.a[index]; + return sign.lines[index]; } public void setLine(int index, String line) throws IndexOutOfBoundsException { - sign.a[index] = line; + sign.lines[index] = line; } @Override @@ -33,7 +33,7 @@ public class CraftSign extends CraftBlockState implements Sign { boolean result = super.update(force); if (result) { - sign.i(); + sign.update(); } return result; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreature.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreature.java index 8749f13153..7066de5838 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftCreature.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftCreature.java @@ -14,18 +14,18 @@ public class CraftCreature extends CraftLivingEntity implements Creature{ public void setTarget(LivingEntity target) { EntityCreature entity = getHandle(); if (target == null) { - entity.d = null; + entity.target = null; } else if (target instanceof CraftLivingEntity) { EntityLiving victim = ((CraftLivingEntity) target).getHandle(); - entity.d = victim; - entity.a = entity.world.a(entity, entity.d, 16.0F); + entity.target = victim; + entity.pathEntity = entity.world.findPath(entity, entity.target, 16.0F); } } public CraftLivingEntity getTarget() { - if (getHandle().d == null) return null; + if (getHandle().target == null) return null; - return (CraftLivingEntity) getHandle().d.getBukkitEntity(); + return (CraftLivingEntity) getHandle().target.getBukkitEntity(); } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index af535ba226..c1e03dc82b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -77,9 +77,9 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { else if (entity instanceof EntityItem) { return new CraftItem( server, (EntityItem) entity); } else if (entity instanceof EntityMinecart) { EntityMinecart mc = (EntityMinecart) entity; - if (mc.d == CraftMinecart.Type.StorageMinecart.getId()) { + if (mc.type == CraftMinecart.Type.StorageMinecart.getId()) { return new CraftStorageMinecart(server, mc); - } else if (mc.d == CraftMinecart.Type.PoweredMinecart.getId()) { + } else if (mc.type == CraftMinecart.Type.PoweredMinecart.getId()) { return new CraftPoweredMinecart(server, mc); } else { return new CraftMinecart(server, mc); @@ -103,7 +103,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { entity.motX = vel.getX(); entity.motY = vel.getY(); entity.motZ = vel.getZ(); - entity.aZ = true; + entity.velocityChanged = true; } public World getWorld() { @@ -112,8 +112,8 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean teleport(Location location) { entity.world = ((CraftWorld)location.getWorld()).getHandle(); - entity.b(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); - // entity.b() throws no event, and so cannot be cancelled + entity.setLocation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); + // entity.setLocation() throws no event, and so cannot be cancelled return true; } @@ -153,7 +153,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public void setFireTicks(int ticks) { entity.fireTicks = ticks; } - + public void remove() { entity.dead = true; } @@ -238,11 +238,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { getHandle().passenger.setPassengerOf(null); return true; } - + public float getFallDistance() { return getHandle().fallDistance; } - + public void setFallDistance(float distance) { getHandle().fallDistance = distance; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java index 86bcce0e35..4bb98b0aaf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java @@ -15,11 +15,11 @@ public class CraftItem extends CraftEntity implements Item { } public ItemStack getItemStack() { - return new CraftItemStack(item.a); + return new CraftItemStack(item.itemStack); } public void setItemStack(ItemStack stack) { - item.a = new net.minecraft.server.ItemStack(stack.getTypeId(), stack.getAmount(), stack.getDurability()); + item.itemStack = new net.minecraft.server.ItemStack(stack.getTypeId(), stack.getAmount(), stack.getDurability()); } @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index 812e82970b..bc1c293feb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -59,14 +59,14 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public Egg throwEgg() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntityEgg egg = new EntityEgg(world, getHandle()); - world.a(egg); + world.addEntity(egg); return (Egg) egg.getBukkitEntity(); } public Snowball throwSnowball() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntitySnowball snowball = new EntitySnowball(world, getHandle()); - world.a(snowball); + world.addEntity(snowball); return (Snowball) snowball.getBukkitEntity(); } @@ -120,7 +120,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public Arrow shootArrow() { net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle(); EntityArrow arrow = new EntityArrow(world, getHandle()); - world.a(arrow); + world.addEntity(arrow); return (Arrow) arrow.getBukkitEntity(); } @@ -167,11 +167,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { } public void damage(int amount) { - entity.a((Entity)null, amount); + entity.damageEntity((Entity) null, amount); } public void damage(int amount, org.bukkit.entity.Entity source) { - entity.a(((CraftEntity)source).getHandle(), amount); + entity.damageEntity(((CraftEntity) source).getHandle(), amount); } public Location getEyeLocation() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecart.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecart.java index cbaa5c90ee..98677b4880 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecart.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMinecart.java @@ -39,11 +39,11 @@ public class CraftMinecart extends CraftVehicle implements Minecart { } public void setDamage(int damage) { - minecart.a = damage; + minecart.damage = damage; } public int getDamage() { - return minecart.a; + return minecart.damage; } public double getMaxSpeed() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 225196e884..16495db381 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -23,7 +23,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public boolean isOp() { - return server.getHandle().h(getName()); + return server.getHandle().isOp(getName()); } public boolean isPlayer() { @@ -31,7 +31,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public boolean isOnline() { - for (Object obj: server.getHandle().b) { + for (Object obj: server.getHandle().players) { EntityPlayer player = (EntityPlayer) obj; if (player.name.equalsIgnoreCase(getName())) { return true; @@ -41,7 +41,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public InetSocketAddress getAddress() { - SocketAddress addr = getHandle().a.b.b(); + SocketAddress addr = getHandle().netServerHandler.networkManager.getSocketAddress(); if (addr instanceof InetSocketAddress) { return (InetSocketAddress) addr; } else { @@ -76,12 +76,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void sendRawMessage(String message) { - getHandle().a.b(new Packet3Chat(message)); + getHandle().netServerHandler.sendPacket(new Packet3Chat(message)); } public void sendMessage(String message) { for (final String line: TextWrapper.wrapText(message)) { - getHandle().a.b(new Packet3Chat(line)); + getHandle().netServerHandler.sendPacket(new Packet3Chat(line)); } } @@ -121,12 +121,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void kickPlayer(String message) { - getHandle().a.a(message == null ? "" : message); + getHandle().netServerHandler.disconnect(message == null ? "" : message); } public void setCompassTarget(Location loc) { // Do not directly assign here, from the packethandler we'll assign it. - getHandle().a.b((Packet) new Packet6SpawnPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); + getHandle().netServerHandler.sendPacket(new Packet6SpawnPosition(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())); } public Location getCompassTarget() { @@ -134,7 +134,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void chat(String msg) { - getHandle().a.chat(msg); + getHandle().netServerHandler.chat(msg); } public boolean performCommand(String command) { @@ -151,10 +151,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { if (oldWorld != newWorld) { - EntityPlayer newEntity = new EntityPlayer(manager.c, newWorld, entity.name, new ItemInWorldManager(newWorld)); + EntityPlayer newEntity = new EntityPlayer(manager.server, newWorld, entity.name, new ItemInWorldManager(newWorld)); newEntity.id = entity.id; - newEntity.a = entity.a; + newEntity.netServerHandler = entity.netServerHandler; newEntity.health = entity.health; newEntity.fireTicks = entity.fireTicks; newEntity.inventory = entity.inventory; @@ -167,22 +167,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player { newEntity.displayName = entity.displayName; newEntity.compassTarget = entity.compassTarget; newEntity.fauxSleeping = entity.fauxSleeping; - newWorld.u.c((int) location.getBlockX() >> 4, (int) location.getBlockZ() >> 4); + newWorld.chunkProviderServer.getChunkAt((int) location.getBlockX() >> 4, (int) location.getBlockZ() >> 4); - teleportSuccess = newEntity.a.teleport(location); + teleportSuccess = newEntity.netServerHandler.teleport(location); if (teleportSuccess) { - manager.c.k.a(entity); - manager.c.k.b(entity); - oldWorld.manager.b(entity); - manager.b.remove(entity); - oldWorld.e(entity); + manager.server.tracker.trackPlayer(entity); + manager.server.tracker.untrackEntity(entity); + oldWorld.manager.removePlayer(entity); + manager.players.remove(entity); + oldWorld.removeEntity(entity); - newWorld.manager.a(newEntity); - newWorld.a(newEntity); - manager.b.add(newEntity); + newWorld.manager.addPlayer(newEntity); + newWorld.addEntity(newEntity); + manager.players.add(newEntity); - entity.a.e = newEntity; + entity.netServerHandler.player = newEntity; this.entity = newEntity; setCompassTarget(getCompassTarget()); @@ -190,33 +190,33 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return teleportSuccess; } else { - return entity.a.teleport(location); + return entity.netServerHandler.teleport(location); } } public void setSneaking(boolean sneak) { - getHandle().e(sneak); + getHandle().setSneak(sneak); } public boolean isSneaking() { - return getHandle().Z(); + return getHandle().isSneaking(); } public void loadData() { - server.getHandle().n.b(getHandle()); + server.getHandle().playerFileData.b(getHandle()); } public void saveData() { - server.getHandle().n.a(getHandle()); + server.getHandle().playerFileData.a(getHandle()); } public void updateInventory() { - getHandle().m(); + getHandle().syncInventory(); } public void setSleepingIgnored(boolean isSleeping) { getHandle().fauxSleeping = isSleeping; - ((CraftWorld)getWorld()).getHandle().checkSleepStatus(); + ((CraftWorld) getWorld()).getHandle().checkSleepStatus(); } public boolean isSleepingIgnored() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPoweredMinecart.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPoweredMinecart.java index bedfe06db0..0ec31c1c4c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPoweredMinecart.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPoweredMinecart.java @@ -10,8 +10,7 @@ import org.bukkit.entity.PoweredMinecart; * * @author sk89q */ -public class CraftPoweredMinecart extends CraftMinecart - implements PoweredMinecart { +public class CraftPoweredMinecart extends CraftMinecart implements PoweredMinecart { public CraftPoweredMinecart(CraftServer server, EntityMinecart entity) { super(server, entity); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java index 5a0e5fa08f..2fe42935d9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSheep.java @@ -22,19 +22,19 @@ public class CraftSheep extends CraftAnimals implements Sheep { } public DyeColor getColor() { - return DyeColor.getByData((byte) getHandle().o()); + return DyeColor.getByData((byte) getHandle().getColor()); } public void setColor(DyeColor color) { - getHandle().a_(color.getData()); + getHandle().setColor(color.getData()); } public boolean isSheared() { - return getHandle().j_(); + return getHandle().isSheared(); } public void setSheared(boolean flag) { - getHandle().a(flag); + getHandle().setSheared(flag); } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java index 3d3cca16a7..104683c8f0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java @@ -25,6 +25,6 @@ public class CraftSlime extends CraftLivingEntity implements Slime { } public void setSize(int size) { - getHandle().e(size); + getHandle().setSize(size); } } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 2983221b1f..736896f6ff 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -46,14 +46,14 @@ import org.bukkit.event.player.PlayerInteractEvent; public class CraftEventFactory { private static boolean canBuild(CraftWorld world, Player player, int x, int z) { WorldServer worldServer = world.getHandle(); - int spawnSize = worldServer.x.spawnProtection; + int spawnSize = worldServer.server.spawnProtection; if (spawnSize <= 0) return true; if (player.isOp()) return true; - ChunkCoordinates chunkcoordinates = worldServer.m(); + ChunkCoordinates chunkcoordinates = worldServer.getSpawn(); - int distanceFromSpawn = (int) Math.max(Math.abs(x - chunkcoordinates.a), Math.abs(z - chunkcoordinates.c)); + int distanceFromSpawn = (int) Math.max(Math.abs(x - chunkcoordinates.x), Math.abs(z - chunkcoordinates.z)); return distanceFromSpawn > spawnSize; } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java index 1f5f9a0968..eee59f9816 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventory.java @@ -19,23 +19,23 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } public int getSize() { - return getInventory().q_(); + return getInventory().getSize(); } public String getName() { - return getInventory().c(); + return getInventory().getName(); } - public ItemStack getItem(int index) { - return new CraftItemStack(getInventory().c_(index)); + public CraftItemStack getItem(int index) { + return new CraftItemStack(getInventory().getItem(index)); } - public ItemStack[] getContents() { - ItemStack[] items = new ItemStack[getSize()]; + public CraftItemStack[] getContents() { + CraftItemStack[] items = new CraftItemStack[getSize()]; net.minecraft.server.ItemStack[] mcItems = getInventory().getContents(); for (int i = 0; i < mcItems.length; i++ ) { - items[i] = mcItems[i] == null ? null : new CraftItemStack(mcItems[i]); + items[i] = new CraftItemStack(mcItems[i]); } return items; @@ -59,12 +59,12 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } public void setItem(int index, ItemStack item) { - getInventory().a(index, (item == null ? null : new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), item.getDurability()))); + getInventory().setItem(index, (item == null ? null : new net.minecraft.server.ItemStack( item.getTypeId(), item.getAmount(), item.getDurability()))); } public boolean contains(int materialId) { for (ItemStack item: getContents()) { - if (item != null && item.getTypeId() == materialId) { + if (item.getTypeId() == materialId) { return true; } } @@ -86,15 +86,15 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } return false; } - + public boolean contains(int materialId, int amount) { int amt = 0; for (ItemStack item: getContents()) { - if (item != null && item.getTypeId() == materialId) { - amt += item.getAmount(); + if (item.getTypeId() == materialId && item.getAmount() >= amount) { + return true; } } - return amt >= amount; + return false; } public boolean contains(Material material, int amount) { @@ -107,13 +107,13 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } int amt = 0; for (ItemStack i: getContents()) { - if (item.equals(i)) { - amt += item.getAmount(); + if (item.equals(i) && item.getAmount() >= amount) { + return true; } } - return amt >= amount; + return false; } - + public HashMap all(int materialId) { HashMap slots = new HashMap(); @@ -312,7 +312,7 @@ public class CraftInventory implements org.bukkit.inventory.Inventory { } private int getMaxItemStack() { - return getInventory().r_(); + return getInventory().getMaxStackSize(); } public void remove(int materialId) { diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java index 88933b4bdf..d721686fc2 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java @@ -19,7 +19,7 @@ public class CraftInventoryPlayer extends CraftInventory implements PlayerInvent } public CraftItemStack getItemInHand() { - return new CraftItemStack( getInventory().b() ); + return new CraftItemStack( getInventory().getItemInHand() ); } public void setItemInHand(ItemStack stack) { @@ -27,22 +27,22 @@ public class CraftInventoryPlayer extends CraftInventory implements PlayerInvent } public int getHeldItemSlot() { - return getInventory().c; + return getInventory().itemInHandIndex; } - public ItemStack getHelmet() { + public CraftItemStack getHelmet() { return getItem( getSize() + 3 ); } - public ItemStack getChestplate() { + public CraftItemStack getChestplate() { return getItem( getSize() + 2 ); } - public ItemStack getLeggings() { + public CraftItemStack getLeggings() { return getItem( getSize() + 1 ); } - public ItemStack getBoots() { + public CraftItemStack getBoots() { return getItem( getSize() + 0 ); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java index 2f242af485..078c0b04c6 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java @@ -121,6 +121,6 @@ public class CraftItemStack extends ItemStack { @Override public int getMaxStackSize() { - return item.a().b(); + return item.getItem().getMaxStackSize(); } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSlot.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSlot.java index 39d748b42a..a44c1b902e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftSlot.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftSlot.java @@ -12,14 +12,14 @@ public class CraftSlot implements org.bukkit.inventory.Slot { } public Inventory getInventory() { - return new CraftInventory( slot.e ); + return new CraftInventory( slot.inventory ); } public int getIndex() { - return slot.d; + return slot.index; } public ItemStack getItem() { - return new CraftItemStack( slot.a() ); + return new CraftItemStack( slot.getItem() ); } } diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java index ad07883a1d..9caef41619 100644 --- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java +++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java @@ -20,7 +20,7 @@ import org.bukkit.craftbukkit.scheduler.CraftTask; public class CraftScheduler implements BukkitScheduler, Runnable { private static final Logger logger = Logger.getLogger("Minecraft"); - + private final CraftServer server; private final CraftThreadManager craftThreadManager = new CraftThreadManager(); diff --git a/src/main/java/org/bukkit/craftbukkit/util/LongHashtable.java b/src/main/java/org/bukkit/craftbukkit/util/LongHashtable.java index 79e7d43963..fc59df7782 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/LongHashtable.java +++ b/src/main/java/org/bukkit/craftbukkit/util/LongHashtable.java @@ -13,8 +13,8 @@ public class LongHashtable extends LongHash { put(toLong(msw, lsw), value); if (value instanceof Chunk) { Chunk c = (Chunk) value; - if (msw != c.j || lsw != c.k) { - MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")"); + if (msw != c.x || lsw != c.z) { + MinecraftServer.log.info("Chunk (" + c.x + ", " + c.z +") stored at (" + msw + ", " + lsw + ")"); Throwable x = new Throwable(); x.fillInStackTrace(); x.printStackTrace(); @@ -26,8 +26,8 @@ public class LongHashtable extends LongHash { V value = get(toLong(msw, lsw)); if (value instanceof Chunk) { Chunk c = (Chunk) value; - if (msw != c.j || lsw != c.k) { - MinecraftServer.a.info("Chunk (" + c.j + ", " + c.k +") stored at (" + msw + ", " + lsw + ")"); + if (msw != c.x || lsw != c.z) { + MinecraftServer.log.info("Chunk (" + c.x + ", " + c.z +") stored at (" + msw + ", " + lsw + ")"); Throwable x = new Throwable(); x.fillInStackTrace(); x.printStackTrace(); diff --git a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java index d15bb78273..5e555d645c 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java +++ b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java @@ -12,6 +12,6 @@ public class ServerShutdownThread extends Thread { @Override public void run() { - server.g(); + server.stop(); } }