feat: revamp i18n key feature
This commit is contained in:
parent
54671b62e5
commit
522da7369a
9 changed files with 56 additions and 58 deletions
|
@ -30,16 +30,17 @@ public class NickoCommand implements CommandExecutor {
|
|||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
if (sender instanceof Player player) {
|
||||
if (args.length >= 1) {
|
||||
switch (args[0]) {
|
||||
case "disguise" -> new NickoDisguiseSubCmd(this).execute(sender);
|
||||
case "debug" -> new NickoDebugSubCmd(this).execute(sender, args);
|
||||
case "check" -> new NickoCheckSubCmd(this).execute(sender, args);
|
||||
case "check" -> new NickoCheckSubCmd(this).execute(player, args);
|
||||
case "gui" -> new NickoGUISubCmd(this).execute(sender, args);
|
||||
default -> sendHelpMessages(sender);
|
||||
}
|
||||
} else {
|
||||
if (sender instanceof Player player) {
|
||||
}
|
||||
|
||||
new MainGUI(player).open();
|
||||
return false;
|
||||
}
|
||||
|
@ -48,9 +49,6 @@ public class NickoCommand implements CommandExecutor {
|
|||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void sendHelpMessages(CommandSender sender) {
|
||||
helpMessage = helpMessage.replace("{version}", NickoBukkit.getInstance().getDescription().getVersion());
|
||||
if (sender instanceof ConsoleCommandSender) {
|
||||
|
|
|
@ -3,9 +3,11 @@ package net.artelnatif.nicko.command.sub;
|
|||
import net.artelnatif.nicko.NickoBukkit;
|
||||
import net.artelnatif.nicko.command.NickoCommand;
|
||||
import net.artelnatif.nicko.disguise.AppearanceManager;
|
||||
import net.artelnatif.nicko.i18n.I18N;
|
||||
import net.artelnatif.nicko.i18n.I18NDict;
|
||||
import net.artelnatif.nicko.mojang.MojangUtils;
|
||||
import net.artelnatif.nicko.utils.PlayerUtils;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import java.util.StringJoiner;
|
||||
|
@ -15,11 +17,16 @@ public class NickoCheckSubCmd extends NickoSubCmd {
|
|||
super(nickoCommand);
|
||||
}
|
||||
|
||||
public void execute(CommandSender sender, String[] args) {
|
||||
public void execute(Player player, String[] args) {
|
||||
final String targetName = args[1];
|
||||
final Player target = Bukkit.getPlayerExact(targetName);
|
||||
|
||||
AppearanceManager appearanceManager;
|
||||
if (MojangUtils.isUsernameInvalid(targetName)) {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Error.INVALID_USERNAME));
|
||||
return;
|
||||
}
|
||||
|
||||
if (PlayerUtils.isPlayerOffline(target)) {
|
||||
appearanceManager = AppearanceManager.get(targetName);
|
||||
} else {
|
||||
|
@ -36,6 +43,6 @@ public class NickoCheckSubCmd extends NickoSubCmd {
|
|||
builder.add("§7- §fSkin: §6" + appearanceManager.getSkin());
|
||||
}
|
||||
|
||||
sender.sendMessage(builder.toString());
|
||||
player.sendMessage(builder.toString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@ package net.artelnatif.nicko.disguise;
|
|||
import net.artelnatif.nicko.i18n.I18NDict;
|
||||
|
||||
public class UpdateResult {
|
||||
private final I18NDict.Error errorMessage;
|
||||
private final I18NDict errorMessage;
|
||||
private boolean error = false;
|
||||
|
||||
public UpdateResult(I18NDict.Error errorMessage) {
|
||||
public UpdateResult(I18NDict errorMessage) {
|
||||
this.error = true;
|
||||
this.errorMessage = errorMessage;
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ public class UpdateResult {
|
|||
return error;
|
||||
}
|
||||
|
||||
public I18NDict.Error getErrorMessage() {
|
||||
public I18NDict getErrorMessage() {
|
||||
return errorMessage;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,9 +23,9 @@ public class PlayerJoinListener implements Listener {
|
|||
final boolean skinChange = !player.getName().equals(appearanceManager.getSkin());
|
||||
final UpdateResult updateResult = appearanceManager.updatePlayer(skinChange);
|
||||
if (updateResult.isError()) {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLY_FAIL.getKey(), I18N.translate(player, updateResult.getErrorMessage().getKey())));
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLY_FAIL, I18N.translate(player, updateResult.getErrorMessage())));
|
||||
} else {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLIED.getKey()));
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.PREVIOUS_SKIN_APPLIED));
|
||||
}
|
||||
}
|
||||
}, 20L);
|
||||
|
|
|
@ -27,15 +27,15 @@ public class ResetItem extends BaseItem {
|
|||
final AppearanceManager appearanceManager = AppearanceManager.get(player);
|
||||
|
||||
if (!appearanceManager.hasData()) {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_NOTACTIVE.getKey()));
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_NOTACTIVE));
|
||||
event.getView().close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!appearanceManager.reset().isError()) {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_SUCCESS.getKey()));
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_SUCCESS));
|
||||
} else {
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_FAIL.getKey()));
|
||||
player.sendMessage(I18N.translate(player, I18NDict.Event.UNDISGUISE_FAIL));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,9 +26,9 @@ public class I18N {
|
|||
return ResourceBundle.getBundle("locale", getLocale(player));
|
||||
}
|
||||
|
||||
public static String translate(Player player, String key, Object... arguments) {
|
||||
public static String translate(Player player, I18NDict key, Object... arguments) {
|
||||
try {
|
||||
formatter.applyPattern(getBundle(player).getString(key));
|
||||
formatter.applyPattern(getBundle(player).getString(key.getKey()));
|
||||
return NickoBukkit.getInstance().getNickoConfig().getPrefix() + formatter.format(arguments);
|
||||
} catch (Exception e) {
|
||||
return NickoBukkit.getInstance().getNickoConfig().getPrefix() + key;
|
||||
|
|
|
@ -1,40 +1,31 @@
|
|||
package net.artelnatif.nicko.i18n;
|
||||
|
||||
public class I18NDict {
|
||||
public enum Event {
|
||||
UNDISGUISE_SUCCESS("undisguise.success"),
|
||||
UNDISGUISE_FAIL("undisguise.fail"),
|
||||
UNDISGUISE_NOTACTIVE("undisguise.notactive"),
|
||||
DISGUISE_SUCCESS("disguise.success"),
|
||||
DISGUISE_FAIL("disguise.fail"),
|
||||
PREVIOUS_SKIN_APPLIED("previous_skin_applied.success"),
|
||||
PREVIOUS_SKIN_APPLY_FAIL("previous_skin_applied.fail");
|
||||
private String key;
|
||||
|
||||
private final String messageKey;
|
||||
public I18NDict(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
Event(String messageKey) {
|
||||
this.messageKey = "event." + messageKey;
|
||||
public static class Event {
|
||||
public static final I18NDict UNDISGUISE_SUCCESS = new I18NDict("undisguise.success");
|
||||
public static final I18NDict UNDISGUISE_FAIL = new I18NDict("undisguise.fail");
|
||||
public static final I18NDict UNDISGUISE_NOTACTIVE = new I18NDict("undisguise.notactive");
|
||||
public static final I18NDict DISGUISE_SUCCESS = new I18NDict("disguise.success");
|
||||
public static final I18NDict DISGUISE_FAIL = new I18NDict("disguise.fail");
|
||||
public static final I18NDict PREVIOUS_SKIN_APPLIED = new I18NDict("previous_skin_applied.success");
|
||||
public static final I18NDict PREVIOUS_SKIN_APPLY_FAIL = new I18NDict("previous_skin_applied.fail");
|
||||
}
|
||||
|
||||
public static class Error {
|
||||
public static final I18NDict SKIN_FAIL_MOJANG = new I18NDict("couldnt_get_skin_from_mojang");
|
||||
public static final I18NDict SKIN_FAIL_CACHE = new I18NDict("couldnt_get_skin_from_cache");
|
||||
public static final I18NDict NAME_FAIL_MOJANG = new I18NDict("couldnt_get_name_from_mojang");
|
||||
public static final I18NDict INVALID_USERNAME = new I18NDict("invalid_username");
|
||||
public static final I18NDict UNEXPECTED_ERROR = new I18NDict("generic");
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return messageKey;
|
||||
}
|
||||
}
|
||||
|
||||
public enum Error {
|
||||
SKIN_FAIL_MOJANG("couldnt_get_skin_from_mojang"),
|
||||
SKIN_FAIL_CACHE("couldnt_get_skin_from_cache"),
|
||||
NAME_FAIL_MOJANG("couldnt_get_name_from_mojang"),
|
||||
UNEXPECTED_ERROR("generic");
|
||||
|
||||
private final String messageKey;
|
||||
|
||||
Error(String messageKey) {
|
||||
this.messageKey = "error." + messageKey;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return messageKey;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,3 +10,4 @@ event.disguise.fail=§cUnable to apply your disguise. §7§o({0})
|
|||
event.undisguise.success=§aDisguise removed.
|
||||
event.undisguise.fail=§cUnable to remove your disguise. It will be set back to default on the next login. Sorry!
|
||||
event.undisguise.notactive=§cYou do not have an active disguise.
|
||||
error.invalid_username=§cThe specified username is not a valid Minecraft username.
|
|
@ -10,3 +10,4 @@ event.disguise.fail=§cImpossible d'appliquer votre déguisement. §7§o({0})
|
|||
event.undisguise.success=§aDéguisement retiré.
|
||||
event.undisguise.fail=§cImpossible de retier votre déguisement. Il sera remis par défaut à votre prochaine reconnexion. Désolé !
|
||||
event.undisguise.notactive=§cVous n'avez pas de déguisement.
|
||||
error.invalid_username=§cLe pseudo spécifié n'est pas un pseudo Minecraft valide.
|
Loading…
Reference in a new issue