diff options
Diffstat (limited to 'src/main/java/net/minecraft')
-rw-r--r-- | src/main/java/net/minecraft/server/NetServerHandler.java | 96 |
1 files changed, 54 insertions, 42 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index 831ad7ed..a6e64031 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -794,22 +794,26 @@ public class NetServerHandler extends NetHandler { if (s.length() > 100) { // CraftBukkit start - Waitable waitable = new Waitable() { - @Override - protected Object evaluate() { - NetServerHandler.this.disconnect("Chat message too long"); - return null; - } - }; + if (packet3chat.a_()) { + Waitable waitable = new Waitable() { + @Override + protected Object evaluate() { + NetServerHandler.this.disconnect("Chat message too long"); + return null; + } + }; - this.minecraftServer.processQueue.add(waitable); + this.minecraftServer.processQueue.add(waitable); - try { - waitable.get(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } catch (ExecutionException e) { - throw new RuntimeException(e); + try { + waitable.get(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (ExecutionException e) { + throw new RuntimeException(e); + } + } else { + this.disconnect("Chat message too long"); } // CraftBukkit end } else { @@ -818,22 +822,26 @@ public class NetServerHandler extends NetHandler { for (int i = 0; i < s.length(); ++i) { if (!SharedConstants.isAllowedChatCharacter(s.charAt(i))) { // CraftBukkit start - Waitable waitable = new Waitable() { - @Override - protected Object evaluate() { - NetServerHandler.this.disconnect("Illegal characters in chat"); - return null; - } - }; + if (packet3chat.a_()) { + Waitable waitable = new Waitable() { + @Override + protected Object evaluate() { + NetServerHandler.this.disconnect("Illegal characters in chat"); + return null; + } + }; - this.minecraftServer.processQueue.add(waitable); + this.minecraftServer.processQueue.add(waitable); - try { - waitable.get(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } catch (ExecutionException e) { - throw new RuntimeException(e); + try { + waitable.get(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (ExecutionException e) { + throw new RuntimeException(e); + } + } else { + this.disconnect("Illegal characters in chat"); } // CraftBukkit end return; @@ -851,22 +859,26 @@ public class NetServerHandler extends NetHandler { // This section stays because it is only applicable to packets if (chatSpamField.addAndGet(this, 20) > 200 && !this.minecraftServer.getServerConfigurationManager().isOp(this.player.name)) { // CraftBukkit use thread-safe spam // CraftBukkit start - Waitable waitable = new Waitable() { - @Override - protected Object evaluate() { - NetServerHandler.this.disconnect("disconnect.spam"); - return null; - } - }; + if (packet3chat.a_()) { + Waitable waitable = new Waitable() { + @Override + protected Object evaluate() { + NetServerHandler.this.disconnect("disconnect.spam"); + return null; + } + }; - this.minecraftServer.processQueue.add(waitable); + this.minecraftServer.processQueue.add(waitable); - try { - waitable.get(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - } catch (ExecutionException e) { - throw new RuntimeException(e); + try { + waitable.get(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (ExecutionException e) { + throw new RuntimeException(e); + } + } else { + this.disconnect("disconnect.spam"); } // CraftBukkit end } |