feat(i18n): gui translation complete
This commit is contained in:
parent
8838961f37
commit
854039d657
16 changed files with 145 additions and 91 deletions
|
@ -17,7 +17,7 @@ public class AdminGUI {
|
|||
|
||||
public AdminGUI(Player 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 GoBackItem backItem = new GoBackItem(player);
|
||||
|
|
|
@ -17,7 +17,7 @@ public class CacheManagementGUI {
|
|||
|
||||
public CacheManagementGUI(Player 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 GoBackItem backItem = new GoBackItem(player);
|
||||
|
|
|
@ -29,7 +29,7 @@ public class HomeGUI {
|
|||
}
|
||||
|
||||
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 ResetItem resetItem = new ResetItem(player);
|
||||
|
|
|
@ -2,6 +2,8 @@ package xyz.atnrch.nicko.gui;
|
|||
|
||||
import xyz.atnrch.nicko.gui.items.common.GoBackItem;
|
||||
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.xenondevs.invui.gui.Gui;
|
||||
import xyz.xenondevs.invui.gui.ScrollGui;
|
||||
|
@ -19,13 +21,15 @@ import java.util.Optional;
|
|||
import java.util.concurrent.ConcurrentMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class CacheDetailedGUI {
|
||||
public static final String TITLE = "... > Cache > Invalidate";
|
||||
|
||||
public class InvalidateSkinGUI {
|
||||
private final Player player;
|
||||
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 List<String> loadedSkins = skins.entrySet().stream()
|
||||
.filter(entry -> entry.getValue().isPresent())
|
||||
|
@ -37,6 +41,8 @@ public class CacheDetailedGUI {
|
|||
.collect(Collectors.toList());
|
||||
|
||||
final CacheManagementGUI parent = new CacheManagementGUI(player);
|
||||
final ScrollUpItem scrollUpItem = new ScrollUpItem(i18n);
|
||||
final ScrollDownItem scrollDownItem = new ScrollDownItem(i18n);
|
||||
final GoBackItem backItem = new GoBackItem(player);
|
||||
|
||||
gui = ScrollGui.items(guiItemBuilder -> {
|
||||
|
@ -48,8 +54,8 @@ public class CacheDetailedGUI {
|
|||
"x x x x x x x x D",
|
||||
"B % % % % % % % %");
|
||||
guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL);
|
||||
guiItemBuilder.addIngredient('U', new ScrollUpItem());
|
||||
guiItemBuilder.addIngredient('D', new ScrollDownItem());
|
||||
guiItemBuilder.addIngredient('U', scrollUpItem);
|
||||
guiItemBuilder.addIngredient('D', scrollDownItem);
|
||||
guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle()));
|
||||
guiItemBuilder.setContent(items);
|
||||
});
|
||||
|
@ -58,6 +64,6 @@ public class CacheDetailedGUI {
|
|||
}
|
||||
|
||||
public void open() {
|
||||
Window.single().setGui(gui).setTitle(TITLE).open(player);
|
||||
Window.single().setGui(gui).setTitle(title).open(player);
|
||||
}
|
||||
}
|
|
@ -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.ScrollDownItem;
|
||||
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.ScrollGui;
|
||||
import xyz.xenondevs.invui.gui.structure.Markers;
|
||||
|
@ -17,19 +19,23 @@ import java.util.List;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
public class PlayerCheckGUI {
|
||||
public static final String TITLE = "Nicko > Admin... > Check";
|
||||
|
||||
private final Player player;
|
||||
private final Gui gui;
|
||||
private final String title;
|
||||
|
||||
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()
|
||||
.map(Entity::getUniqueId)
|
||||
.map(PlayerInformationItem::new)
|
||||
.map(uuid -> new PlayerInformationItem(i18n, uuid))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final AdminGUI parent = new AdminGUI(player);
|
||||
final GoBackItem backItem = new GoBackItem(player);
|
||||
final ScrollUpItem scrollUpItem = new ScrollUpItem(i18n);
|
||||
final ScrollDownItem scrollDownItem = new ScrollDownItem(i18n);
|
||||
|
||||
gui = ScrollGui.items(guiItemBuilder -> {
|
||||
guiItemBuilder.setStructure(
|
||||
|
@ -40,8 +46,8 @@ public class PlayerCheckGUI {
|
|||
"x x x x x x x x D",
|
||||
"B % % % % % % % %");
|
||||
guiItemBuilder.addIngredient('x', Markers.CONTENT_LIST_SLOT_HORIZONTAL);
|
||||
guiItemBuilder.addIngredient('U', new ScrollUpItem());
|
||||
guiItemBuilder.addIngredient('D', new ScrollDownItem());
|
||||
guiItemBuilder.addIngredient('U', scrollUpItem);
|
||||
guiItemBuilder.addIngredient('D', scrollDownItem);
|
||||
guiItemBuilder.addIngredient('B', backItem.get(parent.getGUI(), parent.getTitle()));
|
||||
guiItemBuilder.setContent(items);
|
||||
});
|
||||
|
@ -50,6 +56,6 @@ public class PlayerCheckGUI {
|
|||
}
|
||||
|
||||
public void open() {
|
||||
Window.single().setGui(gui).setTitle(TITLE).open(player);
|
||||
Window.single().setGui(gui).setTitle(title).open(player);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ public class SettingsGUI {
|
|||
dynamicStructure[1] = dynamicStructure[1].replace("T", "U");
|
||||
|
||||
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 UnavailableItem unavailableItem = new UnavailableItem(player);
|
||||
|
|
|
@ -1,20 +1,28 @@
|
|||
package xyz.atnrch.nicko.gui.items.admin;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
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.I18NDict;
|
||||
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.impl.AsyncItem;
|
||||
import xyz.xenondevs.invui.item.impl.SuppliedItem;
|
||||
|
||||
public class ManageCacheItem extends AsyncItem {
|
||||
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 ItemTranslation translation = i18n.translateItem(I18NDict.GUI.Admin.MANAGE_CACHE);
|
||||
|
|
|
@ -7,7 +7,7 @@ import org.bukkit.event.inventory.InventoryClickEvent;
|
|||
import org.jetbrains.annotations.NotNull;
|
||||
import xyz.atnrch.nicko.NickoBukkit;
|
||||
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.i18n.I18N;
|
||||
import xyz.atnrch.nicko.i18n.I18NDict;
|
||||
|
@ -50,7 +50,7 @@ public class CacheEntryItem extends AsyncItem {
|
|||
|
||||
@Override
|
||||
public void onCancel() {
|
||||
new CacheDetailedGUI(player).open();
|
||||
new InvalidateSkinGUI(player).open();
|
||||
}
|
||||
}).open();
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package xyz.atnrch.nicko.gui.items.admin.cache;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
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.I18NDict;
|
||||
import xyz.atnrch.nicko.i18n.ItemTranslation;
|
||||
|
@ -28,7 +28,7 @@ public class InvalidateSkinItem {
|
|||
final ClickType clickType = click.getClickType();
|
||||
if (clickType.isLeftClick() || clickType.isRightClick()) {
|
||||
click.getEvent().getView().close();
|
||||
new CacheDetailedGUI(click.getPlayer()).open();
|
||||
new InvalidateSkinGUI(click.getPlayer()).open();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -4,41 +4,48 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
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.storage.PlayerDataStore;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.builder.SkullBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.AsyncItem;
|
||||
import xyz.xenondevs.invui.item.impl.SuppliedItem;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
public class PlayerInformationItem extends AsyncItem {
|
||||
public PlayerInformationItem(UUID uuid) {
|
||||
super(new ItemBuilder(Material.PAINTING).setDisplayName("§7§oLoading..."), () -> {
|
||||
public PlayerInformationItem(I18N i18n, UUID uuid) {
|
||||
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 SkullBuilder skull = new SkullBuilder(uuid);
|
||||
final PlayerDataStore dataStore = NickoBukkit.getInstance().getDataStore();
|
||||
final Optional<NickoProfile> optionalProfile = dataStore.getData(uuid);
|
||||
|
||||
optionalProfile.ifPresent(profile -> {
|
||||
if (profile.hasData()) {
|
||||
skull.addLoreLines(
|
||||
"§cNicked: §a✔",
|
||||
"§cName: §6" + profile.getName(),
|
||||
"§cSkin: §6" + profile.getSkin()
|
||||
);
|
||||
|
||||
if (optionalProfile.isPresent()) {
|
||||
final NickoProfile profile = optionalProfile.get();
|
||||
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.Admin.CHECK, player.getName(), (profile.hasData() ? "§a✔" : "§c❌"), profile.getName(), profile.getSkin());
|
||||
skull.setDisplayName("§6" + translation.getName());
|
||||
translation.getLore().forEach(skull::addLoreLines);
|
||||
} else {
|
||||
// Default item name in case the profile is not found
|
||||
skull.setDisplayName("§6§lYou should not see this!");
|
||||
skull.addLoreLines(
|
||||
"§cNicked: §c❌",
|
||||
"§cName: §7N/A",
|
||||
"§cSkin: §7N/A"
|
||||
"§cPlease file a bug report",
|
||||
"§cat https://ineanto.xyz/git/ineanto/nicko!"
|
||||
);
|
||||
}
|
||||
|
||||
skull.setDisplayName("§6" + player.getName());
|
||||
});
|
||||
|
||||
return skull;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -1,24 +1,28 @@
|
|||
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.gui.ScrollGui;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem;
|
||||
|
||||
public class ScrollDownItem extends ScrollItem {
|
||||
final I18N i18n;
|
||||
|
||||
public ScrollDownItem() {
|
||||
public ScrollDownItem(I18N i18n) {
|
||||
super(1);
|
||||
this.i18n = i18n;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemProvider getItemProvider(ScrollGui gui) {
|
||||
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
|
||||
builder.setDisplayName("Scroll down");
|
||||
if (!gui.canScroll(1))
|
||||
builder.addLoreLines("§7§o(You can't scroll further down.)");
|
||||
|
||||
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.SCROLL_UP);
|
||||
builder.setDisplayName(translation.getName());
|
||||
if (!gui.canScroll(1)) translation.getLore().forEach(builder::addLoreLines);
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,24 +1,28 @@
|
|||
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.gui.ScrollGui;
|
||||
import xyz.xenondevs.invui.item.ItemProvider;
|
||||
import xyz.xenondevs.invui.item.builder.ItemBuilder;
|
||||
import xyz.xenondevs.invui.item.impl.controlitem.ScrollItem;
|
||||
|
||||
public class ScrollUpItem extends ScrollItem {
|
||||
final I18N i18n;
|
||||
|
||||
public ScrollUpItem() {
|
||||
public ScrollUpItem(I18N i18n) {
|
||||
super(-1);
|
||||
this.i18n = i18n;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemProvider getItemProvider(ScrollGui gui) {
|
||||
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
||||
builder.setDisplayName("Scroll up");
|
||||
if (!gui.canScroll(-1))
|
||||
builder.addLoreLines("§7§o(You've reached the top.)");
|
||||
|
||||
final ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
|
||||
final ItemTranslation translation = i18n.translateItem(I18NDict.GUI.SCROLL_UP);
|
||||
builder.setDisplayName(translation.getName());
|
||||
if (!gui.canScroll(-1)) translation.getLore().forEach(builder::addLoreLines);
|
||||
return builder;
|
||||
}
|
||||
|
||||
|
|
|
@ -70,6 +70,19 @@ public class I18NDict {
|
|||
public static final String GO_BACK = GUI_KEY + "go_back";
|
||||
public static final String UNAVAILABLE = GUI_KEY + "unavailable";
|
||||
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 {
|
||||
private static final String CHOICE_KEY = GUI_KEY + "choice.";
|
||||
|
@ -82,7 +95,6 @@ public class I18NDict {
|
|||
public static class 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 CHANGE_NAME = HOME_KEY + "change_name";
|
||||
public static final String CHANGE_SKIN = HOME_KEY + "change_skin";
|
||||
|
@ -94,7 +106,6 @@ public class I18NDict {
|
|||
public static class 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 BUNGEECORD = SETTINGS_KEY + "bungeecord";
|
||||
}
|
||||
|
@ -102,14 +113,13 @@ public class I18NDict {
|
|||
public static class 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_PLAYER = ADMIN_KEY + "manage_player";
|
||||
public static final String CHECK = ADMIN_KEY + "check";
|
||||
|
||||
public static class 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 INVALIDATE_CACHE = CACHE_KEY + "invalidate_cache";
|
||||
public static final String INVALIDATE_SKIN = CACHE_KEY + "invalidate_skin";
|
||||
|
|
|
@ -28,6 +28,14 @@ event:
|
|||
invalidate_entry: "§6{0} §fhas been invalidated."
|
||||
|
||||
gui:
|
||||
title:
|
||||
home: "Nicko - Home"
|
||||
settings: "Nicko > Settings"
|
||||
admin: "Nicko > Administration"
|
||||
check: "Nicko > Admin... > Check"
|
||||
cache: "Nicko > Admin... > Cache"
|
||||
invalidate_skin: "... > Cache > Invalidate"
|
||||
|
||||
exit:
|
||||
name: "Exit"
|
||||
go_back:
|
||||
|
@ -45,8 +53,15 @@ gui:
|
|||
name: "§6§oChoose an option..."
|
||||
cancel:
|
||||
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:
|
||||
title: "Nicko - Home"
|
||||
admin:
|
||||
name: "Administration panel"
|
||||
lore:
|
||||
|
@ -66,7 +81,6 @@ gui:
|
|||
lore:
|
||||
- "§7Completely remove your disguise."
|
||||
admin:
|
||||
title: "Nicko > Administration"
|
||||
manage_cache:
|
||||
name: "Manage §6skin §fcache..."
|
||||
lore:
|
||||
|
@ -75,8 +89,13 @@ gui:
|
|||
name: "Check a player..."
|
||||
lore:
|
||||
- "§7See players' disguise information."
|
||||
check:
|
||||
name: "{0}"
|
||||
lore:
|
||||
- "§cNicked: §a{1}"
|
||||
- "§cName: §6{2}"
|
||||
- "§cSkin: §6{3}"
|
||||
cache:
|
||||
title: "Nicko > Admin... > Cache"
|
||||
statistics:
|
||||
name: "Statistics"
|
||||
lore:
|
||||
|
@ -95,7 +114,6 @@ gui:
|
|||
- "§7Select a specific skin to invalidate."
|
||||
- "§7Useful if a skin has been recently updated."
|
||||
settings:
|
||||
title: "Nicko > Settings"
|
||||
language:
|
||||
name: "Language"
|
||||
lore:
|
||||
|
|
|
@ -28,6 +28,14 @@ event:
|
|||
invalidate_entry: "§6{0} §fa été invalidé."
|
||||
|
||||
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:
|
||||
name: "Quitter"
|
||||
go_back:
|
||||
|
@ -45,8 +53,15 @@ gui:
|
|||
name: "§6§oChoisissez une option..."
|
||||
cancel:
|
||||
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:
|
||||
title: "Nicko - Accueil"
|
||||
admin:
|
||||
name: "Panel d'administration"
|
||||
lore:
|
||||
|
@ -66,7 +81,6 @@ gui:
|
|||
lore:
|
||||
- "§7Supprime complètement votre déguisement."
|
||||
admin:
|
||||
title: "Nicko > Administration"
|
||||
manage_cache:
|
||||
name: "Gérer le cache de §6skin..."
|
||||
lore:
|
||||
|
@ -75,8 +89,13 @@ gui:
|
|||
name: "Vérifier un joueur..."
|
||||
lore:
|
||||
- "§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:
|
||||
title: "Nicko > Admin... > Cache"
|
||||
statistics:
|
||||
name: "Statistiques"
|
||||
lore:
|
||||
|
@ -97,7 +116,6 @@ gui:
|
|||
- "§7invalider. Utile dans le cas où un skin"
|
||||
- "§7a récemment été mis à jour."
|
||||
settings:
|
||||
title: "Nicko > Paramètres"
|
||||
language:
|
||||
name: "Langage"
|
||||
lore:
|
||||
|
|
Loading…
Reference in a new issue