feat(i18n): gui translation complete

This commit is contained in:
ineanto 2023-09-17 17:33:21 +02:00
parent 8838961f37
commit 854039d657
16 changed files with 145 additions and 91 deletions

View file

@ -17,7 +17,7 @@ public class AdminGUI {
public AdminGUI(Player player) { public AdminGUI(Player player) {
final I18N i18n = new I18N(player); final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Admin.TITLE); this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.ADMIN);
final HomeGUI parent = new HomeGUI(player); final HomeGUI parent = new HomeGUI(player);
final GoBackItem backItem = new GoBackItem(player); final GoBackItem backItem = new GoBackItem(player);

View file

@ -17,7 +17,7 @@ public class CacheManagementGUI {
public CacheManagementGUI(Player player) { public CacheManagementGUI(Player player) {
final I18N i18n = new I18N(player); final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Admin.Cache.TITLE); this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.CACHE);
final AdminGUI parent = new AdminGUI(player); final AdminGUI parent = new AdminGUI(player);
final GoBackItem backItem = new GoBackItem(player); final GoBackItem backItem = new GoBackItem(player);

View file

@ -29,7 +29,7 @@ public class HomeGUI {
} }
final I18N i18n = new I18N(player); final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Home.TITLE); this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.HOME);
final ExitItem exitItem = new ExitItem(player); final ExitItem exitItem = new ExitItem(player);
final ResetItem resetItem = new ResetItem(player); final ResetItem resetItem = new ResetItem(player);

View file

@ -2,6 +2,8 @@ package xyz.atnrch.nicko.gui;
import xyz.atnrch.nicko.gui.items.common.GoBackItem; import xyz.atnrch.nicko.gui.items.common.GoBackItem;
import xyz.atnrch.nicko.gui.items.common.ScrollUpItem; import xyz.atnrch.nicko.gui.items.common.ScrollUpItem;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.mojang.MojangSkin; import xyz.atnrch.nicko.mojang.MojangSkin;
import xyz.xenondevs.invui.gui.Gui; import xyz.xenondevs.invui.gui.Gui;
import xyz.xenondevs.invui.gui.ScrollGui; import xyz.xenondevs.invui.gui.ScrollGui;
@ -19,13 +21,15 @@ import java.util.Optional;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class CacheDetailedGUI { public class InvalidateSkinGUI {
public static final String TITLE = "... > Cache > Invalidate";
private final Player player; private final Player player;
private final Gui gui; private final Gui gui;
private final String title;
public InvalidateSkinGUI(Player player) {
final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.INVALIDATE_SKIN);
public CacheDetailedGUI(Player player) {
final ConcurrentMap<String, Optional<MojangSkin>> skins = NickoBukkit.getInstance().getMojangAPI().getSkinCache().asMap(); final ConcurrentMap<String, Optional<MojangSkin>> skins = NickoBukkit.getInstance().getMojangAPI().getSkinCache().asMap();
final List<String> loadedSkins = skins.entrySet().stream() final List<String> loadedSkins = skins.entrySet().stream()
.filter(entry -> entry.getValue().isPresent()) .filter(entry -> entry.getValue().isPresent())
@ -37,6 +41,8 @@ public class CacheDetailedGUI {
.collect(Collectors.toList()); .collect(Collectors.toList());
final CacheManagementGUI parent = new CacheManagementGUI(player); final CacheManagementGUI parent = new CacheManagementGUI(player);
final ScrollUpItem scrollUpItem = new ScrollUpItem(i18n);
final ScrollDownItem scrollDownItem = new ScrollDownItem(i18n);
final GoBackItem backItem = new GoBackItem(player); final GoBackItem backItem = new GoBackItem(player);
gui = ScrollGui.items(guiItemBuilder -> { gui = ScrollGui.items(guiItemBuilder -> {
@ -48,8 +54,8 @@ public class CacheDetailedGUI {
"x x x x x x x x D", "x x x x x x x x D",
"B % % % % % % % %"); "B % % % % % % % %");
guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL); guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL);
guiItemBuilder.addIngredient('U', new ScrollUpItem()); guiItemBuilder.addIngredient('U', scrollUpItem);
guiItemBuilder.addIngredient('D', new ScrollDownItem()); guiItemBuilder.addIngredient('D', scrollDownItem);
guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle())); guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle()));
guiItemBuilder.setContent(items); guiItemBuilder.setContent(items);
}); });
@ -58,6 +64,6 @@ public class CacheDetailedGUI {
} }
public void open() { public void open() {
Window.single().setGui(gui).setTitle(TITLE).open(player); Window.single().setGui(gui).setTitle(title).open(player);
} }
} }

View file

@ -7,6 +7,8 @@ import xyz.atnrch.nicko.gui.items.admin.check.PlayerInformationItem;
import xyz.atnrch.nicko.gui.items.common.GoBackItem; import xyz.atnrch.nicko.gui.items.common.GoBackItem;
import xyz.atnrch.nicko.gui.items.common.ScrollDownItem; import xyz.atnrch.nicko.gui.items.common.ScrollDownItem;
import xyz.atnrch.nicko.gui.items.common.ScrollUpItem; import xyz.atnrch.nicko.gui.items.common.ScrollUpItem;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.xenondevs.invui.gui.Gui; import xyz.xenondevs.invui.gui.Gui;
import xyz.xenondevs.invui.gui.ScrollGui; import xyz.xenondevs.invui.gui.ScrollGui;
import xyz.xenondevs.invui.gui.structure.Markers; import xyz.xenondevs.invui.gui.structure.Markers;
@ -17,19 +19,23 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class PlayerCheckGUI { public class PlayerCheckGUI {
public static final String TITLE = "Nicko > Admin... > Check";
private final Player player; private final Player player;
private final Gui gui; private final Gui gui;
private final String title;
public PlayerCheckGUI(Player player) { public PlayerCheckGUI(Player player) {
final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.CHECK);
final List<Item> items = Bukkit.getOnlinePlayers().stream() final List<Item> items = Bukkit.getOnlinePlayers().stream()
.map(Entity::getUniqueId) .map(Entity::getUniqueId)
.map(PlayerInformationItem::new) .map(uuid -> new PlayerInformationItem(i18n, uuid))
.collect(Collectors.toList()); .collect(Collectors.toList());
final AdminGUI parent = new AdminGUI(player); final AdminGUI parent = new AdminGUI(player);
final GoBackItem backItem = new GoBackItem(player); final GoBackItem backItem = new GoBackItem(player);
final ScrollUpItem scrollUpItem = new ScrollUpItem(i18n);
final ScrollDownItem scrollDownItem = new ScrollDownItem(i18n);
gui = ScrollGui.items(guiItemBuilder -> { gui = ScrollGui.items(guiItemBuilder -> {
guiItemBuilder.setStructure( guiItemBuilder.setStructure(
@ -40,8 +46,8 @@ public class PlayerCheckGUI {
"x x x x x x x x D", "x x x x x x x x D",
"B % % % % % % % %"); "B % % % % % % % %");
guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL); guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL);
guiItemBuilder.addIngredient('U', new ScrollUpItem()); guiItemBuilder.addIngredient('U', scrollUpItem);
guiItemBuilder.addIngredient('D', new ScrollDownItem()); guiItemBuilder.addIngredient('D', scrollDownItem);
guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle())); guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle()));
guiItemBuilder.setContent(items); guiItemBuilder.setContent(items);
}); });
@ -50,6 +56,6 @@ public class PlayerCheckGUI {
} }
public void open() { public void open() {
Window.single().setGui(gui).setTitle(TITLE).open(player); Window.single().setGui(gui).setTitle(title).open(player);
} }
} }

View file

@ -26,7 +26,7 @@ public class SettingsGUI {
dynamicStructure[1] = dynamicStructure[1].replace("T", "U"); dynamicStructure[1] = dynamicStructure[1].replace("T", "U");
final I18N i18n = new I18N(player); final I18N i18n = new I18N(player);
this.title = i18n.translatePrefixless(I18NDict.GUI.Settings.TITLE); this.title = i18n.translatePrefixless(I18NDict.GUI.Titles.SETTINGS);
final HomeGUI parent = new HomeGUI(player); final HomeGUI parent = new HomeGUI(player);
final UnavailableItem unavailableItem = new UnavailableItem(player); final UnavailableItem unavailableItem = new UnavailableItem(player);

View file

@ -1,20 +1,28 @@
package xyz.atnrch.nicko.gui.items.admin; package xyz.atnrch.nicko.gui.items.admin;
import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.atnrch.nicko.gui.CacheManagementGUI; import xyz.atnrch.nicko.gui.CacheManagementGUI;
import xyz.atnrch.nicko.gui.items.common.LoadingItem;
import xyz.atnrch.nicko.i18n.I18N; import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation; import xyz.atnrch.nicko.i18n.ItemTranslation;
import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.builder.SkullBuilder; import xyz.xenondevs.invui.item.builder.SkullBuilder;
import xyz.xenondevs.invui.item.impl.AsyncItem; import xyz.xenondevs.invui.item.impl.AsyncItem;
import xyz.xenondevs.invui.item.impl.SuppliedItem;
public class ManageCacheItem extends AsyncItem { public class ManageCacheItem extends AsyncItem {
public ManageCacheItem(I18N i18n) { public ManageCacheItem(I18N i18n) {
super(new LoadingItem(i18n).get(), super(new SuppliedItem(() -> {
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.LOADING);
builder.setDisplayName(translation.getName());
translation.getLore().forEach(builder::addLoreLines);
return builder;
}, (click -> true)).getItemProvider(),
() -> { () -> {
final SkullBuilder builder = new SkullBuilder("Notch"); final SkullBuilder builder = new SkullBuilder("Notch");
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.Admin.MANAGE_CACHE); final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.Admin.MANAGE_CACHE);

View file

@ -7,7 +7,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.gui.ChoiceGUI; import xyz.atnrch.nicko.gui.ChoiceGUI;
import xyz.atnrch.nicko.gui.CacheDetailedGUI; import xyz.atnrch.nicko.gui.InvalidateSkinGUI;
import xyz.atnrch.nicko.gui.items.common.choice.ChoiceCallback; import xyz.atnrch.nicko.gui.items.common.choice.ChoiceCallback;
import xyz.atnrch.nicko.i18n.I18N; import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
@ -50,7 +50,7 @@ public class CacheEntryItem extends AsyncItem {
@Override @Override
public void onCancel() { public void onCancel() {
new CacheDetailedGUI(player).open(); new InvalidateSkinGUI(player).open();
} }
}).open(); }).open();
} }

View file

@ -3,7 +3,7 @@ package xyz.atnrch.nicko.gui.items.admin.cache;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.ClickType;
import xyz.atnrch.nicko.gui.CacheDetailedGUI; import xyz.atnrch.nicko.gui.InvalidateSkinGUI;
import xyz.atnrch.nicko.i18n.I18N; import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict; import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation; import xyz.atnrch.nicko.i18n.ItemTranslation;
@ -28,7 +28,7 @@ public class InvalidateSkinItem {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();
if (clickType.isLeftClick() || clickType.isRightClick()) { if (clickType.isLeftClick() || clickType.isRightClick()) {
click.getEvent().getView().close(); click.getEvent().getView().close();
new CacheDetailedGUI(click.getPlayer()).open(); new InvalidateSkinGUI(click.getPlayer()).open();
return true; return true;
} }
return false; return false;

View file

@ -4,41 +4,48 @@ import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import xyz.atnrch.nicko.NickoBukkit; import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation;
import xyz.atnrch.nicko.profile.NickoProfile; import xyz.atnrch.nicko.profile.NickoProfile;
import xyz.atnrch.nicko.storage.PlayerDataStore; import xyz.atnrch.nicko.storage.PlayerDataStore;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.builder.SkullBuilder; import xyz.xenondevs.invui.item.builder.SkullBuilder;
import xyz.xenondevs.invui.item.impl.AsyncItem; import xyz.xenondevs.invui.item.impl.AsyncItem;
import xyz.xenondevs.invui.item.impl.SuppliedItem;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
public class PlayerInformationItem extends AsyncItem { public class PlayerInformationItem extends AsyncItem {
public PlayerInformationItem(UUID uuid) { public PlayerInformationItem(I18N i18n, UUID uuid) {
super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> { super(new SuppliedItem(() -> {
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.LOADING);
builder.setDisplayName(translation.getName());
translation.getLore().forEach(builder::addLoreLines);
return builder;
}, (click -> true)).getItemProvider(), () -> {
final Player player = Bukkit.getPlayer(uuid); final Player player = Bukkit.getPlayer(uuid);
final SkullBuilder skull = new SkullBuilder(uuid); final SkullBuilder skull = new SkullBuilder(uuid);
final PlayerDataStore dataStore = NickoBukkit.getInstance().getDataStore(); final PlayerDataStore dataStore = NickoBukkit.getInstance().getDataStore();
final Optional<NickoProfile> optionalProfile = dataStore.getData(uuid); final Optional<NickoProfile> optionalProfile = dataStore.getData(uuid);
optionalProfile.ifPresent(profile -> {
if (profile.hasData()) { if (optionalProfile.isPresent()) {
skull.addLoreLines( final NickoProfile profile = optionalProfile.get();
"§cNicked: §a✔", final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.Admin.CHECK, player.getName(), (profile.hasData() ? "§a✔" : "§c❌"), profile.getName(), profile.getSkin());
"§cName: §6" + profile.getName(), skull.setDisplayName("§6" + translation.getName());
"§cSkin: §6" + profile.getSkin() translation.getLore().forEach(skull::addLoreLines);
);
} else { } else {
// Default item name in case the profile is not found
skull.setDisplayName("§6§lYou should not see this!");
skull.addLoreLines( skull.addLoreLines(
"§cNicked: §c❌", "§cPlease file a bug report",
"§cName: §7N/A", "§cat https://ineanto.xyz/git/ineanto/nicko!"
"§cSkin: §7N/A"
); );
} }
skull.setDisplayName("§6" + player.getName());
});
return skull; return skull;
}); });
} }

View file

@ -1,27 +0,0 @@
package xyz.atnrch.nicko.gui.items.common;
import org.bukkit.Material;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation;
import xyz.xenondevs.invui.item.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.SuppliedItem;
public class LoadingItem {
private final I18N i18n;
public LoadingItem(I18N i18n) {
this.i18n = i18n;
}
public ItemProvider get() {
return new SuppliedItem(() -> {
final ItemBuilder builder = new ItemBuilder(Material.PAINTING);
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.LOADING);
builder.setDisplayName(translation.getName());
translation.getLore().forEach(builder::addLoreLines);
return builder;
}, (click -> true)).getItemProvider();
}
}

View file

@ -1,24 +1,28 @@
package xyz.atnrch.nicko.gui.items.common; package xyz.atnrch.nicko.gui.items.common;
import org.bukkit.Material; import org.bukkit.Material;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation;
import xyz.xenondevs.invui.gui.ScrollGui; import xyz.xenondevs.invui.gui.ScrollGui;
import xyz.xenondevs.invui.item.ItemProvider; import xyz.xenondevs.invui.item.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem; import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem;
public class ScrollDownItem extends ScrollItem { public class ScrollDownItem extends ScrollItem {
final I18N i18n;
public ScrollDownItem() { public ScrollDownItem(I18N i18n) {
super(1); super(1);
this.i18n = i18n;
} }
@Override @Override
public ItemProvider getItemProvider(ScrollGui gui) { public ItemProvider getItemProvider(ScrollGui gui) {
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
builder.setDisplayName("Scroll down"); final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.SCROLL_UP);
if (!gui.canScroll(1)) builder.setDisplayName(translation.getName());
builder.addLoreLines("§7§o(You can't scroll further down.)"); if (!gui.canScroll(1)) translation.getLore().forEach(builder::addLoreLines);
return builder; return builder;
} }
} }

View file

@ -1,24 +1,28 @@
package xyz.atnrch.nicko.gui.items.common; package xyz.atnrch.nicko.gui.items.common;
import org.bukkit.Material; import org.bukkit.Material;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.i18n.ItemTranslation;
import xyz.xenondevs.invui.gui.ScrollGui; import xyz.xenondevs.invui.gui.ScrollGui;
import xyz.xenondevs.invui.item.ItemProvider; import xyz.xenondevs.invui.item.ItemProvider;
import xyz.xenondevs.invui.item.builder.ItemBuilder; import xyz.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem; import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem;
public class ScrollUpItem extends ScrollItem { public class ScrollUpItem extends ScrollItem {
final I18N i18n;
public ScrollUpItem() { public ScrollUpItem(I18N i18n) {
super(-1); super(-1);
this.i18n = i18n;
} }
@Override @Override
public ItemProvider getItemProvider(ScrollGui gui) { public ItemProvider getItemProvider(ScrollGui gui) {
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); final ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
builder.setDisplayName("Scroll up"); final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.SCROLL_UP);
if (!gui.canScroll(-1)) builder.setDisplayName(translation.getName());
builder.addLoreLines("§7§o(You've reached the top.)"); if (!gui.canScroll(-1)) translation.getLore().forEach(builder::addLoreLines);
return builder; return builder;
} }

View file

@ -70,6 +70,19 @@ public class I18NDict {
public static final String GO_BACK = GUI_KEY + "go_back"; public static final String GO_BACK = GUI_KEY + "go_back";
public static final String UNAVAILABLE = GUI_KEY + "unavailable"; public static final String UNAVAILABLE = GUI_KEY + "unavailable";
public static final String LOADING = GUI_KEY + "loading"; public static final String LOADING = GUI_KEY + "loading";
public static final String SCROLL_UP = GUI_KEY + "scroll_up";
public static final String SCROLL_DOWN = GUI_KEY + "scroll_down";
public static class Titles {
public static final String TITLE_KEY = GUI_KEY + "title.";
public static final String HOME = TITLE_KEY + "home";
public static final String SETTINGS = TITLE_KEY + "settings";
public static final String ADMIN = TITLE_KEY + "admin";
public static final String CHECK = TITLE_KEY + "check";
public static final String CACHE = TITLE_KEY + "cache";
public static final String INVALIDATE_SKIN = TITLE_KEY + "invalidate_skin";
}
public static class Choice { public static class Choice {
private static final String CHOICE_KEY = GUI_KEY + "choice."; private static final String CHOICE_KEY = GUI_KEY + "choice.";
@ -82,7 +95,6 @@ public class I18NDict {
public static class Home { public static class Home {
private static final String HOME_KEY = GUI_KEY + "home."; private static final String HOME_KEY = GUI_KEY + "home.";
public static final String TITLE = HOME_KEY + "title";
public static final String ADMIN = HOME_KEY + "admin"; public static final String ADMIN = HOME_KEY + "admin";
public static final String CHANGE_NAME = HOME_KEY + "change_name"; public static final String CHANGE_NAME = HOME_KEY + "change_name";
public static final String CHANGE_SKIN = HOME_KEY + "change_skin"; public static final String CHANGE_SKIN = HOME_KEY + "change_skin";
@ -94,7 +106,6 @@ public class I18NDict {
public static class Settings { public static class Settings {
private static final String SETTINGS_KEY = GUI_KEY + "settings."; private static final String SETTINGS_KEY = GUI_KEY + "settings.";
public static final String TITLE = SETTINGS_KEY + "title";
public static final String LANGUAGE = SETTINGS_KEY + "language"; public static final String LANGUAGE = SETTINGS_KEY + "language";
public static final String BUNGEECORD = SETTINGS_KEY + "bungeecord"; public static final String BUNGEECORD = SETTINGS_KEY + "bungeecord";
} }
@ -102,14 +113,13 @@ public class I18NDict {
public static class Admin { public static class Admin {
private static final String ADMIN_KEY = GUI_KEY + "admin."; private static final String ADMIN_KEY = GUI_KEY + "admin.";
public static final String TITLE = ADMIN_KEY + "title";
public static final String MANAGE_CACHE = ADMIN_KEY + "manage_cache"; public static final String MANAGE_CACHE = ADMIN_KEY + "manage_cache";
public static final String MANAGE_PLAYER = ADMIN_KEY + "manage_player"; public static final String MANAGE_PLAYER = ADMIN_KEY + "manage_player";
public static final String CHECK = ADMIN_KEY + "check";
public static class Cache { public static class Cache {
private static final String CACHE_KEY = ADMIN_KEY + "cache."; private static final String CACHE_KEY = ADMIN_KEY + "cache.";
public static final String TITLE = CACHE_KEY + "title";
public static final String STATISTICS = CACHE_KEY + "statistics"; public static final String STATISTICS = CACHE_KEY + "statistics";
public static final String INVALIDATE_CACHE = CACHE_KEY + "invalidate_cache"; public static final String INVALIDATE_CACHE = CACHE_KEY + "invalidate_cache";
public static final String INVALIDATE_SKIN = CACHE_KEY + "invalidate_skin"; public static final String INVALIDATE_SKIN = CACHE_KEY + "invalidate_skin";

View file

@ -28,6 +28,14 @@ event:
invalidate_entry: "§6{0} §fhas been invalidated." invalidate_entry: "§6{0} §fhas been invalidated."
gui: gui:
title:
home: "Nicko - Home"
settings: "Nicko > Settings"
admin: "Nicko > Administration"
check: "Nicko > Admin... > Check"
cache: "Nicko > Admin... > Cache"
invalidate_skin: "... > Cache > Invalidate"
exit: exit:
name: "Exit" name: "Exit"
go_back: go_back:
@ -45,8 +53,15 @@ gui:
name: "§6§oChoose an option..." name: "§6§oChoose an option..."
cancel: cancel:
name: "§cCancel" name: "§cCancel"
scroll_up:
name: "Scroll up"
lore:
- "§8§o(You can't scroll any higher.)"
scroll_down:
name: "Scroll down"
lore:
- "§8§o(You can't scroll any further down.)"
home: home:
title: "Nicko - Home"
admin: admin:
name: "Administration panel" name: "Administration panel"
lore: lore:
@ -66,7 +81,6 @@ gui:
lore: lore:
- "§7Completely remove your disguise." - "§7Completely remove your disguise."
admin: admin:
title: "Nicko > Administration"
manage_cache: manage_cache:
name: "Manage §6skin §fcache..." name: "Manage §6skin §fcache..."
lore: lore:
@ -75,8 +89,13 @@ gui:
name: "Check a player..." name: "Check a player..."
lore: lore:
- "§7See players' disguise information." - "§7See players' disguise information."
check:
name: "{0}"
lore:
- "§cNicked: §a{1}"
- "§cName: §6{2}"
- "§cSkin: §6{3}"
cache: cache:
title: "Nicko > Admin... > Cache"
statistics: statistics:
name: "Statistics" name: "Statistics"
lore: lore:
@ -95,7 +114,6 @@ gui:
- "§7Select a specific skin to invalidate." - "§7Select a specific skin to invalidate."
- "§7Useful if a skin has been recently updated." - "§7Useful if a skin has been recently updated."
settings: settings:
title: "Nicko > Settings"
language: language:
name: "Language" name: "Language"
lore: lore:

View file

@ -28,6 +28,14 @@ event:
invalidate_entry: "§6{0} §fa été invalidé." invalidate_entry: "§6{0} §fa été invalidé."
gui: gui:
title:
home: "Nicko - Accueil"
settings: "Nicko > Paramètres"
admin: "Nicko > Administration"
check: "Nicko > Admin... > Vérification"
cache: "Nicko > Admin... > Cache"
invalidate_skin: "... > Cache > Invalider"
exit: exit:
name: "Quitter" name: "Quitter"
go_back: go_back:
@ -45,8 +53,15 @@ gui:
name: "§6§oChoisissez une option..." name: "§6§oChoisissez une option..."
cancel: cancel:
name: "§cAnnuler" name: "§cAnnuler"
scroll_up:
name: "Défiler vers le haut"
lore:
- "§8§o(Impossible de défiler plus haut.)"
scroll_down:
name: "Défiler vers le bas"
lore:
- "§8§o(Impossible de défiler plus bas.)"
home: home:
title: "Nicko - Accueil"
admin: admin:
name: "Panel d'administration" name: "Panel d'administration"
lore: lore:
@ -66,7 +81,6 @@ gui:
lore: lore:
- "§7Supprime complètement votre déguisement." - "§7Supprime complètement votre déguisement."
admin: admin:
title: "Nicko > Administration"
manage_cache: manage_cache:
name: "Gérer le cache de §6skin..." name: "Gérer le cache de §6skin..."
lore: lore:
@ -75,8 +89,13 @@ gui:
name: "Vérifier un joueur..." name: "Vérifier un joueur..."
lore: lore:
- "§7Vérifiez les informations de déguisement d'un joueur." - "§7Vérifiez les informations de déguisement d'un joueur."
check:
name: "{0}"
lore:
- "§cDéguisé: §a{1}"
- "§cNom: §6{2}"
- "§cSkin: §6{3}"
cache: cache:
title: "Nicko > Admin... > Cache"
statistics: statistics:
name: "Statistiques" name: "Statistiques"
lore: lore:
@ -97,7 +116,6 @@ gui:
- "§7invalider. Utile dans le cas où un skin" - "§7invalider. Utile dans le cas où un skin"
- "§7a récemment été mis à jour." - "§7a récemment été mis à jour."
settings: settings:
title: "Nicko > Paramètres"
language: language:
name: "Langage" name: "Langage"
lore: lore: