From 0bf83c077dc503950c9819446fb5d89ed720779e Mon Sep 17 00:00:00 2001 From: eueln Date: Fri, 11 Apr 2014 15:37:15 -0600 Subject: Account for spacing in MapFont#getWidth(). Fixes BUKKIT-4089 Prior to this commit MapFont#getWidth() did not account for the 1px spacing inserted by CraftMapCanvas#drawText(). This commit adds the consideration of the 1px spacing per character while taking care to not consider the last character as it will not have a 1px space behind it. This commit also ensures the method will not check a 0-length String. --- src/main/java/org/bukkit/map/MapFont.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/org/bukkit/map/MapFont.java b/src/main/java/org/bukkit/map/MapFont.java index 84c809f7..ea8f0ea8 100644 --- a/src/main/java/org/bukkit/map/MapFont.java +++ b/src/main/java/org/bukkit/map/MapFont.java @@ -52,10 +52,16 @@ public class MapFont { throw new IllegalArgumentException("text contains invalid characters"); } + if (text.length() == 0){ + return 0; + } + int result = 0; for (int i = 0; i < text.length(); ++i) { result += chars.get(text.charAt(i)).getWidth(); } + result += text.length() - 1; // Account for 1px spacing between characters + return result; } -- cgit v1.2.3