Add configurable locale code to AuthMe language code redirect
This commit is contained in:
parent
d09e545554
commit
6001ee6979
@ -5,6 +5,9 @@ import ch.jalu.configme.SettingsHolder;
|
|||||||
import ch.jalu.configme.properties.Property;
|
import ch.jalu.configme.properties.Property;
|
||||||
import fr.xephi.authme.output.LogLevel;
|
import fr.xephi.authme.output.LogLevel;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import static ch.jalu.configme.properties.PropertyInitializer.newLowercaseStringSetProperty;
|
||||||
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
import static ch.jalu.configme.properties.PropertyInitializer.newProperty;
|
||||||
|
|
||||||
public final class PluginSettings implements SettingsHolder {
|
public final class PluginSettings implements SettingsHolder {
|
||||||
@ -23,6 +26,18 @@ public final class PluginSettings implements SettingsHolder {
|
|||||||
public static final Property<Boolean> I18N_MESSAGES =
|
public static final Property<Boolean> I18N_MESSAGES =
|
||||||
newProperty("3rdPartyFeature.features.i18nMessages.enabled", false);
|
newProperty("3rdPartyFeature.features.i18nMessages.enabled", false);
|
||||||
|
|
||||||
|
@Comment({"Redirect locale code to certain AuthMe language code as you want",
|
||||||
|
"Minecraft locale list: https://minecraft.wiki/w/Language",
|
||||||
|
"AuthMe language code: https://github.com/HaHaWTH/AuthMeReReloaded/blob/master/docs/translations.md",
|
||||||
|
"For example, if you want to show Russian messages to player using language Tatar(tt_ru),",
|
||||||
|
"and show Chinese Simplified messages to player using language Classical Chinese(lzh), then:",
|
||||||
|
"locale-code-redirect:",
|
||||||
|
"- 'tt_ru:ru'",
|
||||||
|
"- 'lzh:zhcn'"})
|
||||||
|
public static final Property<Set<String>> I18N_CODE_REDIRECT =
|
||||||
|
newLowercaseStringSetProperty("3rdPartyFeature.features.i18nMessages.locale-code-redirect",
|
||||||
|
"tt_ru:ru", "lzh:zhcn");
|
||||||
|
|
||||||
@Comment({
|
@Comment({
|
||||||
"Do you want to enable the session feature?",
|
"Do you want to enable the session feature?",
|
||||||
"If enabled, when a player authenticates successfully,",
|
"If enabled, when a player authenticates successfully,",
|
||||||
|
|||||||
@ -52,14 +52,14 @@ public final class PlayerUtils {
|
|||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (Utils.majorVersion >= 12) {
|
if (Utils.majorVersion >= 12) {
|
||||||
locale = player.getLocale();
|
locale = player.getLocale().toLowerCase();
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
Method spigotMethod = player.getClass().getMethod("spigot");
|
Method spigotMethod = player.getClass().getMethod("spigot");
|
||||||
Object spigot = spigotMethod.invoke(player);
|
Object spigot = spigotMethod.invoke(player);
|
||||||
|
|
||||||
Method spigotGetLocaleMethod = spigot.getClass().getMethod("getLocale");
|
Method spigotGetLocaleMethod = spigot.getClass().getMethod("getLocale");
|
||||||
locale = (String) spigotGetLocaleMethod.invoke(spigot);
|
locale = ((String) spigotGetLocaleMethod.invoke(spigot)).toLowerCase();
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,7 +76,15 @@ public final class PlayerUtils {
|
|||||||
* @param settings The AuthMe settings, for default/fallback language usage.
|
* @param settings The AuthMe settings, for default/fallback language usage.
|
||||||
*/
|
*/
|
||||||
public static String LocaleToCode(String locale, Settings settings) {
|
public static String LocaleToCode(String locale, Settings settings) {
|
||||||
locale = locale.toLowerCase();
|
if (!settings.getProperty(PluginSettings.I18N_CODE_REDIRECT).isEmpty()) {
|
||||||
|
for (String raw : settings.getProperty(PluginSettings.I18N_CODE_REDIRECT)) {
|
||||||
|
String[] split = raw.split(":");
|
||||||
|
|
||||||
|
if (locale.equalsIgnoreCase(split[0])) {
|
||||||
|
return split[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (locale) {
|
switch (locale) {
|
||||||
case "pt_br":
|
case "pt_br":
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user