From 8cc0d0c782dcad113ba4d39b943e04b8bfad95b2 Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Tue, 3 Dec 2013 13:27:12 -0500 Subject: [PATCH] Correctly validate map colors. Fixes BUKKIT-4984 The validation check in CraftMapView.render(CraftPlayer) filters out any values less than 0. As of Minecraft 1.7, -128 through -113 are valid colors, so filtering them out prevents some of the new colors from being sent. This commit fixes the issue by adjusting the validation check to include any values less than or equal to -113. As the minimum value for a byte is -128, no invalid colors are included. By: t00thpick1 --- .../main/java/org/bukkit/craftbukkit/map/CraftMapView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java index b28d6a3439..1a150d98b5 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/map/CraftMapView.java @@ -147,7 +147,9 @@ public final class CraftMapView implements MapView { byte[] buf = canvas.getBuffer(); for (int i = 0; i < buf.length; ++i) { - if (buf[i] >= 0) render.buffer[i] = buf[i]; + byte color = buf[i]; + // There are 143 valid color id's, 0 -> 127 and -128 -> -113 + if (color >= 0 || color <= -113) render.buffer[i] = color; } for (int i = 0; i < canvas.getCursors().size(); ++i) {