Skip to content

Commit ebf43b5

Browse files
committed
Caching the GLC parse result
1 parent 5f099ca commit ebf43b5

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/main/java/org/maxgamer/quickshop/util/MsgUtil.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,31 +168,38 @@ public static String fillArgs(@Nullable String raw, @Nullable String... args) {
168168
}
169169
return raw;
170170
}
171-
171+
private static Map.Entry<String, String> cachedGameLanguageCode = null;
172172
@Unstable
173173
public static String processGameLanguageCode(String languageCode) {
174+
if (cachedGameLanguageCode != null && cachedGameLanguageCode.getKey().equals(languageCode)) {
175+
return cachedGameLanguageCode.getValue();
176+
177+
}
178+
String copyCode = languageCode;
174179
if ("default".equalsIgnoreCase(languageCode)) {
175180
Locale locale = Locale.getDefault();
176181
String language = locale.getLanguage();
177182
String country = locale.getCountry();
178183
boolean isLanguageEmpty = StringUtils.isEmpty(language);
179184
boolean isCountryEmpty = StringUtils.isEmpty(country);
180185
if (isLanguageEmpty && isCountryEmpty) {
181-
plugin.getLogger().warning("Unable to get language code, fallback to en_us, please change game-language option in config.yml.");
186+
//plugin.getLogger().warning("Unable to get language code, fallback to en_us, please change game-language option in config.yml.");
182187
languageCode = "en_us";
183188
} else {
184189
if (isCountryEmpty || isLanguageEmpty) {
185190
languageCode = isLanguageEmpty ? country + '_' + country : language + '_' + language;
186191
if ("en_en".equals(languageCode)) {
187192
languageCode = "en_us";
188193
}
189-
plugin.getLogger().warning("Unable to get language code, guessing " + languageCode + " instead, If it's incorrect, please change game-language option in config.yml.");
194+
// plugin.getLogger().warning("Unable to get language code, guessing " + languageCode + " instead, If it's incorrect, please change game-language option in config.yml.");
190195
} else {
191196
languageCode = language + '_' + country;
192197
}
193198
}
194199
}
200+
195201
languageCode = languageCode.replace("-", "_").toLowerCase(Locale.ROOT);
202+
cachedGameLanguageCode = new AbstractMap.SimpleEntry<>(copyCode, languageCode);
196203
return languageCode;
197204
}
198205

0 commit comments

Comments
 (0)