summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft
diff options
context:
space:
mode:
authorErik Broes <erikbroes@grum.nl>2011-04-25 18:14:06 +0200
committerErik Broes <erikbroes@grum.nl>2011-04-25 22:17:07 +0200
commit88ebcc8db59eb9a8aeb9a7ca4480db2042df9789 (patch)
treee4efac5f88f60bfde14eac130c8b5145aa0ed93f /src/main/java/net/minecraft
parent6940f56d4dd56c2f898b6bacdb89717642877b41 (diff)
downloadcraftbukkit-88ebcc8db59eb9a8aeb9a7ca4480db2042df9789.tar
craftbukkit-88ebcc8db59eb9a8aeb9a7ca4480db2042df9789.tar.gz
craftbukkit-88ebcc8db59eb9a8aeb9a7ca4480db2042df9789.tar.lz
craftbukkit-88ebcc8db59eb9a8aeb9a7ca4480db2042df9789.tar.xz
craftbukkit-88ebcc8db59eb9a8aeb9a7ca4480db2042df9789.zip
Fix TextWrapping issues; Now limits the packets send to the client to either: 119 chars or 320 width. This will strip disallowed characters, propagate colors properly to the next line and not 'eat' multiple color-codes.
Diffstat (limited to 'src/main/java/net/minecraft')
-rw-r--r--src/main/java/net/minecraft/server/NetServerHandler.java9
-rw-r--r--src/main/java/net/minecraft/server/Packet.java4
-rw-r--r--src/main/java/net/minecraft/server/Packet3Chat.java38
3 files changed, 48 insertions, 3 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java
index 747c0548..12c2cd4f 100644
--- a/src/main/java/net/minecraft/server/NetServerHandler.java
+++ b/src/main/java/net/minecraft/server/NetServerHandler.java
@@ -14,6 +14,7 @@ import org.bukkit.craftbukkit.block.CraftBlock;
import org.bukkit.craftbukkit.entity.CraftPlayer;
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.CraftServer;
+import org.bukkit.craftbukkit.TextWrapper;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.block.*;
@@ -579,9 +580,15 @@ public class NetServerHandler extends NetHandler implements ICommandListener {
if (packet instanceof Packet6SpawnPosition) {
Packet6SpawnPosition packet6 = (Packet6SpawnPosition) packet;
this.player.compassTarget = new Location(getPlayer().getWorld(), packet6.x, packet6.y, packet6.z);
+ } else if (packet instanceof Packet3Chat) {
+ String message = ((Packet3Chat) packet).a;
+ for (final String line: TextWrapper.wrapText(message)) {
+ this.networkManager.a(new Packet3Chat(line));
+ }
+ packet = null;
}
+ if (packet != null) this.networkManager.a(packet);
// CraftBukkit
- this.networkManager.a(packet);
this.g = this.f;
}
diff --git a/src/main/java/net/minecraft/server/Packet.java b/src/main/java/net/minecraft/server/Packet.java
index ba71f4f9..116468a2 100644
--- a/src/main/java/net/minecraft/server/Packet.java
+++ b/src/main/java/net/minecraft/server/Packet.java
@@ -150,9 +150,9 @@ public abstract class Packet {
}
}
- public abstract void a(DataInputStream datainputstream);
+ public abstract void a(DataInputStream datainputstream) throws IOException; // CraftBukkit
- public abstract void a(DataOutputStream dataoutputstream);
+ public abstract void a(DataOutputStream dataoutputstream) throws IOException; // CraftBukkit
public abstract void a(NetHandler nethandler);
diff --git a/src/main/java/net/minecraft/server/Packet3Chat.java b/src/main/java/net/minecraft/server/Packet3Chat.java
new file mode 100644
index 00000000..613cfcab
--- /dev/null
+++ b/src/main/java/net/minecraft/server/Packet3Chat.java
@@ -0,0 +1,38 @@
+package net.minecraft.server;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+public class Packet3Chat extends Packet {
+
+ public String a;
+
+ public Packet3Chat() {}
+
+ public Packet3Chat(String s) {
+ // CraftBukkit start - handle this later
+ //if (s.length() > 119) {
+ // s = s.substring(0, 119);
+ //}
+ // CraftBukkit end
+
+ this.a = s;
+ }
+
+ public void a(DataInputStream datainputstream) throws IOException { // CraftBukkit
+ this.a = a(datainputstream, 119);
+ }
+
+ public void a(DataOutputStream dataoutputstream) throws IOException { // CraftBukkit
+ a(this.a, dataoutputstream);
+ }
+
+ public void a(NetHandler nethandler) {
+ nethandler.a(this);
+ }
+
+ public int a() {
+ return this.a.length();
+ }
+}