summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java96
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
}