diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/NetworkAcceptThread.java')
-rw-r--r-- | src/main/java/net/minecraft/server/NetworkAcceptThread.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/NetworkAcceptThread.java b/src/main/java/net/minecraft/server/NetworkAcceptThread.java new file mode 100644 index 00000000..c702648f --- /dev/null +++ b/src/main/java/net/minecraft/server/NetworkAcceptThread.java @@ -0,0 +1,46 @@ +package net.minecraft.server; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; + +class NetworkAcceptThread extends Thread { + + final MinecraftServer a; + + final NetworkListenThread b; + + NetworkAcceptThread(NetworkListenThread networklistenthread, String s, MinecraftServer minecraftserver) { + super(s); + this.b = networklistenthread; + this.a = minecraftserver; + } + + public void run() { + while (this.b.b) { + try { + Socket socket = NetworkListenThread.a(this.b).accept(); + + if (socket != null) { + synchronized (NetworkListenThread.b(this.b)) { + InetAddress inetaddress = socket.getInetAddress(); + + if (NetworkListenThread.b(this.b).containsKey(inetaddress) && System.currentTimeMillis() - ((Long) NetworkListenThread.b(this.b).get(inetaddress)).longValue() < 6000L) { // CraftBukkit + NetworkListenThread.b(this.b).put(inetaddress, Long.valueOf(System.currentTimeMillis())); + socket.close(); + continue; + } + + NetworkListenThread.b(this.b).put(inetaddress, Long.valueOf(System.currentTimeMillis())); + } + + NetLoginHandler netloginhandler = new NetLoginHandler(this.a, socket, "Connection #" + NetworkListenThread.c(this.b)); + + NetworkListenThread.a(this.b, netloginhandler); + } + } catch (IOException ioexception) { + ioexception.printStackTrace(); + } + } + } +} |