refactor: titles among other things

This commit is contained in:
ineanto 2023-07-04 19:36:08 +02:00
parent 31c8c8f695
commit 29a557c42d
21 changed files with 57 additions and 44 deletions

View file

@ -1,7 +1,7 @@
package xyz.atnrch.nicko.gui; package xyz.atnrch.nicko.gui;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import xyz.atnrch.nicko.gui.items.admin.cache.CacheOverviewItem; import xyz.atnrch.nicko.gui.items.admin.cache.CacheStatisticsItem;
import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateCacheItem; import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateCacheItem;
import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateEntryItem; import xyz.atnrch.nicko.gui.items.admin.cache.InvalidateEntryItem;
import xyz.atnrch.nicko.gui.items.common.GoBackItem; import xyz.atnrch.nicko.gui.items.common.GoBackItem;
@ -22,7 +22,7 @@ public class CacheManagementGUI {
"B # # # # # # # #" "B # # # # # # # #"
) )
.addIngredient('B', new GoBackItem(parent.getGUI(), parent.getTitle())) .addIngredient('B', new GoBackItem(parent.getGUI(), parent.getTitle()))
.addIngredient('S', new CacheOverviewItem()) .addIngredient('S', new CacheStatisticsItem())
.addIngredient('A', new InvalidateCacheItem()) .addIngredient('A', new InvalidateCacheItem())
.addIngredient('D', new InvalidateEntryItem()) .addIngredient('D', new InvalidateEntryItem())
.build(); .build();

View file

@ -13,7 +13,7 @@ import org.jetbrains.annotations.NotNull;
public class ManageCacheItem extends AsyncItem { public class ManageCacheItem extends AsyncItem {
public ManageCacheItem() { public ManageCacheItem() {
super(new ItemBuilder(Material.PAINTING) super(new ItemBuilder(Material.PAINTING)
.setDisplayName("§fManage §6skin §fcache...") .setDisplayName("§fManage skin cache...")
.addLoreLines("§7Access the skin cache management panel."), .addLoreLines("§7Access the skin cache management panel."),
() -> { () -> {
final SkullBuilder builder = new SkullBuilder("Notch"); final SkullBuilder builder = new SkullBuilder("Notch");

View file

@ -9,6 +9,8 @@ import xyz.atnrch.nicko.NickoBukkit;
import xyz.atnrch.nicko.gui.ConfirmGUI; import xyz.atnrch.nicko.gui.ConfirmGUI;
import xyz.atnrch.nicko.gui.CacheDetailedGUI; import xyz.atnrch.nicko.gui.CacheDetailedGUI;
import xyz.atnrch.nicko.gui.items.common.confirm.ChoiceCallback; import xyz.atnrch.nicko.gui.items.common.confirm.ChoiceCallback;
import xyz.atnrch.nicko.i18n.I18N;
import xyz.atnrch.nicko.i18n.I18NDict;
import xyz.atnrch.nicko.mojang.MojangAPI; import xyz.atnrch.nicko.mojang.MojangAPI;
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;
@ -41,8 +43,9 @@ public class CacheEntryItem extends AsyncItem {
new ConfirmGUI(player, new ChoiceCallback() { new ConfirmGUI(player, new ChoiceCallback() {
@Override @Override
public void onConfirm() { public void onConfirm() {
final I18N i18n = new I18N(player);
player.sendMessage(i18n.translate(I18NDict.Event.Admin.Cache.INVALIDATE_ENTRY, name));
mojangAPI.eraseFromCache(uuid); mojangAPI.eraseFromCache(uuid);
player.sendMessage(name + " has been erased from the cache.");
} }
@Override @Override

View file

@ -10,18 +10,17 @@ import xyz.xenondevs.invui.item.impl.SuppliedItem;
import java.util.Optional; import java.util.Optional;
public class CacheOverviewItem extends SuppliedItem { public class CacheStatisticsItem extends SuppliedItem {
public CacheOverviewItem() { public CacheStatisticsItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN); final ItemBuilder builder = new ItemBuilder(Material.BOOK);
final LoadingCache<String, Optional<MojangSkin>> cache = NickoBukkit.getInstance().getMojangAPI().getCache(); final LoadingCache<String, Optional<MojangSkin>> cache = NickoBukkit.getInstance().getMojangAPI().getCache();
final CacheStats stats = cache.stats(); final CacheStats stats = cache.stats();
builder.setDisplayName("§6Skin cache §foverview:"); builder.setDisplayName("§fStatistics");
builder.addLoreLines( builder.addLoreLines(
"Request Count: §2" + stats.requestCount(), "Request Count: §b" + stats.requestCount(),
"Skin Cached: §2" + Math.round(cache.size()), "Skin Cached: §b" + Math.round(cache.size()),
"§7§oCache is cleared every 24 hours.", "§8§oCache is cleared every 24 hours.");
"§7§o(Click to refresh)");
return builder; return builder;
}, (event) -> true); }, (event) -> true);
} }

View file

@ -13,7 +13,7 @@ public class InvalidateCacheItem extends SuppliedItem {
public InvalidateCacheItem() { public InvalidateCacheItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.TNT); final ItemBuilder builder = new ItemBuilder(Material.TNT);
builder.setDisplayName("§fInvalidate §6skin cache"); builder.setDisplayName("§fInvalidate cache");
builder.addLoreLines( builder.addLoreLines(
"§c§oNOT RECOMMENDED", "§c§oNOT RECOMMENDED",
"§7Invalidates every skin entry present in the cache.", "§7Invalidates every skin entry present in the cache.",
@ -24,10 +24,11 @@ public class InvalidateCacheItem extends SuppliedItem {
}, (click) -> { }, (click) -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();
if (clickType.isLeftClick() || clickType.isRightClick()) { if (clickType.isLeftClick() || clickType.isRightClick()) {
click.getEvent().getView().close();
final Player player = click.getPlayer(); final Player player = click.getPlayer();
final I18N i18n = new I18N(player); final I18N i18n = new I18N(player);
click.getEvent().getView().close(); player.sendMessage(i18n.translate(I18NDict.Event.Admin.Cache.INVALIDATE_ALL));
player.sendMessage(i18n.translate(I18NDict.Event.Admin.CACHE_CLEAN));
NickoBukkit.getInstance().getMojangAPI().getCache().invalidateAll(); NickoBukkit.getInstance().getMojangAPI().getCache().invalidateAll();
return true; return true;
} }

View file

@ -10,7 +10,7 @@ public class InvalidateEntryItem extends SuppliedItem {
public InvalidateEntryItem() { public InvalidateEntryItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.PAPER); final ItemBuilder builder = new ItemBuilder(Material.PAPER);
builder.setDisplayName("§6Invalidate specific skin..."); builder.setDisplayName("§fInvalidate specific entry");
builder.addLoreLines("§7Select a specific skin to invalidate."); builder.addLoreLines("§7Select a specific skin to invalidate.");
return builder; return builder;
}, (click) -> { }, (click) -> {

View file

@ -11,7 +11,7 @@ public class ChangeBothItem extends SuppliedItem {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.END_PORTAL_FRAME); final ItemBuilder builder = new ItemBuilder(Material.END_PORTAL_FRAME);
builder.setDisplayName("§6Skin §fand §6name §fchange"); builder.setDisplayName("§6Skin §fand §6name §fchange");
builder.addLoreLines("§7Change both your skin and name."); builder.addLoreLines("§7Will open a GUI to change both your name and your skin.");
return builder; return builder;
}, click -> { }, click -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();

View file

@ -11,7 +11,7 @@ public class ChangeNameItem extends SuppliedItem {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG); final ItemBuilder builder = new ItemBuilder(Material.NAME_TAG);
builder.setDisplayName("§fChange §6name"); builder.setDisplayName("§fChange §6name");
builder.addLoreLines("§7Only change your name."); builder.addLoreLines("§7Will open a GUI to change your name only.");
return builder; return builder;
}, click -> { }, click -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();

View file

@ -11,7 +11,7 @@ public class ChangeSkinItem extends SuppliedItem {
super(() -> { super(() -> {
final SkullBuilder builder = new SkullBuilder(player.getName()); final SkullBuilder builder = new SkullBuilder(player.getName());
builder.setDisplayName("§fChange §6skin"); builder.setDisplayName("§fChange §6skin");
builder.addLoreLines("§7Only change your skin."); builder.addLoreLines("§7Will open a GUI to change your skin only.");
return builder; return builder;
}, click -> { }, click -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();

View file

@ -10,7 +10,7 @@ public class GoBackItem extends SuppliedItem {
public GoBackItem(Gui gui, String parentTitle) { public GoBackItem(Gui gui, String parentTitle) {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.ARROW); final ItemBuilder builder = new ItemBuilder(Material.ARROW);
builder.setDisplayName("Go back"); builder.setDisplayName("§fGo back");
builder.addLoreLines("§7Return to the previous window."); builder.addLoreLines("§7Return to the previous window.");
return builder; return builder;
}, click -> { }, click -> {

View file

@ -15,9 +15,9 @@ public class ScrollDownItem extends ScrollItem {
@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("§7Scroll down"); builder.setDisplayName("§fScroll down");
if (!gui.canScroll(1)) if (!gui.canScroll(1))
builder.addLoreLines("§cYou can't scroll further down"); builder.addLoreLines("§7§o(You can't scroll further down.)");
return builder; return builder;
} }

View file

@ -15,9 +15,9 @@ public class ScrollUpItem extends ScrollItem {
@Override @Override
public ItemProvider getItemProvider(ScrollGui gui) { public ItemProvider getItemProvider(ScrollGui gui) {
ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE);
builder.setDisplayName("§7Scroll up"); builder.setDisplayName("§fScroll up");
if (!gui.canScroll(-1)) if (!gui.canScroll(-1))
builder.addLoreLines("§cYou've reached the top"); builder.addLoreLines("§7§o(You've reached the top.)");
return builder; return builder;
} }

View file

@ -8,8 +8,8 @@ public class UnavailableItem extends SuppliedItem {
public UnavailableItem() { public UnavailableItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.RED_TERRACOTTA); final ItemBuilder builder = new ItemBuilder(Material.RED_TERRACOTTA);
builder.setDisplayName("§cFeature unavailable :("); builder.setDisplayName("§fUnavailable");
builder.addLoreLines("§7This button is disabled."); builder.addLoreLines("§7§oThis button is disabled.");
return builder; return builder;
}, click -> true); }, click -> true);
} }

View file

@ -14,8 +14,8 @@ public class AdminAccessItem extends SuppliedItem {
final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK); final ItemBuilder builder = new ItemBuilder(Material.COMMAND_BLOCK);
builder.addEnchantment(Enchantment.DAMAGE_ALL, 1, false); builder.addEnchantment(Enchantment.DAMAGE_ALL, 1, false);
builder.addItemFlags(ItemFlag.HIDE_ENCHANTS); builder.addItemFlags(ItemFlag.HIDE_ENCHANTS);
builder.setDisplayName("§cAdministration panel..."); builder.setDisplayName("§cAdministration panel");
builder.addLoreLines("§7Access the administration panel."); builder.addLoreLines("§7Configure and and manage Nicko.");
return builder; return builder;
}, click -> { }, click -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();

View file

@ -13,8 +13,8 @@ public class ResetItem extends SuppliedItem {
public ResetItem() { public ResetItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.TNT); final ItemBuilder builder = new ItemBuilder(Material.TNT);
builder.setDisplayName("§fReset"); builder.setDisplayName("§fReset appearance");
builder.addLoreLines("§7Get rid of your disguise."); builder.addLoreLines("§7Completely remove your disguise.");
return builder; return builder;
}, (event) -> { }, (event) -> {
final Player player = event.getPlayer(); final Player player = event.getPlayer();

View file

@ -10,8 +10,8 @@ public class SettingsAccessItem extends SuppliedItem {
public SettingsAccessItem() { public SettingsAccessItem() {
super(() -> { super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR); final ItemBuilder builder = new ItemBuilder(Material.COMPARATOR);
builder.setDisplayName("§fSettings..."); builder.setDisplayName("§fSettings");
builder.addLoreLines("§7Adjust your preferences."); builder.addLoreLines("§7Configure your experience.");
return builder; return builder;
}, click -> { }, click -> {
final ClickType clickType = click.getClickType(); final ClickType clickType = click.getClickType();

View file

@ -35,7 +35,7 @@ public class BungeeCordCyclingItem {
private ItemProvider getItemProviderForValue(boolean enabled) { private ItemProvider getItemProviderForValue(boolean enabled) {
final ItemBuilder builder = new ItemBuilder(Material.COMPASS); final ItemBuilder builder = new ItemBuilder(Material.COMPASS);
builder.setDisplayName("§6BungeeCord transfer:"); builder.setDisplayName("§fBungeeCord transfer");
if (enabled) { if (enabled) {
builder.addLoreLines("§7> §cDisabled"); builder.addLoreLines("§7> §cDisabled");
builder.addLoreLines("§6§l> §a§lEnabled"); builder.addLoreLines("§6§l> §a§lEnabled");

View file

@ -36,7 +36,7 @@ public class LanguageCyclingItem {
private ItemProvider generateItem(Locale locale, List<Locale> locales) { private ItemProvider generateItem(Locale locale, List<Locale> locales) {
final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN); final ItemBuilder builder = new ItemBuilder(Material.OAK_SIGN);
builder.setDisplayName("§6Select your language:"); builder.setDisplayName("§fLanguage");
for (Locale value : locales) { for (Locale value : locales) {
if (locale != value) { if (locale != value) {
builder.addLoreLines("§7> " + value.getName()); builder.addLoreLines("§7> " + value.getName());

View file

@ -5,9 +5,15 @@ public class I18NDict {
public static final String EVENT_KEY = "event."; public static final String EVENT_KEY = "event.";
public static class Admin { public static class Admin {
public static final String ADMIN_KEY = "admin."; public static final String ADMIN_KEY = EVENT_KEY + "admin.";
public static final String CACHE_CLEAN = ADMIN_KEY + "cache_clear"; public static class Cache {
public static final String CACHE_KEY = ADMIN_KEY + "cache.";
public static final String INVALIDATE_ALL = CACHE_KEY + "invalidate_all";
public static final String INVALIDATE_ENTRY = CACHE_KEY + "invalidate_entry";
}
} }
public static class Appearance { public static class Appearance {
@ -31,8 +37,8 @@ public class I18NDict {
public static class Restore { public static class Restore {
public static final String RESTORE_KEY = APPEARANCE_KEY + "restore."; public static final String RESTORE_KEY = APPEARANCE_KEY + "restore.";
public static final String OK = RESTORE_KEY + "success"; public static final String OK = RESTORE_KEY + "ok";
public static final String ERROR = RESTORE_KEY + "fail"; public static final String ERROR = RESTORE_KEY + "error";
} }
} }
} }

View file

@ -12,13 +12,15 @@ event:
appearance: appearance:
set: set:
error: "§cUnable to apply your disguise. §7§o({0})" error: "§cUnable to apply your disguise. §7§o({0})"
ok: aDisguise applied!" ok: fDisguise applied."
restore: restore:
error: "§cUnable to apply your previous disguise back. §7§o({0})" error: "§cUnable to apply your previous disguise back. §7§o({0})"
ok: "§aYour previous active disguise has been applied." ok: "§aYour previous active disguise has been applied."
remove: remove:
error: "§cUnable to remove your disguise. It will be reset on your next login." error: "§cUnable to remove your disguise. It will be reset on your next login."
missing: "§cYou are not under a disguise." missing: "§cYou are not under a disguise."
ok: aDisguise removed." ok: fDisguise removed."
admin: admin:
cache_clear: "§aSkin cache cleaned." cache:
invalidate_cache: "§fComplete cache invalidated."
invalidate_entry: "§6{0} §fhas been invalidated."

View file

@ -12,13 +12,15 @@ event:
appearance: appearance:
set: set:
error: "§cImpossible d''appliquer votre déguisement. §7§o({0})" error: "§cImpossible d''appliquer votre déguisement. §7§o({0})"
ok: aDéguisement appliqué !" ok: fDéguisement appliqué."
restore: restore:
error: "§cImpossible d''appliquer votre précédent déguisement. §7§o({0})" error: "§cImpossible d''appliquer votre précédent déguisement. §7§o({0})"
ok: "§aVotre précédent déguisement a été appliqué." ok: "§aVotre précédent déguisement a été appliqué."
remove: remove:
error: "§cImpossible de retirer votre déguisement. Il sera réinitialisé à votre prochaine reconnexion." error: "§cImpossible de retirer votre déguisement. Il sera réinitialisé à votre prochaine reconnexion."
missing: "§cVous n''avez pas de déguisement." missing: "§cVous n''avez pas de déguisement."
ok: aDéguisement retiré." ok: fDéguisement retiré."
admin: admin:
cache_clear: "§aCache des skins nettoyé." cache:
invalidate_cache: "§fCache complet invalidé."
invalidate_entry: "§6{0} §fa été invalidé."