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;
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.InvalidateEntryItem;
import xyz.atnrch.nicko.gui.items.common.GoBackItem;
@ -22,7 +22,7 @@ public class CacheManagementGUI {
"B # # # # # # # #"
)
.addIngredient('B', new GoBackItem(parent.getGUI(), parent.getTitle()))
.addIngredient('S', new CacheOverviewItem())
.addIngredient('S', new CacheStatisticsItem())
.addIngredient('A', new InvalidateCacheItem())
.addIngredient('D', new InvalidateEntryItem())
.build();

View file

@ -13,7 +13,7 @@ import org.jetbrains.annotations.NotNull;
public class ManageCacheItem extends AsyncItem {
public ManageCacheItem() {
super(new ItemBuilder(Material.PAINTING)
.setDisplayName("§fManage §6skin §fcache...")
.setDisplayName("§fManage skin cache...")
.addLoreLines("§7Access the skin cache management panel."),
() -> {
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.CacheDetailedGUI;
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.xenondevs.invui.item.builder.ItemBuilder;
import xyz.xenondevs.invui.item.builder.SkullBuilder;
@ -41,8 +43,9 @@ public class CacheEntryItem extends AsyncItem {
new ConfirmGUI(player, new ChoiceCallback() {
@Override
public void onConfirm() {
final I18N i18n = new I18N(player);
player.sendMessage(i18n.translate(I18NDict.Event.Admin.Cache.INVALIDATE_ENTRY, name));
mojangAPI.eraseFromCache(uuid);
player.sendMessage(name + " has been erased from the cache.");
}
@Override

View file

@ -10,18 +10,17 @@ import xyz.xenondevs.invui.item.impl.SuppliedItem;
import java.util.Optional;
public class CacheOverviewItem extends SuppliedItem {
public CacheOverviewItem() {
public class CacheStatisticsItem extends SuppliedItem {
public CacheStatisticsItem() {
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 CacheStats stats = cache.stats();
builder.setDisplayName("§6Skin cache §foverview:");
builder.setDisplayName("§fStatistics");
builder.addLoreLines(
"Request Count: §2" + stats.requestCount(),
"Skin Cached: §2" + Math.round(cache.size()),
"§7§oCache is cleared every 24 hours.",
"§7§o(Click to refresh)");
"Request Count: §b" + stats.requestCount(),
"Skin Cached: §b" + Math.round(cache.size()),
"§8§oCache is cleared every 24 hours.");
return builder;
}, (event) -> true);
}

View file

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

View file

@ -10,7 +10,7 @@ public class InvalidateEntryItem extends SuppliedItem {
public InvalidateEntryItem() {
super(() -> {
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.");
return builder;
}, (click) -> {

View file

@ -11,7 +11,7 @@ public class ChangeBothItem extends SuppliedItem {
super(() -> {
final ItemBuilder builder = new ItemBuilder(Material.END_PORTAL_FRAME);
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;
}, click -> {
final ClickType clickType = click.getClickType();

View file

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

View file

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

View file

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

View file

@ -15,9 +15,9 @@ public class ScrollDownItem extends ScrollItem {
@Override
public ItemProvider getItemProvider(ScrollGui gui) {
ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE);
builder.setDisplayName("§7Scroll down");
builder.setDisplayName("§fScroll down");
if (!gui.canScroll(1))
builder.addLoreLines("§cYou can't scroll further down");
builder.addLoreLines("§7§o(You can't scroll further down.)");
return builder;
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -5,9 +5,15 @@ public class I18NDict {
public static final String EVENT_KEY = "event.";
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 {
@ -31,8 +37,8 @@ public class I18NDict {
public static class Restore {
public static final String RESTORE_KEY = APPEARANCE_KEY + "restore.";
public static final String OK = RESTORE_KEY + "success";
public static final String ERROR = RESTORE_KEY + "fail";
public static final String OK = RESTORE_KEY + "ok";
public static final String ERROR = RESTORE_KEY + "error";
}
}
}

View file

@ -12,13 +12,15 @@ event:
appearance:
set:
error: "§cUnable to apply your disguise. §7§o({0})"
ok: aDisguise applied!"
ok: fDisguise applied."
restore:
error: "§cUnable to apply your previous disguise back. §7§o({0})"
ok: "§aYour previous active disguise has been applied."
remove:
error: "§cUnable to remove your disguise. It will be reset on your next login."
missing: "§cYou are not under a disguise."
ok: aDisguise removed."
ok: fDisguise removed."
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:
set:
error: "§cImpossible d''appliquer votre déguisement. §7§o({0})"
ok: aDéguisement appliqué !"
ok: fDéguisement appliqué."
restore:
error: "§cImpossible d''appliquer votre précédent déguisement. §7§o({0})"
ok: "§aVotre précédent déguisement a été appliqué."
remove:
error: "§cImpossible de retirer votre déguisement. Il sera réinitialisé à votre prochaine reconnexion."
missing: "§cVous n''avez pas de déguisement."
ok: aDéguisement retiré."
ok: fDéguisement retiré."
admin:
cache_clear: "§aCache des skins nettoyé."
cache:
invalidate_cache: "§fCache complet invalidé."
invalidate_entry: "§6{0} §fa été invalidé."