From 6903f2024217f0959c015e76b23297af8e3b573f Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Thu, 26 May 2011 13:48:22 +0100 Subject: Implemented 1.6! --- .../net/minecraft/server/NetServerHandler.java | 155 +++++++++++---------- 1 file changed, 81 insertions(+), 74 deletions(-) (limited to 'src/main/java/net/minecraft/server/NetServerHandler.java') diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index b6fa2d15..8ad7bd44 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -72,7 +72,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { public void a() { this.i = false; - this.networkManager.a(); + this.networkManager.b(); if (this.f - this.g > 20) { this.sendPacket(new Packet0KeepAlive()); } @@ -88,8 +88,9 @@ public class NetServerHandler extends NetHandler implements ICommandListener { return; } // Send the possibly modified leave message - this.sendPacket(new Packet255KickDisconnect(event.getReason())); - this.networkManager.c(); + s = event.getReason(); + this.sendPacket(new Packet255KickDisconnect(s)); + this.networkManager.d(); leaveMessage = event.getLeaveMessage(); if (leaveMessage != null) { this.minecraftServer.serverConfigurationManager.sendAll(new Packet3Chat(leaveMessage)); @@ -105,6 +106,8 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } public void a(Packet10Flying packet10flying) { + WorldServer worldserver = this.minecraftServer.a(this.player.dimension); + this.i = true; double d0; @@ -120,7 +123,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); Location to = player.getLocation(); - // Prevent 40 event-calls for less than a single pixel of movement >.> + // Prevent 40 event-calls for less than b single pixel of movement >.> 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); @@ -217,20 +220,18 @@ public class NetServerHandler extends NetHandler implements ICommandListener { this.player.motX = d5; this.player.motZ = d4; if (this.player.vehicle != null) { - // CraftBukkit - ((WorldServer) this.player.world).vehicleEnteredWorld(this.player.vehicle, true); + worldserver.vehicleEnteredWorld(this.player.vehicle, true); } if (this.player.vehicle != null) { this.player.vehicle.f(); } - this.minecraftServer.serverConfigurationManager.b(this.player); + this.minecraftServer.serverConfigurationManager.d(this.player); this.x = this.player.locX; this.y = this.player.locY; this.z = this.player.locZ; - // CraftBukkit - ((WorldServer) this.player.world).playerJoinedWorld(this.player); + worldserver.playerJoinedWorld(this.player); return; } @@ -271,8 +272,12 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } this.player.a(true); - this.player.bn = 0.0F; + this.player.bq = 0.0F; this.player.setLocation(this.x, this.y, this.z, f2, f3); + if (!this.m) { + return; + } + d4 = d1 - this.player.locX; double d6 = d2 - this.player.locY; double d7 = d3 - this.player.locZ; @@ -290,8 +295,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end float f4 = 0.0625F; - // CraftBukkit - boolean flag = ((WorldServer) this.player.world).getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; + boolean flag = worldserver.getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; this.player.move(d4, d6, d7); d4 = d1 - this.player.locX; @@ -312,8 +316,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } this.player.setLocation(d1, d2, d3, f2, f3); - // CraftBukkit - boolean flag2 = ((WorldServer) this.player.world).getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; + boolean flag2 = worldserver.getEntities(this.player, this.player.boundingBox.clone().shrink((double) f4, (double) f4, (double) f4)).size() == 0; if (flag && (flag1 || !flag2) && !this.player.isSleeping()) { this.a(this.x, this.y, this.z, f2, f3); @@ -322,8 +325,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { AxisAlignedBB axisalignedbb = this.player.boundingBox.clone().b((double) f4, (double) f4, (double) f4).a(0.0D, -0.55D, 0.0D); - // CraftBukkit - if (!this.minecraftServer.o && !((WorldServer) this.player.world).b(axisalignedbb)) { + if (!this.minecraftServer.o && !worldserver.b(axisalignedbb)) { if (d6 >= -0.03125D) { ++this.h; if (this.h > 80) { @@ -337,9 +339,8 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } this.player.onGround = packet10flying.g; - this.minecraftServer.serverConfigurationManager.b(this.player); + this.minecraftServer.serverConfigurationManager.d(this.player); this.player.b(this.player.locY - d0, packet10flying.g); - // CraftBukkit end } } @@ -398,11 +399,12 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit end + WorldServer worldserver = this.minecraftServer.a(this.player.dimension); + if (packet14blockdig.e == 4) { this.player.C(); } else { - // CraftBukkit - boolean flag = ((WorldServer) this.player.world).weirdIsOpCache = this.minecraftServer.serverConfigurationManager.isOp(this.player.name); + boolean flag = worldserver.weirdIsOpCache = worldserver.worldProvider.dimension != 0 || this.minecraftServer.serverConfigurationManager.isOp(this.player.name); boolean flag1 = false; if (packet14blockdig.e == 0) { @@ -428,8 +430,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } } - // CraftBukkit - ChunkCoordinates chunkcoordinates = ((WorldServer) this.player.world).getSpawn(); + ChunkCoordinates chunkcoordinates = worldserver.getSpawn(); int l = (int) MathHelper.abs((float) (i - chunkcoordinates.x)); int i1 = (int) MathHelper.abs((float) (k - chunkcoordinates.z)); @@ -439,12 +440,17 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (packet14blockdig.e == 0) { // CraftBukkit - if (i1 > this.minecraftServer.spawnProtection || flag) { + if (i1 < this.minecraftServer.spawnProtection && !flag) { + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, worldserver)); + } else { // CraftBukkit - add face argument this.player.itemInWorldManager.dig(i, j, k, packet14blockdig.face); } } else if (packet14blockdig.e == 2) { - this.player.itemInWorldManager.b(i, j, k); + this.player.itemInWorldManager.a(i, j, k); + if (worldserver.getTypeId(i, j, k) != 0) { + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, worldserver)); + } } else if (packet14blockdig.e == 3) { double d4 = this.player.locX - ((double) i + 0.5D); double d5 = this.player.locY - ((double) j + 0.5D); @@ -452,24 +458,24 @@ public class NetServerHandler extends NetHandler implements ICommandListener { double d7 = d4 * d4 + d5 * d5 + d6 * d6; if (d7 < 256.0D) { - // CraftBukkit - this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.player.world)); + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, worldserver)); } } - // CraftBukkit - ((WorldServer) this.player.world).weirdIsOpCache = false; + worldserver.weirdIsOpCache = false; } } public void a(Packet15Place packet15place) { + WorldServer worldserver = this.minecraftServer.a(this.player.dimension); + // CraftBukkit start if (this.player.dead) { return; } - // This is a horrible hack needed because the client sends 2 packets on 'right mouse click' - // aimed at a block. We shouldn't need to get the second packet if the data is handled + // This is b horrible hack needed because the client sends 2 packets on 'right mouse click' + // aimed at b block. We shouldn't need to get the second packet if the data is handled // but we cannot know what the client will do, so we might still get it // // If the time between packets is small enough, and the 'signature' similar, we discard the @@ -488,13 +494,13 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit - if rightclick decremented the item, always send the update packet. // this is not here for CraftBukkit's own functionality; rather it is to fix - // a notch bug where the item doesn't update correctly. + // b notch bug where the item doesn't update correctly. boolean always = false; // CraftBukkit end ItemStack itemstack = this.player.inventory.getItemInHand(); - // boolean flag = this.minecraftServer.worldServer.weirdIsOpCache = this.minecraftServer.serverConfigurationManager.isOp(this.player.name); + boolean flag = worldserver.weirdIsOpCache = worldserver.worldProvider.dimension != 0 || this.minecraftServer.serverConfigurationManager.isOp(this.player.name); if (packet15place.face == 255) { if (itemstack == null) { @@ -509,7 +515,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit - notch decrements the counter by 1 in the above method with food, - // snowballs and so forth, but he does it in a place that doesn't cause the + // snowballs and so forth, but he does it in b place that doesn't cause the // inventory update packet to get sent always = (itemstack.count != itemstackAmount); // CraftBukkit end @@ -518,7 +524,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { int j = packet15place.b; int k = packet15place.c; int l = packet15place.face; - ChunkCoordinates chunkcoordinates = ((WorldServer) this.player.world).getSpawn(); // CraftBukkit + ChunkCoordinates chunkcoordinates = worldserver.getSpawn(); int i1 = (int) MathHelper.abs((float) (i - chunkcoordinates.x)); int j1 = (int) MathHelper.abs((float) (k - chunkcoordinates.z)); @@ -526,17 +532,19 @@ public class NetServerHandler extends NetHandler implements ICommandListener { j1 = i1; } - // CraftBukkit start - spawn protection moved to ItemBlock!!! - // Check if we can actually do something over this large a distance + // CraftBukkit start - Check if we can actually do something over this large a distance Location eyeLoc = getPlayer().getEyeLocation(); if (Math.pow(eyeLoc.getX() - i, 2) + Math.pow(eyeLoc.getY() - j, 2) + Math.pow(eyeLoc.getZ() - k, 2) > PLACE_DISTANCE_SQUARED) { return; } - - 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)); + flag = true; // spawn protection moved to ItemBlock!!! // CraftBukkit end + if (j1 > 16 || flag) { + this.player.itemInWorldManager.interact(this.player, worldserver, itemstack, i, j, k, l); + } + + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, worldserver)); if (l == 0) { --j; } @@ -561,10 +569,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener { ++i; } - // CraftBukkit - this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, this.player.world)); + this.player.netServerHandler.sendPacket(new Packet53BlockChange(i, j, k, worldserver)); } + itemstack = this.player.inventory.getItemInHand(); if (itemstack != null && itemstack.count == 0) { this.player.inventory.items[this.player.inventory.itemInHandIndex] = null; } @@ -580,12 +588,11 @@ public class NetServerHandler extends NetHandler implements ICommandListener { this.sendPacket(new Packet103SetSlot(this.player.activeContainer.f, slot.a, this.player.inventory.getItemInHand())); } - // CraftBukkit - ((WorldServer) this.player.world).weirdIsOpCache = false; + worldserver.weirdIsOpCache = false; } public void a(String s, Object[] aobject) { - if (this.disconnected) return; // CraftBukkit - rarely it would send a disconnect line twice + if (this.disconnected) return; // CraftBukkit - rarely it would send b disconnect line twice a.info(this.player.name + " lost connection: " + s); // CraftBukkit start - we need to handle custom quit messages @@ -655,30 +662,29 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit start - if (this.player.dead) { - return; - } chat(s); } } - public boolean chat(String msg) { - if (msg.startsWith("/")) { - this.handleCommand(msg); - return true; - } else { - Player player = getPlayer(); - PlayerChatEvent event = new PlayerChatEvent(player, msg); - server.getPluginManager().callEvent(event); - - if (event.isCancelled()) { + public boolean chat(String s) { + if (!this.player.dead) { + if (s.startsWith("/")) { + this.handleCommand(s); return true; - } + } else { + Player player = getPlayer(); + PlayerChatEvent event = new PlayerChatEvent(player, s); + server.getPluginManager().callEvent(event); + + if (event.isCancelled()) { + return true; + } - msg = String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage()); - a.info(msg); - for (Player recipient : event.getRecipients()) { - recipient.sendMessage(msg); + s = String.format(event.getFormat(), event.getPlayer().getDisplayName(), event.getMessage()); + a.info(s); + for (Player recipient : event.getRecipients()) { + recipient.sendMessage(s); + } } } @@ -726,9 +732,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } } - /* CraftBukkit start - No longer neaded as we have already handled it server.dispatchCommand above. + /* CraftBukkit start - No longer neaded av we have already handled it server.dispatchCommand above. } else { String s1; + if (this.minecraftServer.serverConfigurationManager.isOp(this.player.name)) { s1 = s.substring(1); a.info(this.player.name + " issued server command: " + s1); @@ -813,7 +820,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } public int b() { - return this.networkManager.d(); + return this.networkManager.e(); } public void sendMessage(String s) { @@ -831,10 +838,10 @@ public class NetServerHandler extends NetHandler implements ICommandListener { } // CraftBukkit end - // CraftBukkit - Entity entity = ((WorldServer) this.player.world).getEntity(packet7useentity.target); + WorldServer worldserver = this.minecraftServer.a(this.player.dimension); + Entity entity = worldserver.getEntity(packet7useentity.target); - if (entity != null && this.player.e(entity) && this.player.f(entity) < 4.0F) { + if (entity != null && this.player.e(entity) && this.player.g(entity) < 36.0D) { if (packet7useentity.c == 0) { // CraftBukkit start PlayerInteractEntityEvent piee = new PlayerInteractEntityEvent((Player) getPlayer(), entity.getBukkitEntity()); @@ -852,7 +859,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { public void a(Packet9Respawn packet9respawn) { if (this.player.health <= 0) { - this.player = this.minecraftServer.serverConfigurationManager.d(this.player); + this.player = this.minecraftServer.serverConfigurationManager.a(this.player, 0); // CraftBukkit start CraftPlayer player = (CraftPlayer) getPlayer(); @@ -921,10 +928,12 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (this.player.dead) { return; } + // CraftBukkit end + // + WorldServer worldserver = this.minecraftServer.a(this.player.dimension); - 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 (worldserver.isLoaded(packet130updatesign.x, packet130updatesign.y, packet130updatesign.z)) { + TileEntity tileentity = worldserver.getTileEntity(packet130updatesign.x, packet130updatesign.y, packet130updatesign.z); if (tileentity instanceof TileEntitySign) { TileEntitySign tileentitysign = (TileEntitySign) tileentity; @@ -979,9 +988,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end tileentitysign1.update(); - - // CraftBukkit - ((WorldServer) this.player.world).notify(j, k, i); + worldserver.notify(j, k, i); } } } -- cgit v1.2.3