From 03136d894511b1afbe9da951cb5f09d9bbcbceb2 Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Wed, 6 Jul 2022 01:03:23 -0400 Subject: [PATCH] Reject null Lang keys, see #1983 --- .../java/me/blackvein/quests/util/Lang.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/me/blackvein/quests/util/Lang.java b/api/src/main/java/me/blackvein/quests/util/Lang.java index a3c3b989b..402bbd413 100644 --- a/api/src/main/java/me/blackvein/quests/util/Lang.java +++ b/api/src/main/java/me/blackvein/quests/util/Lang.java @@ -71,6 +71,9 @@ public class Lang { */ @SuppressWarnings("deprecation") public static String get(final Player player, final String key) { + if (key == null) { + return null; + } if (player == null) { return get(key); } @@ -108,6 +111,9 @@ public class Lang { * @return formatted string, plus processing through PlaceholderAPI by clip */ public static String get(final CommandSender commandSender, final String key) { + if (key == null) { + return null; + } if (commandSender instanceof Player) { return get((Player)commandSender, key); } @@ -121,6 +127,9 @@ public class Lang { * @return formatted string */ public static String get(final String key) { + if (key == null) { + return null; + } return defaultLang.containsKey(key) ? LangToken.convertString(defaultLang.get(key)) : "NULL"; } @@ -323,12 +332,15 @@ public class Lang { } public static String convertString(String s) { + if (s == null) { + return null; + } if (tokenMap.isEmpty()) { LangToken.init(); } - for (final String token : tokenMap.keySet()) { - s = s.replace(token, tokenMap.get(token)); - s = s.replace(token.toUpperCase(), tokenMap.get(token)); + for (final Entry token : tokenMap.entrySet()) { + s = s.replace(token.getKey(), token.getValue()); + s = s.replace(token.getKey().toUpperCase(), token.getValue()); } final Matcher matcher = hexPattern.matcher(s); while (matcher.find()) { @@ -344,6 +356,9 @@ public class Lang { } public static String convertString(final Player p, String s) { + if (s == null) { + return null; + } if (tokenMap.isEmpty()) { LangToken.init(); }