diff options
author | David Flemström <david.flemstrom@gmail.com> | 2011-02-20 13:38:27 +0100 |
---|---|---|
committer | Erik Broes <erikbroes@grum.nl> | 2011-02-20 18:15:21 +0100 |
commit | 5121ebb65d6128b4c775c09943122d5b2f344e80 (patch) | |
tree | 69a66f5d7c7c5ed2e4c177ed8a5647c34cadd66a /src/main/java/net/minecraft/server | |
parent | 09026095b69a25c59fd5b360442c7fa0bd390f4f (diff) | |
download | craftbukkit-5121ebb65d6128b4c775c09943122d5b2f344e80.tar craftbukkit-5121ebb65d6128b4c775c09943122d5b2f344e80.tar.gz craftbukkit-5121ebb65d6128b4c775c09943122d5b2f344e80.tar.lz craftbukkit-5121ebb65d6128b4c775c09943122d5b2f344e80.tar.xz craftbukkit-5121ebb65d6128b4c775c09943122d5b2f344e80.zip |
Fixed issue with color markers in messages sent to the client.
This fix eliminates crashes related to color markers being at end-of-line, and also makes colors persist across line breaks.
- The broadcast message is split up in multiple packets, one per line
- Color markers are reorganized, so that color 'sticks across lines'
- The wrapping method calculates the *rendered* line length. Thus, if the user has a weird font, it might look weird.
Diffstat (limited to 'src/main/java/net/minecraft/server')
-rw-r--r-- | src/main/java/net/minecraft/server/NetServerHandler.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index ebd28b2b..ec91edfa 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -17,6 +17,7 @@ import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.entity.CraftPlayer; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.CraftWorld; +import org.bukkit.craftbukkit.TextWrapper; import org.bukkit.entity.Player; import org.bukkit.event.Event.Type; import org.bukkit.event.block.BlockDamageEvent; @@ -593,7 +594,7 @@ public class NetServerHandler extends NetHandler implements ICommandListener { // CraftBukkit end } } - + // CraftBukkit start public boolean chat(String msg) { if (msg.startsWith("/")) { @@ -608,12 +609,14 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (event.isCancelled()) { return true; } - // CraftBukkit end a.info(msg); - this.d.f.a((Packet) (new Packet3Chat(msg))); + for (final String line: TextWrapper.wrapText(msg)) { + this.d.f.a((Packet) (new Packet3Chat(line))); + } + // CraftBukkit end } - + return false; } // CraftBukkit end |