From c78ba0c84a795fc6deca44e10ce88267058938e5 Mon Sep 17 00:00:00 2001 From: ineanto Date: Fri, 22 Dec 2023 17:44:29 +0100 Subject: [PATCH] feat(i18n): final touches from the move to adventure --- .../ineanto/nicko/appearance/AppearanceManager.java | 9 ++++++++- .../gui/items/admin/check/PlayerInformationItem.java | 6 +++--- .../nicko/gui/items/common/ScrollDownItem.java | 11 ++++++++++- .../ineanto/nicko/gui/items/common/ScrollUpItem.java | 11 ++++++++++- .../nicko/gui/items/settings/LanguageCyclingItem.java | 7 +++++++ .../gui/items/settings/RandomSkinCyclingItem.java | 8 ++++++++ src/main/resources/fr.yml | 2 +- .../ineanto/nicko/test/i18n/ItemTranslationTest.java | 6 +++--- 8 files changed, 50 insertions(+), 10 deletions(-) diff --git a/src/main/java/xyz/ineanto/nicko/appearance/AppearanceManager.java b/src/main/java/xyz/ineanto/nicko/appearance/AppearanceManager.java index c4cd1e0..dd04abb 100644 --- a/src/main/java/xyz/ineanto/nicko/appearance/AppearanceManager.java +++ b/src/main/java/xyz/ineanto/nicko/appearance/AppearanceManager.java @@ -40,7 +40,14 @@ public class AppearanceManager { profile.setName(defaultName); profile.setSkin(defaultName); dataStore.getCache().cache(player.getUniqueId(), profile); - return updatePlayer(true, true); + + final ActionResult result = updatePlayer(true, true); + if (!result.isError()) { + profile.setName(null); + profile.setSkin(null); + dataStore.getCache().cache(player.getUniqueId(), profile); + } + return result; } public ActionResult updatePlayer(boolean skinChange, boolean reset) { diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java index d3f9ed3..7856b64 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/admin/check/PlayerInformationItem.java @@ -43,9 +43,9 @@ public class PlayerInformationItem extends AsyncItem { final NickoProfile profile = optionalProfile.get(); final AbstractItemBuilder headItem = i18n.translateItem(skull, I18NDict.GUI.Admin.CHECK, target.getName(), - (profile.hasData() ? "§a✔" : "§c❌"), - (profile.getName() == null ? "§7N/A" : profile.getName()), - (profile.getSkin() == null ? "§7N/A" : profile.getSkin())); + (profile.hasData() ? "" : ""), + (profile.getName() == null ? "N/A" : profile.getName()), + (profile.getSkin() == null ? "N/A" : profile.getSkin())); if (!profile.hasData()) { // Remove the last 2 lines of the lore. diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollDownItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollDownItem.java index 44b32ab..4f8c333 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollDownItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollDownItem.java @@ -1,6 +1,8 @@ package xyz.ineanto.nicko.gui.items.common; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Material; import xyz.ineanto.nicko.i18n.I18N; import xyz.ineanto.nicko.i18n.I18NDict; @@ -23,7 +25,14 @@ public class ScrollDownItem extends ScrollItem { final ItemBuilder builder = new ItemBuilder(Material.GREEN_STAINED_GLASS_PANE); final Translation translation = i18n.translate(I18NDict.GUI.SCROLL_DOWN); builder.setDisplayName(Component.text(translation.name()).content()); - if (!gui.canScroll(1)) translation.lore().forEach(builder::addLoreLines); + if (!gui.canScroll(1)) { + // Lore serialization + translation.lore().replaceAll(s -> { + final Component deserializedLoreLine = MiniMessage.miniMessage().deserialize(s); + return LegacyComponentSerializer.legacySection().serialize(deserializedLoreLine); + }); + translation.lore().forEach(builder::addLoreLines); + } return builder; } } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollUpItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollUpItem.java index 0e60dfa..d505432 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollUpItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/common/ScrollUpItem.java @@ -1,6 +1,8 @@ package xyz.ineanto.nicko.gui.items.common; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Material; import xyz.ineanto.nicko.i18n.I18N; import xyz.ineanto.nicko.i18n.I18NDict; @@ -23,7 +25,14 @@ public class ScrollUpItem extends ScrollItem { final ItemBuilder builder = new ItemBuilder(Material.RED_STAINED_GLASS_PANE); final Translation translation = i18n.translate(I18NDict.GUI.SCROLL_UP); builder.setDisplayName(Component.text(translation.name()).content()); - if (!gui.canScroll(-1)) translation.lore().forEach(builder::addLoreLines); + if (!gui.canScroll(-1)) { + // Lore serialization + translation.lore().replaceAll(s -> { + final Component deserializedLoreLine = MiniMessage.miniMessage().deserialize(s); + return LegacyComponentSerializer.legacySection().serialize(deserializedLoreLine); + }); + translation.lore().forEach(builder::addLoreLines); + } return builder; } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/settings/LanguageCyclingItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/settings/LanguageCyclingItem.java index 3fa196a..fc9fca8 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/settings/LanguageCyclingItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/settings/LanguageCyclingItem.java @@ -1,6 +1,8 @@ package xyz.ineanto.nicko.gui.items.settings; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Material; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -68,6 +70,11 @@ public class LanguageCyclingItem { builder.addLoreLines("§6§l> §f" + value.getName()); } } + + cyclingChoicesTranslation.lore().replaceAll(s -> { + final Component deserializedLoreLine = MiniMessage.miniMessage().deserialize(s); + return LegacyComponentSerializer.legacySection().serialize(deserializedLoreLine); + }); cyclingChoicesTranslation.lore().forEach(builder::addLoreLines); return builder; } diff --git a/src/main/java/xyz/ineanto/nicko/gui/items/settings/RandomSkinCyclingItem.java b/src/main/java/xyz/ineanto/nicko/gui/items/settings/RandomSkinCyclingItem.java index bedb4e0..74c0546 100644 --- a/src/main/java/xyz/ineanto/nicko/gui/items/settings/RandomSkinCyclingItem.java +++ b/src/main/java/xyz/ineanto/nicko/gui/items/settings/RandomSkinCyclingItem.java @@ -1,5 +1,8 @@ package xyz.ineanto.nicko.gui.items.settings; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.minimessage.MiniMessage; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.Sound; import org.bukkit.entity.Player; import xyz.ineanto.nicko.NickoBukkit; @@ -61,6 +64,11 @@ public class RandomSkinCyclingItem { builder.setDisplayName(randomSkinTranslation.name()); toggleableTranslation.lore().forEach(builder::addLoreLines); + + cyclingChoicesTranslation.lore().replaceAll(s -> { + final Component deserializedLoreLine = MiniMessage.miniMessage().deserialize(s); + return LegacyComponentSerializer.legacySection().serialize(deserializedLoreLine); + }); cyclingChoicesTranslation.lore().forEach(builder::addLoreLines); return builder; } diff --git a/src/main/resources/fr.yml b/src/main/resources/fr.yml index 5532c1e..491638d 100644 --- a/src/main/resources/fr.yml +++ b/src/main/resources/fr.yml @@ -35,7 +35,7 @@ gui: settings: "Nicko > Paramètres" admin: "Nicko > Administration" check: "Nicko > Admin... > Vérification" - confirm: "... > Confirmer l'action" + confirm: "... > Confirmer l''action" cache: "Nicko > Admin... > Cache" invalidate_skin: "... > Cache > Invalider" diff --git a/src/test/java/xyz/ineanto/nicko/test/i18n/ItemTranslationTest.java b/src/test/java/xyz/ineanto/nicko/test/i18n/ItemTranslationTest.java index c38889e..56b768c 100644 --- a/src/test/java/xyz/ineanto/nicko/test/i18n/ItemTranslationTest.java +++ b/src/test/java/xyz/ineanto/nicko/test/i18n/ItemTranslationTest.java @@ -45,9 +45,9 @@ public class ItemTranslationTest { final Translation translation = i18n.translate(I18NDict.GUI.Admin.Cache.STATISTICS, "1", "1"); translation.lore().forEach(System.out::println); assertFalse(translation.lore().isEmpty()); - assertEquals("§fNombre de requêtes: §b1", translation.lore().get(0)); - assertEquals("§fNb. de skin dans le cache: §b1", translation.lore().get(1)); - assertEquals("§8§oLe cache est vidé toutes les 24 heures.", translation.lore().get(2)); + assertEquals("Nombre de requêtes: 1", translation.lore().get(0)); + assertEquals("Nb. de skin dans le cache: 1", translation.lore().get(1)); + assertEquals("Le cache est vidé toutes les 24 heures.", translation.lore().get(2)); } @AfterAll