From 6c09066e224ac85b8a6464eaf8f53edfeb4beda4 Mon Sep 17 00:00:00 2001 From: Nate Mortensen Date: Mon, 1 Jul 2013 06:03:00 -0500 Subject: Update CraftBukkit to 1.6.1 --- .../net/minecraft/server/PendingConnection.java | 61 +++++++++++----------- 1 file changed, 30 insertions(+), 31 deletions(-) (limited to 'src/main/java/net/minecraft/server/PendingConnection.java') diff --git a/src/main/java/net/minecraft/server/PendingConnection.java b/src/main/java/net/minecraft/server/PendingConnection.java index 17cfacc9..252cea7c 100644 --- a/src/main/java/net/minecraft/server/PendingConnection.java +++ b/src/main/java/net/minecraft/server/PendingConnection.java @@ -9,7 +9,6 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Random; -import java.util.logging.Logger; import javax.crypto.SecretKey; public class PendingConnection extends Connection { @@ -18,18 +17,18 @@ public class PendingConnection extends Connection { private byte[] d; private final MinecraftServer server; public final NetworkManager networkManager; - public boolean b = false; - private int f = 0; - private String g = null; - private volatile boolean h = false; + public boolean b; + private int f; + private String g; + private volatile boolean h; private String loginKey = Long.toString(random.nextLong(), 16); // CraftBukkit - Security fix - private boolean j = false; - private SecretKey k = null; + private boolean j; + private SecretKey k; public String hostname = ""; // CraftBukkit - add field public PendingConnection(MinecraftServer minecraftserver, Socket socket, String s) throws java.io.IOException { // CraftBukkit - throws IOException this.server = minecraftserver; - this.networkManager = new NetworkManager(minecraftserver.getLogger(), socket, s, this, minecraftserver.F().getPrivate()); + this.networkManager = new NetworkManager(minecraftserver.getLogger(), socket, s, this, minecraftserver.H().getPrivate()); this.networkManager.e = 0; } @@ -70,10 +69,10 @@ public class PendingConnection extends Connection { if (!this.g.equals(StripColor.a(this.g))) { this.disconnect("Invalid username!"); } else { - PublicKey publickey = this.server.F().getPublic(); + PublicKey publickey = this.server.H().getPublic(); - if (packet2handshake.d() != 61) { - if (packet2handshake.d() > 61) { + if (packet2handshake.d() != 73) { + if (packet2handshake.d() > 73) { this.disconnect("Outdated server!"); } else { this.disconnect("Outdated client!"); @@ -88,7 +87,7 @@ public class PendingConnection extends Connection { } public void a(Packet252KeyResponse packet252keyresponse) { - PrivateKey privatekey = this.server.F().getPrivate(); + PrivateKey privatekey = this.server.H().getPrivate(); this.k = packet252keyresponse.a(privatekey); if (!Arrays.equals(this.d, packet252keyresponse.b(privatekey))) { @@ -100,12 +99,13 @@ public class PendingConnection extends Connection { public void a(Packet205ClientCommand packet205clientcommand) { if (packet205clientcommand.a == 0) { + if (this.j) { + this.disconnect("Duplicate login"); + return; + } + + this.j = true; if (this.server.getOnlineMode()) { - if (this.j) { - this.disconnect("Duplicate login"); - return; - } - this.j = true; (new ThreadLoginVerifier(this, server.server)).start(); // CraftBukkit - add CraftServer } else { this.h = true; @@ -120,10 +120,11 @@ public class PendingConnection extends Connection { EntityPlayer s = this.server.getPlayerList().attemptLogin(this, this.g, this.hostname); if (s == null) { + // this.disconnect(s); return; // CraftBukkit end } else { - EntityPlayer entityplayer = this.server.getPlayerList().processLogin(s); // CraftBukkit - this.h -> s + EntityPlayer entityplayer = this.server.getPlayerList().processLogin(s); // CraftBukkit - this.g -> s if (entityplayer != null) { this.server.getPlayerList().a((INetworkManager) this.networkManager, entityplayer); @@ -145,24 +146,22 @@ public class PendingConnection extends Connection { String s = null; // CraftBukkit org.bukkit.event.server.ServerListPingEvent pingEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callServerListPingEvent(this.server.server, getSocket().getInetAddress(), this.server.getMotd(), playerlist.getPlayerCount(), playerlist.getMaxPlayers()); + if (packet254getinfo.d()) { + // CraftBukkit + s = pingEvent.getMotd() + "\u00A7" + playerlist.getPlayerCount() + "\u00A7" + pingEvent.getMaxPlayers(); + } else { + List list = Arrays.asList(new Serializable[] { Integer.valueOf(1), Integer.valueOf(73), this.server.getVersion(), this.server.getMotd(), Integer.valueOf(playerlist.getPlayerCount()), Integer.valueOf(playerlist.getMaxPlayers())}); - if (packet254getinfo.a == 1) { - // CraftBukkit start - Fix decompile issues, don't create a list from an array - Object[] list = new Object[] { 1, 61, this.server.getVersion(), pingEvent.getMotd(), playerlist.getPlayerCount(), pingEvent.getMaxPlayers() }; + Object object; - for (Object object : list) { + for (Iterator iterator = list.iterator(); iterator.hasNext(); s = s + object.toString().replaceAll("\0", "")) { + object = iterator.next(); if (s == null) { s = "\u00A7"; } else { - s = s + "\0"; + s = s + '\0'; } - - s += org.apache.commons.lang.StringUtils.replace(object.toString(), "\0", ""); } - // CraftBukkit end - } else { - // CraftBukkit - s = pingEvent.getMotd() + "\u00A7" + playerlist.getPlayerCount() + "\u00A7" + pingEvent.getMaxPlayers(); } InetAddress inetaddress = null; @@ -173,8 +172,8 @@ public class PendingConnection extends Connection { this.networkManager.queue(new Packet255KickDisconnect(s)); this.networkManager.d(); - if (inetaddress != null && this.server.ae() instanceof DedicatedServerConnection) { - ((DedicatedServerConnection) this.server.ae()).a(inetaddress); + if (inetaddress != null && this.server.ag() instanceof DedicatedServerConnection) { + ((DedicatedServerConnection) this.server.ag()).a(inetaddress); } this.b = true; -- cgit v1.2.3