From bda87614fb0a6e97b85963113ed4d2bf549d49fa Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Sun, 17 May 2026 17:58:04 +0200 Subject: [PATCH 1/2] =?UTF-8?q?add=20translation=20for=20economy,=20events?= =?UTF-8?q?,=20friend,=20homes=20(not=20finished),=20c=20la=20hess=20l'IA?= =?UTF-8?q?=20ma=20recal=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/features/economy/Transaction.java | 28 +-- .../economy/menu/PersonalBankDepositMenu.java | 42 ++--- .../economy/menu/PersonalBankMenu.java | 43 ++--- .../menu/PersonalBankWithdrawMenu.java | 42 ++--- .../economy/menu/TransactionsMenu.java | 12 +- .../contents/contest/menu/VoteMenu.java | 161 ++++++++++-------- .../core/features/friend/FriendRequest.java | 4 +- .../friend/commands/FriendCommand.java | 161 ++++++++++++++---- .../homes/command/DelHomeCommand.java | 30 +++- .../homes/command/HomeWorldCommand.java | 71 +++++++- .../homes/command/RelocateHomeCommand.java | 34 +++- .../homes/command/RenameHomeCommand.java | 40 ++++- .../homes/command/SetHomeCommand.java | 52 ++++-- .../features/homes/command/TpHomeCommand.java | 35 +++- .../homes/menu/HomeDeleteConfirmMenu.java | 28 ++- .../core/features/homes/menu/HomeMenu.java | 31 ++-- .../features/homes/menu/HomeUpgradeMenu.java | 33 ++-- .../core/features/homes/models/Home.java | 21 ++- .../core/features/homes/utils/HomeUtil.java | 16 +- .../translations/default/economy.properties | 56 ++++++ .../translations/default/events.properties | 18 ++ .../translations/default/friend.properties | 27 +++ .../translations/default/homes.properties | 64 +++++++ 23 files changed, 760 insertions(+), 289 deletions(-) create mode 100644 src/main/resources/translations/default/economy.properties create mode 100644 src/main/resources/translations/default/events.properties create mode 100644 src/main/resources/translations/default/friend.properties create mode 100644 src/main/resources/translations/default/homes.properties diff --git a/src/main/java/fr/openmc/core/features/economy/Transaction.java b/src/main/java/fr/openmc/core/features/economy/Transaction.java index a61f15810..52047a08e 100644 --- a/src/main/java/fr/openmc/core/features/economy/Transaction.java +++ b/src/main/java/fr/openmc/core/features/economy/Transaction.java @@ -3,11 +3,13 @@ import com.j256.ormlite.field.DatabaseField; import com.j256.ormlite.table.DatabaseTable; import fr.openmc.core.utils.cache.CacheOfflinePlayer; +import fr.openmc.core.utils.text.messages.TranslationManager; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.List; import java.util.Objects; import java.util.UUID; @@ -49,31 +51,35 @@ public ItemStack toItemStack(UUID player) { if (!Objects.equals(this.recipient, player.toString())) { itemstack = new ItemStack(Material.RED_CONCRETE, 1); itemmeta = itemstack.getItemMeta(); - itemmeta.setDisplayName("Transaction sortante"); + itemmeta.displayName(TranslationManager.translation("feature.economy.transaction.outgoing.name")); String recipient = "CONSOLE"; if (!this.recipient.equals("CONSOLE")) { recipient = CacheOfflinePlayer.getOfflinePlayer(UUID.fromString(this.recipient)).getName(); } - itemmeta.setLore(List.of( - "§r§6Destination :§f " + recipient, - "§r§6Montant :§f " + this.amount, - "§r§6Raison :§f " + reason)); + itemmeta.lore(TranslationManager.translationLore( + "feature.economy.transaction.outgoing.lore", + Component.text(recipient).color(NamedTextColor.WHITE), + Component.text(this.amount).color(NamedTextColor.WHITE), + Component.text(reason).color(NamedTextColor.WHITE) + )); } else { itemstack = new ItemStack(Material.LIME_CONCRETE, 1); itemmeta = itemstack.getItemMeta(); - itemmeta.setDisplayName("Transaction entrante"); + itemmeta.displayName(TranslationManager.translation("feature.economy.transaction.incoming.name")); String senderName = "CONSOLE"; if (!this.sender.equals("CONSOLE")) { senderName = CacheOfflinePlayer.getOfflinePlayer(UUID.fromString(this.sender)).getName(); } - itemmeta.setLore(List.of( - "§r§6Envoyeur :§f " + senderName, - "§r§6Montant :§f " + this.amount, - "§r§6Raison :§f " + reason)); + itemmeta.lore(TranslationManager.translationLore( + "feature.economy.transaction.incoming.lore", + Component.text(senderName).color(NamedTextColor.WHITE), + Component.text(this.amount).color(NamedTextColor.WHITE), + Component.text(reason).color(NamedTextColor.WHITE) + )); } itemstack.setItemMeta(itemmeta); diff --git a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java index b52a38bca..7eb67f572 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java @@ -6,7 +6,9 @@ import fr.openmc.api.menulib.utils.ItemBuilder; import fr.openmc.core.features.economy.BankManager; import fr.openmc.core.features.economy.EconomyManager; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -29,7 +31,7 @@ public PersonalBankDepositMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Banques - Déposer"); + return TranslationManager.translation("feature.economy.bank.deposit.menu.title"); } @Override @@ -55,16 +57,14 @@ public void onInventoryClick(InventoryClickEvent click) { double moneyPlayer = EconomyManager.getBalance(player.getUniqueId()); double halfMoneyPlayer = moneyPlayer/2; - List loreBankDepositAll = List.of( - Component.text("§7Tout votre argent sera placé dans §6votre banque"), - Component.empty(), - Component.text("§7Montant qui sera deposé : §d" + EconomyManager.getFormattedSimplifiedNumber(moneyPlayer) + " ").append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - Component.empty(), - Component.text("§e§lCLIQUEZ ICI POUR DEPOSER") + List loreBankDepositAll = TranslationManager.translationLore( + "feature.economy.bank.deposit.all.lore", + Component.text(EconomyManager.getFormattedSimplifiedNumber(moneyPlayer)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false) ); inventory.put(11, new ItemBuilder(this, new ItemStack(Material.HOPPER, 64), itemMeta -> { - itemMeta.itemName(Component.text("§7Déposer tout votre §6argent")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.deposit.all.name")); itemMeta.lore(loreBankDepositAll); }).setOnClick(inventoryClickEvent -> { BankManager.deposit(player.getUniqueId(), String.valueOf(moneyPlayer)); @@ -72,29 +72,24 @@ public void onInventoryClick(InventoryClickEvent click) { })); - List loreBankDepositHalf = List.of( - Component.text("§7La moitié de votre argent sera placé dans §6votre banque"), - Component.empty(), - Component.text("§7Montant qui sera deposé : §d" + EconomyManager.getFormattedSimplifiedNumber(halfMoneyPlayer) + " ").append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - Component.empty(), - Component.text("§e§lCLIQUEZ ICI POUR DEPOSER") + List loreBankDepositHalf = TranslationManager.translationLore( + "feature.economy.bank.deposit.half.lore", + Component.text(EconomyManager.getFormattedSimplifiedNumber(halfMoneyPlayer)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false) ); inventory.put(13, new ItemBuilder(this,new ItemStack(Material.HOPPER, 32), itemMeta -> { - itemMeta.itemName(Component.text("§7Déposer la moitié de votre §6argent")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.deposit.half.name")); itemMeta.lore(loreBankDepositHalf); }).setOnClick(inventoryClickEvent -> { BankManager.deposit(player.getUniqueId(), String.valueOf(halfMoneyPlayer)); player.closeInventory(); })); - List loreBankDepositInput = List.of( - Component.text("§7Votre argent sera placé dans §6votre banque"), - Component.text("§e§lCLIQUEZ ICI POUR INDIQUER LE MONTANT") - ); + List loreBankDepositInput = TranslationManager.translationLore("feature.economy.bank.deposit.input.lore"); inventory.put(15, new ItemBuilder(this, Material.OAK_SIGN, itemMeta -> { - itemMeta.itemName(Component.text("§7Déposer un §6montant précis")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.deposit.input.name")); itemMeta.lore(loreBankDepositInput); }).setOnClick(inventoryClickEvent -> { DialogInput.send(player, Component.text("Entrez le montant que vous voulez déposer"), MAX_LENGTH, input -> { @@ -106,11 +101,8 @@ public void onInventoryClick(InventoryClickEvent click) { })); inventory.put(18, new ItemBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(Component.text("§aRetour")); - itemMeta.lore(List.of( - Component.text("§7Vous allez retourner au menu de votre banque"), - Component.text("§e§lCLIQUEZ ICI POUR CONFIRMER") - )); + itemMeta.itemName(TranslationManager.translation("messages.menus.back")); + itemMeta.lore(TranslationManager.translationLore("feature.economy.bank.back.lore")); }, true)); return inventory; diff --git a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankMenu.java index 5c3ca7b6d..3c15669fd 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankMenu.java @@ -14,7 +14,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -35,7 +37,7 @@ public PersonalBankMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Banques"); + return TranslationManager.translation("feature.economy.bank.menu.title"); } @Override @@ -58,13 +60,10 @@ public void onInventoryClick(InventoryClickEvent click) { Map inventory = new HashMap<>(); Player player = getOwner(); - List loreBankDeposit = List.of( - Component.text("§7Votre argent sera placé dans votre banque"), - Component.text("§e§lCLIQUEZ ICI POUR DEPOSER") - ); + List loreBankDeposit = TranslationManager.translationLore("feature.economy.bank.menu.deposit.lore"); inventory.put(11, new ItemBuilder(this, Material.HOPPER, itemMeta -> { - itemMeta.itemName(Component.text("§7Déposer de l'§6argent")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.menu.deposit.name")); itemMeta.lore(loreBankDeposit); }).setOnClick(inventoryClickEvent -> { new PersonalBankDepositMenu(player).open(); @@ -74,39 +73,33 @@ public void onInventoryClick(InventoryClickEvent click) { if (playerCity == null) { MessagesManager.sendMessage(player, - Component.text("Pour avoir une banque personnelle, vous devez appartenir à une ville de niveau 2 minimum !"), + TranslationManager.translation("feature.economy.bank.menu.need_city"), Prefix.BANK, MessageType.ERROR, false); return Map.of(); } Supplier interestItemSupplier = () -> { return new ItemBuilder(this, Material.DIAMOND_BLOCK, itemMeta -> { - itemMeta.itemName(Component.text("§6Votre argent")); - itemMeta.lore(List.of( - Component.text("§7Vous avez actuellement §d" + - EconomyManager.getFormattedSimplifiedNumber(BankManager.getBankBalance(player.getUniqueId())) + " ") - .append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - - Component.text("§7Votre limite d'argent dans votre banque est de §d" + - EconomyManager.getFormattedSimplifiedNumber(PlayerBankLimitRewards.getBankBalanceLimit(playerCity.getLevel())) + " ") - .append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - Component.empty(), - Component.text("§7Votre prochain intérêt est de §b" + BankManager.calculatePlayerInterest(player.getUniqueId()) * 100 + "% §7dans §b" + DateUtils.convertSecondToTime(BankManager.getSecondsUntilInterest())) - ) - ); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.menu.balance.name")); + itemMeta.lore(TranslationManager.translationLore( + "feature.economy.bank.menu.balance.lore", + Component.text(EconomyManager.getFormattedSimplifiedNumber(BankManager.getBankBalance(player.getUniqueId()))).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false), + Component.text(EconomyManager.getFormattedSimplifiedNumber(PlayerBankLimitRewards.getBankBalanceLimit(playerCity.getLevel()))).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false), + Component.text(BankManager.calculatePlayerInterest(player.getUniqueId()) * 100 + "%").color(NamedTextColor.AQUA), + Component.text(DateUtils.convertSecondToTime(BankManager.getSecondsUntilInterest())).color(NamedTextColor.AQUA) + )); }); }; MenuUtils.runDynamicItem(player, this, 13, interestItemSupplier) .runTaskTimer(OMCPlugin.getInstance(), 0L, 20L); - List loreBankTake = List.of( - Component.text("§7L'argent sera pris dans votre banque"), - Component.text("§e§lCLIQUEZ ICI POUR RETIRER") - ); + List loreBankTake = TranslationManager.translationLore("feature.economy.bank.menu.withdraw.lore"); inventory.put(15, new ItemBuilder(this, Material.DISPENSER, itemMeta -> { - itemMeta.itemName(Component.text("§7Retirer de l'§6argent")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.menu.withdraw.name")); itemMeta.lore(loreBankTake); }).setOnClick(inventoryClickEvent -> { new PersonalBankWithdrawMenu(player).open(); diff --git a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java index 866c77df7..b424af253 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java @@ -6,7 +6,9 @@ import fr.openmc.api.menulib.utils.ItemBuilder; import fr.openmc.core.features.economy.BankManager; import fr.openmc.core.features.economy.EconomyManager; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -29,7 +31,7 @@ public PersonalBankWithdrawMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Banques - Retirer"); + return TranslationManager.translation("feature.economy.bank.withdraw.menu.title"); } @Override @@ -55,32 +57,28 @@ public void onInventoryClick(InventoryClickEvent click) { double moneyBankPlayer = BankManager.getBankBalance(player.getUniqueId()); double halfMoneyBankPlayer = moneyBankPlayer/2; - List loreBankWithdrawAll = List.of( - Component.text("§7Tout l'argent placé dans §6votre banque §7vous sera donné"), - Component.empty(), - Component.text("§7Montant qui vous sera donné : §d" + EconomyManager.getFormattedSimplifiedNumber(moneyBankPlayer) + " ").append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - Component.empty(), - Component.text("§e§lCLIQUEZ ICI POUR PRENDRE") + List loreBankWithdrawAll = TranslationManager.translationLore( + "feature.economy.bank.withdraw.all.lore", + Component.text(EconomyManager.getFormattedSimplifiedNumber(moneyBankPlayer)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false) ); inventory.put(11, new ItemBuilder(this, new ItemStack(Material.DISPENSER, 64), itemMeta -> { - itemMeta.itemName(Component.text("§7Prendre l'§6argent de votre banque")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.withdraw.all.name")); itemMeta.lore(loreBankWithdrawAll); }).setOnClick(inventoryClickEvent -> { player.closeInventory(); BankManager.withdraw(player.getUniqueId(), String.valueOf(moneyBankPlayer)); })); - List loreBankWithdrawHalf = List.of( - Component.text("§7La moitié de l'argent sera pris de §6votre banque §7pour vous le donner"), - Component.empty(), - Component.text("§7Montant qui vous sera donné : §d" + EconomyManager.getFormattedSimplifiedNumber(halfMoneyBankPlayer) + " ").append(Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false)), - Component.empty(), - Component.text("§e§lCLIQUEZ ICI POUR PRENDRE") + List loreBankWithdrawHalf = TranslationManager.translationLore( + "feature.economy.bank.withdraw.half.lore", + Component.text(EconomyManager.getFormattedSimplifiedNumber(halfMoneyBankPlayer)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false) ); inventory.put(13, new ItemBuilder(this,new ItemStack(Material.DISPENSER, 32), itemMeta -> { - itemMeta.itemName(Component.text("§7Prendre la moitié de l'§6argent de votre banque")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.withdraw.half.name")); itemMeta.lore(loreBankWithdrawHalf); }).setOnClick(inventoryClickEvent -> { BankManager.withdraw(player.getUniqueId(), String.valueOf(halfMoneyBankPlayer)); @@ -88,13 +86,12 @@ public void onInventoryClick(InventoryClickEvent click) { })); - List loreBankWithdrawInput = List.of( - Component.text("§7L'argent demandé sera pris dans §6votre banque §7pour vous le donner"), - Component.text("§e§lCLIQUEZ ICI POUR INDIQUER LE MONTANT") + List loreBankWithdrawInput = TranslationManager.translationLore( + "feature.economy.bank.withdraw.input.lore" ); inventory.put(15, new ItemBuilder(this, Material.OAK_SIGN, itemMeta -> { - itemMeta.itemName(Component.text("§7Prendre un §6montant précis")); + itemMeta.itemName(TranslationManager.translation("feature.economy.bank.withdraw.input.name")); itemMeta.lore(loreBankWithdrawInput); }).setOnClick(inventoryClickEvent -> { DialogInput.send(player, Component.text("Entrez le montant que vous voulez retirer"), MAX_LENGTH, input -> { @@ -105,11 +102,8 @@ public void onInventoryClick(InventoryClickEvent click) { })); inventory.put(18, new ItemBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(Component.text("§aRetour")); - itemMeta.lore(List.of( - Component.text("§7Vous allez retourner au menu de votre banque"), - Component.text("§e§lCLIQUEZ ICI POUR CONFIRMER") - )); + itemMeta.itemName(TranslationManager.translation("messages.menus.back")); + itemMeta.lore(TranslationManager.translationLore("feature.economy.bank.back.lore")); }, true)); return inventory; diff --git a/src/main/java/fr/openmc/core/features/economy/menu/TransactionsMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/TransactionsMenu.java index a875fa8d1..f13d8078e 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/TransactionsMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/TransactionsMenu.java @@ -8,6 +8,7 @@ import fr.openmc.core.features.economy.TransactionsManager; import fr.openmc.core.registry.items.CustomItemRegistry; import fr.openmc.core.utils.cache.CacheOfflinePlayer; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -31,7 +32,10 @@ public TransactionsMenu(Player owner, UUID target) { @Override public @NotNull Component getName() { - return Component.text("Menu des transactions de " + CacheOfflinePlayer.getOfflinePlayer(target).getName()); + return TranslationManager.translation( + "feature.economy.transactions.menu.title", + Component.text(CacheOfflinePlayer.getOfflinePlayer(target).getName()) + ); } @Override @@ -76,9 +80,9 @@ public List getItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.displayName(Component.text("§7Fermer"))).setCloseButton()); - map.put(48, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.displayName(Component.text("§cPage précédente"))).setPreviousPageButton()); - map.put(50, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.displayName(Component.text("§aPage suivante"))).setNextPageButton()); + map.put(49, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); + map.put(48, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); + map.put(50, new ItemBuilder(this, CustomItemRegistry.getByName("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); return map; } diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java index 77c2330a4..9bcff6d9d 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java @@ -11,6 +11,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; @@ -21,7 +22,10 @@ import org.bukkit.event.inventory.InventoryCloseEvent; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class VoteMenu extends Menu { @@ -31,7 +35,7 @@ public VoteMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Contests - Vote"); + return TranslationManager.translation("feature.events.contest.vote.menu.title"); } @Override @@ -76,69 +80,68 @@ public void onInventoryClick(InventoryClickEvent event) { ContestPlayer playerData = ContestManager.dataPlayer.get(player.getUniqueId()); - String voteTeamMsg = "§7Votez pour la team "; - String winMsg = "§7Faites la gagner en déposant le plus de points"; - String clickMsg = "§c§lATTENTION ! Le choix est définitif!"; - - if (playerData == null) { ench1 = false; ench2 = false; - lore1.add(Component.text(voteTeamMsg) - .append(Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1)) - ); - lore1.add(Component.text(winMsg)); - lore1.add(Component.text(clickMsg)); - - - lore2.add(Component.text(voteTeamMsg) - .append(Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2)) - ); - lore2.add(Component.text(winMsg)); - lore2.add(Component.text(clickMsg)); + lore1.add(TranslationManager.translation( + "feature.events.contest.vote.lore.vote_team", + Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1) + )); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.win")); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.warning_choice")); + + + lore2.add(TranslationManager.translation( + "feature.events.contest.vote.lore.vote_team", + Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2) + )); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.win")); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.warning_choice")); } else { if (playerData.getCamp() <= 0) { ench1 = false; ench2 = false; - lore1.add(Component.text(voteTeamMsg) - .append(Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1)) - ); - lore1.add(Component.text(winMsg)); - lore1.add(Component.text(clickMsg)); - - lore2.add(Component.text(voteTeamMsg) - .append(Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2)) - ); - lore2.add(Component.text(winMsg)); - lore2.add(Component.text(clickMsg)); + lore1.add(TranslationManager.translation( + "feature.events.contest.vote.lore.vote_team", + Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1) + )); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.win")); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.warning_choice")); + + lore2.add(TranslationManager.translation( + "feature.events.contest.vote.lore.vote_team", + Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2) + )); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.win")); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.warning_choice")); } else if (playerData.getCamp() == 1) { - lore1.add( - Component.text("§7Vous avez votez pour la team ") - .append(Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1)) - ); - lore1.add(Component.text("§7Faites la gagner en déposant le plus de points !")); + lore1.add(TranslationManager.translation( + "feature.events.contest.vote.lore.voted_for", + Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1) + )); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.win_exclaim")); ench1 = true; - lore2.add( - Component.text("§7Faites perdre la team ") - .append(Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2)) - ); - lore2.add(Component.text("§7En apportant le plus de points que vous pouvez !")); + lore2.add(TranslationManager.translation( + "feature.events.contest.vote.lore.lose_team", + Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2) + )); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.lose_detail")); ench2 = false; } else if (playerData.getCamp() == 2) { - lore1.add( - Component.text("§7Faites perdre la team ") - .append(Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1)) - ); - lore1.add(Component.text("§7En apportant le plus de points que vous pouvez !")); + lore1.add(TranslationManager.translation( + "feature.events.contest.vote.lore.lose_team", + Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1) + )); + lore1.add(TranslationManager.translation("feature.events.contest.vote.lore.lose_detail")); ench1 = false; - lore2.add( - Component.text("§7Vous avez votez pour la team ") - .append(Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2)) - ); - lore2.add(Component.text("§7Faites la gagner en déposant le plus de points !")); + lore2.add(TranslationManager.translation( + "feature.events.contest.vote.lore.voted_for", + Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2) + )); + lore2.add(TranslationManager.translation("feature.events.contest.vote.lore.win_exclaim")); ench2 = true; } else { ench1 = false; @@ -146,11 +149,7 @@ public void onInventoryClick(InventoryClickEvent event) { } } - List loreInfo = Arrays.asList( - Component.text("§7Apprenez en plus sur les contests !"), - Component.text("§7Le déroulement, les résultats, ..."), - Component.text("§e§lCLIQUEZ ICI POUR EN VOIR PLUS!") - ); + List loreInfo = TranslationManager.translationLore("feature.events.contest.vote.info.lore"); inventory.put(camp1Slot, new ItemBuilder(this, m1, itemMeta -> { itemMeta.displayName(Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1)); @@ -158,20 +157,18 @@ public void onInventoryClick(InventoryClickEvent event) { itemMeta.setEnchantmentGlintOverride(ench1); }).setOnClick(inventoryClickEvent -> { if (playerData == null || playerData.getCamp() <= 0) { - String messageTeam = "La Team "; - String campName = ContestManager.data.getCamp1(); String campColor = ContestManager.data.getColor1(); NamedTextColor colorFinal = ColorUtils.getNamedTextColor(campColor); - List loreAccept = Arrays.asList( - Component.text("§7Vous allez rejoindre ").append(Component.text(messageTeam + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), - Component.text("§c§lATTENTION ! Vous ne pourrez changer de choix !") + List loreAccept = TranslationManager.translationLore( + "feature.events.contest.vote.confirm.join.lore", + Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) ); - List loreDeny = Arrays.asList( - Component.text("§7Vous allez annuler votre choix : ").append(Component.text(messageTeam + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), - Component.text("§c§lATTENTION ! Vous ne pourrez changer de choix !") + List loreDeny = TranslationManager.translationLore( + "feature.events.contest.vote.confirm.cancel.lore", + Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) ); ConfirmMenu menu = new ConfirmMenu( @@ -179,7 +176,16 @@ public void onInventoryClick(InventoryClickEvent event) { () -> { ContestManager.dataPlayer.put(player.getUniqueId(), new ContestPlayer(player.getUniqueId(), 0, 1, colorFinal)); player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 1.0F, 0.2F); - MessagesManager.sendMessage(player, Component.text("§7Vous avez bien rejoint : ").append(Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), Prefix.CONTEST, MessageType.SUCCESS, false); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.events.contest.vote.joined", + Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + ), + Prefix.CONTEST, + MessageType.SUCCESS, + false + ); player.closeInventory(); }, @@ -201,20 +207,18 @@ public void onInventoryClick(InventoryClickEvent event) { itemMeta.setEnchantmentGlintOverride(ench2); }).setOnClick(inventoryClickEvent -> { if (playerData == null || playerData.getCamp() <= 0) { - String messageTeam = "La Team "; - String campName = ContestManager.data.getCamp2(); String campColor = ContestManager.data.getColor2(); NamedTextColor colorFinal = ColorUtils.getNamedTextColor(campColor); - List loreAccept = Arrays.asList( - Component.text("§7Vous allez rejoindre ").append(Component.text(messageTeam + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), - Component.text("§c§lATTENTION ! Vous ne pourrez changer de choix !") + List loreAccept = TranslationManager.translationLore( + "feature.events.contest.vote.confirm.join.lore", + Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) ); - List loreDeny = Arrays.asList( - Component.text("§7Vous allez annuler votre choix : ").append(Component.text(messageTeam + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), - Component.text("§c§lATTENTION ! Vous ne pourrez changer de choix !") + List loreDeny = TranslationManager.translationLore( + "feature.events.contest.vote.confirm.cancel.lore", + Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) ); ConfirmMenu menu = new ConfirmMenu( @@ -222,7 +226,16 @@ public void onInventoryClick(InventoryClickEvent event) { () -> { ContestManager.dataPlayer.put(player.getUniqueId(), new ContestPlayer(player.getUniqueId(), 0, 2, colorFinal)); player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 1.0F, 0.2F); - MessagesManager.sendMessage(player, Component.text("§7Vous avez bien rejoint : ").append(Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal)), Prefix.CONTEST, MessageType.SUCCESS, false); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.events.contest.vote.joined", + Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + ), + Prefix.CONTEST, + MessageType.SUCCESS, + false + ); player.closeInventory(); }, @@ -239,7 +252,7 @@ public void onInventoryClick(InventoryClickEvent event) { })); inventory.put(35, new ItemBuilder(this, Material.EMERALD, itemMeta -> { - itemMeta.displayName(Component.text("§r§aPlus d'info !")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.vote.info.name")); itemMeta.lore(loreInfo); }).setOnClick(inventoryClickEvent -> new MoreInfoMenu(player).open())); diff --git a/src/main/java/fr/openmc/core/features/friend/FriendRequest.java b/src/main/java/fr/openmc/core/features/friend/FriendRequest.java index 686a1401b..4f49302a8 100644 --- a/src/main/java/fr/openmc/core/features/friend/FriendRequest.java +++ b/src/main/java/fr/openmc/core/features/friend/FriendRequest.java @@ -5,7 +5,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; -import net.kyori.adventure.text.Component; +import fr.openmc.core.utils.text.messages.TranslationManager; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -50,7 +50,7 @@ private void sendExpiryMessage(UUID playerUUID) { if (isPlayerOnline(playerUUID)) { Player player = Bukkit.getPlayer(playerUUID); if (player != null) { - MessagesManager.sendMessage(player, Component.text("§cLa demande d'ami a expiré."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.request.expired"), Prefix.FRIEND, MessageType.INFO, true); } } } diff --git a/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java b/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java index fa5a03388..f57602a64 100644 --- a/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java +++ b/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java @@ -12,6 +12,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; @@ -42,23 +43,32 @@ public void addCommand( ) { try { if (player.getUniqueId().equals(target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas vous ajouter vous-même en ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.add.self"), Prefix.FRIEND, MessageType.ERROR, true); return; } if (!PlayerSettingsManager.canReceiveFriendRequest(target.getUniqueId(), player.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur a désactivé les demandes d'amis."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.add.disabled"), Prefix.FRIEND, MessageType.ERROR, true); return; } if (FriendManager.isRequestPending(target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous avez déjà envoyé une demande à ce joueur."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.add.already_sent"), Prefix.FRIEND, MessageType.ERROR, true); return; } if (FriendManager.areFriends(player.getUniqueId(), target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous êtes déjà ami de ce joueur."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.add.already_friend"), Prefix.FRIEND, MessageType.ERROR, true); return; } FriendManager.addRequest(player.getUniqueId(), target.getUniqueId()); - MessagesManager.sendMessage(player, Component.text("§aDemande d'ami envoyée à §e" + target.getName() + "§a."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.friend.add.sent", + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); Component acceptButton = Component.text(" [Accepter]", NamedTextColor.GREEN) .clickEvent(ClickEvent.runCommand("/friend accept " + player.getName())) @@ -67,11 +77,20 @@ public void addCommand( Component ignoreButton = Component.text(" [Ignorer]", NamedTextColor.GRAY) .clickEvent(ClickEvent.callback(audience -> { if (!FriendManager.isRequestPending(player.getUniqueId())) { - MessagesManager.sendMessage(target, Component.text("§cLa demande d'ami a expiré."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage(target, TranslationManager.translation("feature.friend.request.expired"), Prefix.FRIEND, MessageType.INFO, true); return; } FriendManager.removeRequest(FriendManager.getRequest(player.getUniqueId())); - MessagesManager.sendMessage(target, Component.text("§cVous avez ignoré la demande d'ami de §e" + player.getName() + "§c."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + target, + TranslationManager.translation( + "feature.friend.request.ignored", + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); })) .hoverEvent(HoverEvent.showText(Component.text("Cliquez pour ignorer la demande d'ami", NamedTextColor.GRAY))); @@ -79,9 +98,18 @@ public void addCommand( .clickEvent(ClickEvent.runCommand("/friend deny " + player.getName())) .hoverEvent(HoverEvent.showText(Component.text("Cliquez pour refuser la demande d'ami", NamedTextColor.RED))); - MessagesManager.sendMessage(target, Component.text("§e" + player.getName() + " §avous a envoyé une demande d'ami.").append(acceptButton).append(ignoreButton).append(denyButton), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + target, + TranslationManager.translation( + "feature.friend.request.received", + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ).append(acceptButton).append(ignoreButton).append(denyButton), + Prefix.FRIEND, + MessageType.INFO, + true + ); } catch (Exception e) { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors de l'envoi de la demande d'ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.add.error"), Prefix.FRIEND, MessageType.ERROR, true); throw new RuntimeException(e); } } @@ -95,23 +123,41 @@ public void removeCommand( try { OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if (!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.player_not_found"), Prefix.OPENMC, MessageType.ERROR, true); return; } if (!FriendManager.areFriends(player.getUniqueId(), target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous n'êtes pas amis avec ce joueur."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.remove.not_friend"), Prefix.FRIEND, MessageType.ERROR, true); return; } if (!FriendManager.removeFriend(player.getUniqueId(), target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors de la suppression de l'ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.remove.error"), Prefix.FRIEND, MessageType.ERROR, true); return; } - MessagesManager.sendMessage(player, Component.text("§aVous avez supprimé §e" + target.getName() + " §ade votre liste d'amis."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.friend.remove.success", + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); if (target instanceof Player targetPlayer && targetPlayer.isOnline()) { - MessagesManager.sendMessage(targetPlayer, Component.text("§cVous avez été supprimé de la liste d'amis de §e" + player.getName() + "§c."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + targetPlayer, + TranslationManager.translation( + "feature.friend.remove.removed_by", + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); } } catch (Exception e) { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors de la suppression de l'ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.remove.error"), Prefix.FRIEND, MessageType.ERROR, true); throw new RuntimeException(e); } } @@ -128,7 +174,7 @@ public void listCommand( FriendManager.getFriendsAsync(player.getUniqueId()).thenAccept(friends -> { if (friends.isEmpty()) { - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas d'amis pour le moment."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.list.none"), Prefix.FRIEND, MessageType.ERROR, true); return; } @@ -136,7 +182,17 @@ public void listCommand( int totalPages = (int) Math.ceil((double) friendsList.size() / ITEMS_PER_PAGE); if (currentPage > totalPages) { - MessagesManager.sendMessage(player, Component.text("§cLa page " + currentPage + " n'existe pas. Total: " + totalPages + " pages"), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.friend.list.page_invalid", + Component.text(currentPage).color(NamedTextColor.RED), + Component.text(totalPages).color(NamedTextColor.RED) + ), + Prefix.FRIEND, + MessageType.ERROR, + true + ); return; } @@ -158,6 +214,11 @@ public void listCommand( City city = CityManager.getPlayerCity(friend.getUniqueId()); String formattedMoney = EconomyManager.getFormattedBalance(friend.getUniqueId()); + Component cityComponent = Component.text(city != null ? city.getName() : "Aucune").color(NamedTextColor.YELLOW); + Component moneyComponent = Component.text(formattedMoney).color(NamedTextColor.YELLOW); + Component statusComponent = isOnline + ? Component.text("En ligne").color(NamedTextColor.GREEN) + : Component.text("Hors ligne").color(NamedTextColor.RED); TextComponent friendComponent = Component.text(" " + (i+1) + ". ") .color(NamedTextColor.GRAY) @@ -165,9 +226,11 @@ public void listCommand( .color(isOnline ? NamedTextColor.GREEN : NamedTextColor.YELLOW) .decoration(TextDecoration.BOLD, isOnline)) .hoverEvent(HoverEvent.showText( - Component.text("§7Ville : §e" + (city != null ? city.getName() : "Aucune") + - "\n§7Argent : §e" + formattedMoney + - "\n§7Statut : " + (isOnline ? "§aEn ligne" : "§cHors ligne") + TranslationManager.translation( + "feature.friend.list.hover", + cityComponent, + moneyComponent, + statusComponent ))) ; @@ -228,7 +291,7 @@ public void listCommand( player.sendMessage(navigation); } }).exceptionally(ex -> { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors de la récupération de vos amis."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.list.error"), Prefix.FRIEND, MessageType.ERROR, true); throw new RuntimeException(ex); }); } @@ -242,20 +305,38 @@ public void acceptCommand( try { OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if (!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.player_not_found"), Prefix.OPENMC, MessageType.ERROR, true); return; } if (!FriendManager.isRequestPending(target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas reçu de demande d'ami de ce joueur."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.request.not_received"), Prefix.FRIEND, MessageType.ERROR, true); return; } FriendManager.addFriend(player.getUniqueId(), target.getUniqueId()); - MessagesManager.sendMessage(player, Component.text("§aVous êtes désormais ami avec §e" + target.getName() + "§a."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.friend.request.accepted", + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); if (target instanceof Player targetPlayer && targetPlayer.isOnline()) { - MessagesManager.sendMessage(targetPlayer, Component.text("§aVous êtes désormais ami avec §e" + player.getName() + "§a."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + targetPlayer, + TranslationManager.translation( + "feature.friend.request.accepted", + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); } } catch (Exception e) { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors de l'acceptation de la demande d'ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.request.accept_error"), Prefix.FRIEND, MessageType.ERROR, true); throw new RuntimeException(e); } } @@ -269,20 +350,38 @@ public void denyCommand( try { OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if (!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.player_not_found"), Prefix.OPENMC, MessageType.ERROR, true); return; } if (!FriendManager.isRequestPending(target.getUniqueId())) { - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas reçu de demande d'ami de ce joueur."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.request.not_received"), Prefix.FRIEND, MessageType.ERROR, true); return; } FriendManager.removeRequest(FriendManager.getRequest(target.getUniqueId())); - MessagesManager.sendMessage(player, Component.text("§cVous avez refusé la demande d'ami de §e" + target.getName() + "§c."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.friend.request.denied", + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); if (target instanceof Player targetPlayer && targetPlayer.isOnline()) { - MessagesManager.sendMessage(targetPlayer, Component.text("§cVotre demande d'ami a été refusée par §e" + player.getName() + "§c."), Prefix.FRIEND, MessageType.INFO, true); + MessagesManager.sendMessage( + targetPlayer, + TranslationManager.translation( + "feature.friend.request.denied_by", + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.FRIEND, + MessageType.INFO, + true + ); } } catch (Exception e) { - MessagesManager.sendMessage(player, Component.text("§cUne erreur est survenue lors du refus de la demande d'ami."), Prefix.FRIEND, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.request.deny_error"), Prefix.FRIEND, MessageType.ERROR, true); throw new RuntimeException(e); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/DelHomeCommand.java b/src/main/java/fr/openmc/core/features/homes/command/DelHomeCommand.java index 2d6819546..c3f44a064 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/DelHomeCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/DelHomeCommand.java @@ -6,7 +6,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -35,7 +37,7 @@ public void delHome( OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if(!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -43,12 +45,21 @@ public void delHome( for(Home home : homes) { if(home.getName().equalsIgnoreCase(homeName)) { HomesManager.removeHome(home); - MessagesManager.sendMessage(player, Component.text("§aLe home §e" + home.getName() + " §aa été supprimé."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.delete.other.success", + Component.text(home.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } } - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'a pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -57,11 +68,20 @@ public void delHome( for(Home home : homes) { if(home.getName().equalsIgnoreCase(name)) { HomesManager.removeHome(home); - MessagesManager.sendMessage(player, Component.text("§aTon home §e" + home.getName() + " §aa été supprimé."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.delete.self.success", + Component.text(home.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } } - MessagesManager.sendMessage(player, Component.text("§cTu n'as pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.self_no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/HomeWorldCommand.java b/src/main/java/fr/openmc/core/features/homes/command/HomeWorldCommand.java index 555134250..9b8bb924b 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/HomeWorldCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/HomeWorldCommand.java @@ -6,7 +6,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; @@ -27,17 +29,35 @@ public void setHomeDisabledWorld( ) { World world = Bukkit.getWorld(worldName); if(world == null) { - MessagesManager.sendMessage(player, Component.text("§cCe monde n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.world.not_found"), Prefix.HOME, MessageType.ERROR, true); return; } if(DisabledWorldHome.isDisabledWorld(world)) { - MessagesManager.sendMessage(player, Component.text("§cLe monde §e" + world.getName() + " §cest déjà dans la liste des mondes où les homes sont désactivés."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.world.already_disabled", + Component.text(world.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.ERROR, + true + ); return; } DisabledWorldHome.addDisabledWorld(world, player); - MessagesManager.sendMessage(player, Component.text("§aLe monde §e" + world.getName() + " §aa été ajouté à la liste des mondes où les homes sont §cdésactivés."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.world.added", + Component.text(world.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); } @Subcommand("remove") @@ -46,15 +66,42 @@ public void setHomeDisabledWorld( public void removeWorld(Player player, @SuggestWith(HomeWorldRemoveAutoComplete.class) String worldName) { World world = Bukkit.getWorld(worldName); if(world == null) { - MessagesManager.sendMessage(player, Component.text("§cLe monde §e" + worldName + " §cn'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.world.remove.not_found", + Component.text(worldName).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.ERROR, + true + ); return; } if(DisabledWorldHome.isDisabledWorld(world)) { DisabledWorldHome.removeDisabledWorld(world); - MessagesManager.sendMessage(player, Component.text("§aLe monde §e" + world.getName() + " §aa été retiré de la liste des mondes où les homes sont §cdésactivés."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.world.removed", + Component.text(world.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); } else { - MessagesManager.sendMessage(player, Component.text("§cLe monde §e " + world.getName() + " §cn'est pas dans la liste des mondes où les homes sont désactivés."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.world.not_disabled", + Component.text(world.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.ERROR, + true + ); } } @@ -63,11 +110,17 @@ public void removeWorld(Player player, @SuggestWith(HomeWorldRemoveAutoComplete. @CommandPermission("omc.admins.commands.home.world") public void listWorlds(Player player) { if(DisabledWorldHome.getDisabledWorlds().isEmpty()) { - MessagesManager.sendMessage(player, Component.text("§cAucun monde n'est dans la liste des mondes où les homes sont désactivés."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.world.list.empty"), Prefix.HOME, MessageType.ERROR, true); return; } - MessagesManager.sendMessage(player, Component.text("§eListe des mondes où les homes sont désactivés :"), Prefix.HOME, MessageType.INFO, true); - DisabledWorldHome.getDisabledWorlds().forEach(worldName1 -> player.sendMessage(" §8- §e" + worldName1 + " §8(" + DisabledWorldHome.getDisabledWorldInfo(worldName1) + "§8)")); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.world.list.title"), Prefix.HOME, MessageType.INFO, true); + DisabledWorldHome.getDisabledWorlds().forEach(worldName1 -> player.sendMessage( + TranslationManager.translation( + "feature.homes.world.list.item", + Component.text(worldName1).color(NamedTextColor.YELLOW), + DisabledWorldHome.getDisabledWorldInfo(worldName1) + ) + )); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/RelocateHomeCommand.java b/src/main/java/fr/openmc/core/features/homes/command/RelocateHomeCommand.java index 07c9c9d4a..b82e23084 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/RelocateHomeCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/RelocateHomeCommand.java @@ -8,7 +8,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.OfflinePlayer; @@ -34,7 +36,7 @@ public void relocateHome( Location location = player.getLocation(); if(DisabledWorldHome.isDisabledWorld(location.getWorld())) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas définir de home dans ce monde."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.disabled_world"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -46,7 +48,7 @@ public void relocateHome( OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if(!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.OPENMC, MessageType.ERROR, true); return; } @@ -57,30 +59,48 @@ public void relocateHome( } HomesManager.relocateHome(h, location); - MessagesManager.sendMessage(player, Component.text("§aLe home §e" + h.getName() + " §aa été déplacé."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.relocate.other.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'a pas de home avec ce nom."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_no_home_with_name"), Prefix.OPENMC, MessageType.ERROR, true); return; } List homes = HomesManager.getHomes(player.getUniqueId()); if(WorldGuardHook.isRegionConflict(location)) { - MessagesManager.sendMessage(player, Component.text("§cTu ne peux pas définir un home ici, tu es dans une région protégée."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.relocate.protected_region"), Prefix.HOME, MessageType.ERROR, true); return; } for(Home h : homes) { if(h.getName().equalsIgnoreCase(home)) { HomesManager.relocateHome(h, location); - MessagesManager.sendMessage(player, Component.text("§aTon home §e" + h.getName() + " §aa été déplacé."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.relocate.self.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } } - MessagesManager.sendMessage(player, Component.text("§cTu n'as pas de home avec ce nom."), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.self_no_home_with_name"), Prefix.OPENMC, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/RenameHomeCommand.java b/src/main/java/fr/openmc/core/features/homes/command/RenameHomeCommand.java index c41e14f5f..1fc7faa2f 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/RenameHomeCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/RenameHomeCommand.java @@ -7,7 +7,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -37,12 +39,12 @@ public void renameHome( OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if(!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.HOME, MessageType.ERROR, true); return; } if (!HomeUtil.isValidHomeName(newName)) { - MessagesManager.sendMessage(player, Component.text("§cLe nom du home doit être valide."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.invalid_name"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -52,21 +54,31 @@ public void renameHome( continue; } if(h.getName().equalsIgnoreCase(newName)) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur a déjà un home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_already_has"), Prefix.HOME, MessageType.ERROR, true); return; } - MessagesManager.sendMessage(player, Component.text("§aLe home §e" + h.getName() + " §aa été renommé en §e" + newName + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.rename.other.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW), + Component.text(newName).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); HomesManager.renameHome(h, newName); return; } - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'a pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); return; } if (!HomeUtil.isValidHomeName(newName)) { - MessagesManager.sendMessage(player, Component.text("§cLe nom du home doit être valide."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.invalid_name"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -77,14 +89,24 @@ public void renameHome( continue; } if(h.getName().equalsIgnoreCase(newName)) { - MessagesManager.sendMessage(player, Component.text("§cTu as déjà un home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.rename.already_has"), Prefix.HOME, MessageType.ERROR, true); return; } - MessagesManager.sendMessage(player, Component.text("§aTon home §e" + h.getName() + " §aa été renommé en §e" + newName + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.rename.self.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW), + Component.text(newName).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); HomesManager.renameHome(h, newName); return; } - MessagesManager.sendMessage(player, Component.text("§cTu n'as pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.self_no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/SetHomeCommand.java b/src/main/java/fr/openmc/core/features/homes/command/SetHomeCommand.java index c2b4694dd..99cdc7cea 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/SetHomeCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/SetHomeCommand.java @@ -11,7 +11,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -34,7 +36,7 @@ public void setHome( @Named("home") @SuggestWith(HomeAutoComplete.class) String name ) { if(DisabledWorldHome.isDisabledWorld(player.getWorld())) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas définir de home dans ce monde."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.disabled_world"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -45,23 +47,23 @@ public void setHome( OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if(!target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.HOME, MessageType.ERROR, true); return; } if(split.length < 2) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.HOME, MessageType.ERROR, true); return; } if (!HomeUtil.isValidHomeName(homeName)) { - MessagesManager.sendMessage(player, Component.text("§cLe nom du home doit être valide."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.invalid_name"), Prefix.HOME, MessageType.ERROR, true); return; } List homes = HomesManager.getHomes(target.getUniqueId()); for (Home home : homes) { if (home.getName().equalsIgnoreCase(homeName)) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur a déjà un home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_already_has"), Prefix.HOME, MessageType.ERROR, true); return; } } @@ -69,16 +71,35 @@ public void setHome( Home home = new Home(UUID.randomUUID(), target.getUniqueId(), homeName, player.getLocation(), HomeIconRegistry.getDefaultIcon()); HomesManager.addHome(home); - MessagesManager.sendMessage(player, Component.text("§aLe home §e" + homeName + " §aa été défini pour §e" + targetName + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.set.other.success", + Component.text(homeName).color(NamedTextColor.YELLOW), + Component.text(targetName).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); if(target.isOnline() && target instanceof Player targetPlayer) { - MessagesManager.sendMessage(targetPlayer, Component.text("§aUn admin vous a défini un home §e" + homeName + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + targetPlayer, + TranslationManager.translation( + "feature.homes.command.set.by_admin", + Component.text(homeName).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); } return; } if (!HomeUtil.isValidHomeName(name)) { - MessagesManager.sendMessage(player, Component.text("§cLe nom du home doit être valide."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.invalid_name"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -86,7 +107,7 @@ public void setHome( int homesLimit = HomesManager.getHomeLimit(player.getUniqueId()); if(currentHome >= homesLimit) { - MessagesManager.sendMessage(player, Component.text("§cVous avez atteint la limite de homes."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.home_limit_reached"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -94,7 +115,7 @@ public void setHome( for (Home home : homes) { if (home.getName().equalsIgnoreCase(name)) { - MessagesManager.sendMessage(player, Component.text("§cVous avez déjà un home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.already_has"), Prefix.HOME, MessageType.ERROR, true); return; } } @@ -106,6 +127,15 @@ public void setHome( HomesManager.addHome(home); - MessagesManager.sendMessage(player, Component.text("§aVotre home §e" + name + " §aa été défini."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.set.self.success", + Component.text(name).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); } } diff --git a/src/main/java/fr/openmc/core/features/homes/command/TpHomeCommand.java b/src/main/java/fr/openmc/core/features/homes/command/TpHomeCommand.java index 82d55d1d7..a759b581d 100644 --- a/src/main/java/fr/openmc/core/features/homes/command/TpHomeCommand.java +++ b/src/main/java/fr/openmc/core/features/homes/command/TpHomeCommand.java @@ -11,7 +11,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -37,7 +39,7 @@ public static void home( OfflinePlayer target = Bukkit.getOfflinePlayer(targetName); if(!player.isConnected() && !target.hasPlayedBefore()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'existe pas."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.player_not_found"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -46,7 +48,7 @@ public static void home( if(split.length < 2) { if(homes.isEmpty()) { - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'a pas de home."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_no_home"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -64,12 +66,22 @@ public void run() { Bukkit.getPluginManager().callEvent(new HomeTpEvent(h, player)); } }.runTask(OMCPlugin.getInstance()); - MessagesManager.sendMessage(player, Component.text("§aVous avez été téléporté au home §e" + h.getName() + " §ade §e" + target.getName() + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.teleport.other.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW), + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } } - MessagesManager.sendMessage(player, Component.text("§cCe joueur n'a pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.other_no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -77,7 +89,7 @@ public void run() { if(home == null || home.isBlank() || home.isEmpty()) { if(homes.isEmpty()) { - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas de home."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.no_home"), Prefix.HOME, MessageType.ERROR, true); return; } @@ -95,12 +107,21 @@ public void run() { Bukkit.getPluginManager().callEvent(new HomeTpEvent(h, player)); } }.runTask(OMCPlugin.getInstance()); - MessagesManager.sendMessage(player, Component.text("§aVous avez été téléporté à votre home §e" + h.getName() + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.command.teleport.self.success", + Component.text(h.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); return; } } - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas de home avec ce nom."), Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.no_home_with_name"), Prefix.HOME, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/homes/menu/HomeDeleteConfirmMenu.java b/src/main/java/fr/openmc/core/features/homes/menu/HomeDeleteConfirmMenu.java index 08541e34d..6a4e3e343 100644 --- a/src/main/java/fr/openmc/core/features/homes/menu/HomeDeleteConfirmMenu.java +++ b/src/main/java/fr/openmc/core/features/homes/menu/HomeDeleteConfirmMenu.java @@ -11,7 +11,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; @@ -33,7 +35,7 @@ public HomeDeleteConfirmMenu(Player owner, Home home) { @Override public @NotNull Component getName() { - return Component.text("Menu des Homes - Confirmation"); + return TranslationManager.translation("feature.homes.delete.menu.title"); } @Override @@ -55,14 +57,21 @@ public String getTexture() { this, Objects.requireNonNull(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_bin_red")).getBest(), itemMeta -> { - itemMeta.displayName(Component.text("§cConfirmer la suppression")); - itemMeta.lore(List.of( - Component.text("§7■ §cClique §4gauche §cpour confirmer la suppression") - )); + itemMeta.displayName(TranslationManager.translation("feature.homes.delete.confirm.name")); + itemMeta.lore(TranslationManager.translationLore("feature.homes.delete.confirm.lore")); } ).setOnClick(event -> { HomesManager.removeHome(home); - MessagesManager.sendMessage(player, Component.text("§aHome §e" + home.getName() + " §asupprimé avec succès !"), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + player, + TranslationManager.translation( + "feature.homes.delete.success", + Component.text(home.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); player.closeInventory(); }) ); @@ -70,14 +79,17 @@ public String getTexture() { content.put(4, new ItemBuilder( this, home.getIconItem(), - itemMeta -> itemMeta.displayName(Component.text("§a" + home.getName())) + itemMeta -> itemMeta.displayName(TranslationManager.translation( + "feature.homes.home.name", + Component.text(home.getName()).color(NamedTextColor.GREEN) + )) ).hide(ItemUtils.getDataComponentType())); content.put(6, new ItemBuilder( this, Objects.requireNonNull(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_bin")).getBest(), itemMeta -> - itemMeta.displayName(Component.text("§aAnnuler la suppression")), true) + itemMeta.displayName(TranslationManager.translation("feature.homes.delete.cancel.name")), true) ); return content; diff --git a/src/main/java/fr/openmc/core/features/homes/menu/HomeMenu.java b/src/main/java/fr/openmc/core/features/homes/menu/HomeMenu.java index 0f527438c..649973c28 100644 --- a/src/main/java/fr/openmc/core/features/homes/menu/HomeMenu.java +++ b/src/main/java/fr/openmc/core/features/homes/menu/HomeMenu.java @@ -16,7 +16,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.OfflinePlayer; @@ -58,7 +60,7 @@ public int getSizeOfItems() { @Override public @NotNull Component getName() { - return Component.text("Menu des Homes"); + return TranslationManager.translation("feature.homes.menu.title"); } @Override @@ -94,11 +96,11 @@ public List getItems() { } try { items.add(new ItemBuilder(this, HomeIconRegistry.getIconOrDefault(home.getIcon().id()).getItemStack(), itemMeta -> { - itemMeta.displayName(Component.text("§e" + home.getName())); - itemMeta.lore(List.of( - Component.text("§7■ §aClique §2gauche pour vous téléporter"), - Component.text("§7■ §cCliquez §4droit §cpour configurer le home") + itemMeta.displayName(TranslationManager.translation( + "feature.homes.home.name", + Component.text(home.getName()).color(NamedTextColor.YELLOW) )); + itemMeta.lore(TranslationManager.translationLore("feature.homes.menu.item.lore")); }).hide(ItemUtils.getDataComponentType()).setOnClick(event -> { if(event.isLeftClick()) { this.getInventory().close(); @@ -109,7 +111,16 @@ public void run() { Bukkit.getPluginManager().callEvent(new HomeTpEvent(home, getOwner())); } }.runTask(OMCPlugin.getInstance()); - MessagesManager.sendMessage(getOwner(), Component.text("§aVous avez été téléporté à votre home §e" + home.getName() + "§a."), Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage( + getOwner(), + TranslationManager.translation( + "feature.homes.menu.teleport.success", + Component.text(home.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.HOME, + MessageType.SUCCESS, + true + ); }); } else if(event.isRightClick()) { Player player = (Player) event.getWhoClicked(); @@ -117,7 +128,7 @@ public void run() { } })); } catch (Exception e) { - MessagesManager.sendMessage(getOwner(), Component.text("§cUne erreur est survenue, veuillez contacter le staff"), Prefix.OPENMC, MessageType.ERROR, false); + MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.homes.menu.error"), Prefix.OPENMC, MessageType.ERROR, false); getOwner().closeInventory(); throw new RuntimeException("Failed to create HomeMenu item for home: " + home.getName(), e); } @@ -136,10 +147,8 @@ public Map getButtons() { if(!wasTarget) { map.put(53, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_upgrade")).getBest(), itemMeta -> { - itemMeta.displayName(Component.text("§8● §6Améliorer les homes §8(Click ici)")); - itemMeta.lore(List.of( - Component.text("§6Cliquez pour améliorer vos homes") - )); + itemMeta.displayName(TranslationManager.translation("feature.homes.menu.upgrade.name")); + itemMeta.lore(TranslationManager.translationLore("feature.homes.menu.upgrade.lore")); }).setOnClick(event -> new HomeUpgradeMenu(getOwner()).open())); } diff --git a/src/main/java/fr/openmc/core/features/homes/menu/HomeUpgradeMenu.java b/src/main/java/fr/openmc/core/features/homes/menu/HomeUpgradeMenu.java index 1f1e09d29..3bdc3e2ed 100644 --- a/src/main/java/fr/openmc/core/features/homes/menu/HomeUpgradeMenu.java +++ b/src/main/java/fr/openmc/core/features/homes/menu/HomeUpgradeMenu.java @@ -9,13 +9,19 @@ import fr.openmc.core.features.homes.HomeUpgradeManager; import fr.openmc.core.features.homes.HomesManager; import fr.openmc.core.registry.items.CustomItemRegistry; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; public class HomeUpgradeMenu extends Menu { @@ -25,7 +31,7 @@ public HomeUpgradeMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Homes - Amélioration"); + return TranslationManager.translation("feature.homes.upgrade.menu.title"); } @Override @@ -47,19 +53,22 @@ public String getTexture() { : lastUpgrade; items.put(4, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_upgrade")).getBest(), itemMeta -> { - itemMeta.displayName(Component.text("§8● §6Améliorer les homes §8(Clique gauche)")); - List lore = new ArrayList<>(); - lore.add(Component.text("§6Nombre de home actuel: §e" + currentHome)); + itemMeta.displayName(TranslationManager.translation("feature.homes.upgrade.item.name")); if (nextUpgrade.getLimit() >= lastUpgrade.getLimit()) { - lore.add(Component.text("§cVous avez atteint le nombre maximum de homes")); + itemMeta.lore(TranslationManager.translationLore( + "feature.homes.upgrade.lore.max", + Component.text(currentHome).color(NamedTextColor.YELLOW) + )); } else { - lore.add(Component.text("§bPrix : §a" + nextUpgrade.getPrice() + " " + EconomyManager.getEconomyIcon())); - lore.add(Component.text("§bAywenite : §d" + nextUpgrade.getAyweniteCost())); - lore.add(Component.text("§6Nombre de home au prochain niveau : §e" + nextUpgrade.getLimit())); - lore.add(Component.text("§7→ Clique gauche pour améliorer")); + itemMeta.lore(TranslationManager.translationLore( + "feature.homes.upgrade.lore.available", + Component.text(currentHome).color(NamedTextColor.YELLOW), + Component.text(nextUpgrade.getPrice()).color(NamedTextColor.GREEN), + Component.text(EconomyManager.getEconomyIcon()).decoration(TextDecoration.ITALIC, false), + Component.text(nextUpgrade.getAyweniteCost()).color(NamedTextColor.LIGHT_PURPLE), + Component.text(nextUpgrade.getLimit()).color(NamedTextColor.YELLOW) + )); } - - itemMeta.lore(lore); }).setOnClick(event -> { HomeUpgradeManager.upgradeHome(getOwner()); getOwner().closeInventory(); diff --git a/src/main/java/fr/openmc/core/features/homes/models/Home.java b/src/main/java/fr/openmc/core/features/homes/models/Home.java index d6f9fffc3..dc08256a3 100644 --- a/src/main/java/fr/openmc/core/features/homes/models/Home.java +++ b/src/main/java/fr/openmc/core/features/homes/models/Home.java @@ -6,15 +6,16 @@ import fr.openmc.core.features.homes.icons.HomeIconRegistry; import fr.openmc.core.features.homes.icons.LegacyHomeIcon; import fr.openmc.core.features.homes.utils.HomeUtil; +import fr.openmc.core.utils.text.messages.TranslationManager; import lombok.Getter; import lombok.Setter; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.List; import java.util.UUID; @Getter @@ -100,13 +101,17 @@ public ItemStack getIconItem() { ItemStack item = getIcon().getItemStack().clone(); ItemMeta meta = item.getItemMeta(); Location location = getLocation(); - meta.displayName(Component.text("§a" + name)); - item.lore(List.of( - Component.text("§6Position:"), - Component.text("§6 W: §e" + location.getWorld().getName()), - Component.text("§6 X: §e" + (double) Math.round(location.getX() * 10d) / 10d), - Component.text("§6 Y: §e" + (double) Math.round(location.getY() * 10d) / 10d), - Component.text("§6 Z: §e" + (double) Math.round(location.getZ() * 10d) / 10d))); + meta.displayName(TranslationManager.translation( + "feature.homes.home.name", + Component.text(name).color(NamedTextColor.GREEN) + )); + item.lore(TranslationManager.translationLore( + "feature.homes.home.lore", + Component.text(location.getWorld().getName()).color(NamedTextColor.YELLOW), + Component.text(location.getX()).color(NamedTextColor.YELLOW), + Component.text(location.getY()).color(NamedTextColor.YELLOW), + Component.text(location.getZ()).color(NamedTextColor.YELLOW) + )); item.setItemMeta(meta); return item; } diff --git a/src/main/java/fr/openmc/core/features/homes/utils/HomeUtil.java b/src/main/java/fr/openmc/core/features/homes/utils/HomeUtil.java index fda4150a3..d15512e91 100644 --- a/src/main/java/fr/openmc/core/features/homes/utils/HomeUtil.java +++ b/src/main/java/fr/openmc/core/features/homes/utils/HomeUtil.java @@ -4,6 +4,9 @@ import fr.openmc.core.features.homes.icons.HomeIconRegistry; import fr.openmc.core.features.homes.icons.LegacyHomeIcon; import fr.openmc.core.features.homes.models.Home; +import fr.openmc.core.utils.text.messages.TranslationManager; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; @@ -89,14 +92,15 @@ public static String sanitizeHomeName(String name) { public static String formatLocation(org.bukkit.Location location) { if (location == null || location.getWorld() == null) { - return "§cLocation invalide"; + return TranslationManager.translationString("feature.homes.location.invalid"); } - return String.format("§e%s §7(§6%d§7, §6%d§7, §6%d§7)", - location.getWorld().getName(), - location.getBlockX(), - location.getBlockY(), - location.getBlockZ() + return TranslationManager.translationString( + "feature.homes.location.format", + Component.text(location.getWorld().getName()).color(NamedTextColor.YELLOW), + Component.text(location.getBlockX()).color(NamedTextColor.GOLD), + Component.text(location.getBlockY()).color(NamedTextColor.GOLD), + Component.text(location.getBlockZ()).color(NamedTextColor.GOLD) ); } diff --git a/src/main/resources/translations/default/economy.properties b/src/main/resources/translations/default/economy.properties new file mode 100644 index 000000000..d90d42332 --- /dev/null +++ b/src/main/resources/translations/default/economy.properties @@ -0,0 +1,56 @@ +feature.economy.transactions.menu.title=Menu des transactions de %1$s +feature.economy.transaction.outgoing.name=Transaction sortante +feature.economy.transaction.incoming.name=Transaction entrante +feature.economy.transaction.outgoing.lore=Destination : %1$s\ +
Montant : %2$s\ +
Raison : %3$s +feature.economy.transaction.incoming.lore=Envoyeur : %1$s\ +
Montant : %2$s\ +
Raison : %3$s +feature.economy.bank.menu.title=Menu des Banques +feature.economy.bank.menu.deposit.name=Déposer de l'argent +feature.economy.bank.menu.deposit.lore=Votre argent sera placé dans votre banque\ +
CLIQUEZ ICI POUR DEPOSER +feature.economy.bank.menu.need_city=Pour avoir une banque personnelle, vous devez appartenir à une ville de niveau 2 minimum ! +feature.economy.bank.menu.balance.name=Votre argent +feature.economy.bank.menu.balance.lore=Vous avez actuellement %1$s %2$s\ +
Votre limite d'argent dans votre banque est de %3$s %4$s\ +
\ +
Votre prochain intérêt est de %5$s dans %6$s +feature.economy.bank.menu.withdraw.name=Retirer de l'argent +feature.economy.bank.menu.withdraw.lore=L'argent sera pris dans votre banque\ +
CLIQUEZ ICI POUR RETIRER +feature.economy.bank.deposit.menu.title=Menu des Banques - Déposer +feature.economy.bank.deposit.all.name=Déposer tout votre argent +feature.economy.bank.deposit.all.lore=Tout votre argent sera placé dans votre banque\ +
\ +
Montant qui sera deposé : %1$s %2$s\ +
\ +
CLIQUEZ ICI POUR DEPOSER +feature.economy.bank.deposit.half.name=Déposer la moitié de votre argent +feature.economy.bank.deposit.half.lore=La moitié de votre argent sera placé dans votre banque\ +
\ +
Montant qui sera deposé : %1$s %2$s\ +
\ +
CLIQUEZ ICI POUR DEPOSER +feature.economy.bank.deposit.input.name=Déposer un montant précis +feature.economy.bank.deposit.input.lore=Votre argent sera placé dans votre banque\ +
CLIQUEZ ICI POUR INDIQUER LE MONTANT +feature.economy.bank.withdraw.menu.title=Menu des Banques - Retirer +feature.economy.bank.withdraw.all.name=Prendre l'argent de votre banque +feature.economy.bank.withdraw.all.lore=Tout l'argent placé dans votre banque vous sera donné\ +
\ +
Montant qui vous sera donné : %1$s %2$s\ +
\ +
CLIQUEZ ICI POUR PRENDRE +feature.economy.bank.withdraw.half.name=Prendre la moitié de l'argent de votre banque +feature.economy.bank.withdraw.half.lore=La moitié de l'argent sera pris de votre banque pour vous le donner\ +
\ +
Montant qui vous sera donné : %1$s %2$s\ +
\ +
CLIQUEZ ICI POUR PRENDRE +feature.economy.bank.withdraw.input.name=Prendre un montant précis +feature.economy.bank.withdraw.input.lore=L'argent demandé sera pris dans votre banque pour vous le donner\ +
CLIQUEZ ICI POUR INDIQUER LE MONTANT +feature.economy.bank.back.lore=Vous allez retourner au menu de votre banque\ +
CLIQUEZ ICI POUR CONFIRMER diff --git a/src/main/resources/translations/default/events.properties b/src/main/resources/translations/default/events.properties new file mode 100644 index 000000000..9c438dcc8 --- /dev/null +++ b/src/main/resources/translations/default/events.properties @@ -0,0 +1,18 @@ +feature.events.contest.vote.menu.title=Menu des Contests - Vote +feature.events.contest.vote.lore.vote_team=Votez pour la team %1$s +feature.events.contest.vote.lore.win=Faites la gagner en déposant le plus de points +feature.events.contest.vote.lore.warning_choice=ATTENTION ! Le choix est définitif! +feature.events.contest.vote.lore.voted_for=Vous avez votez pour la team %1$s +feature.events.contest.vote.lore.win_exclaim=Faites la gagner en déposant le plus de points ! +feature.events.contest.vote.lore.lose_team=Faites perdre la team %1$s +feature.events.contest.vote.lore.lose_detail=En apportant le plus de points que vous pouvez ! +feature.events.contest.vote.info.lore=Apprenez en plus sur les contests !\ +
Le déroulement, les résultats, ...\ +
CLIQUEZ ICI POUR EN VOIR PLUS! +feature.events.contest.vote.confirm.join.lore=Vous allez rejoindre %1$s\ +
ATTENTION ! Vous ne pourrez changer de choix ! +feature.events.contest.vote.confirm.cancel.lore=Vous allez annuler votre choix : %1$s\ +
ATTENTION ! Vous ne pourrez changer de choix ! +feature.events.contest.vote.joined=Vous avez bien rejoint : %1$s +feature.events.contest.vote.info.name=Plus d'info ! + diff --git a/src/main/resources/translations/default/friend.properties b/src/main/resources/translations/default/friend.properties new file mode 100644 index 000000000..47b4c9d7c --- /dev/null +++ b/src/main/resources/translations/default/friend.properties @@ -0,0 +1,27 @@ +feature.friend.request.expired=La demande d'ami a expiré. +feature.friend.add.self=Vous ne pouvez pas vous ajouter vous-même en ami. +feature.friend.add.disabled=Ce joueur a désactivé les demandes d'amis. +feature.friend.add.already_sent=Vous avez déjà envoyé une demande à ce joueur. +feature.friend.add.already_friend=Vous êtes déjà ami de ce joueur. +feature.friend.add.sent=Demande d'ami envoyée à %1$s. +feature.friend.add.error=Une erreur est survenue lors de l'envoi de la demande d'ami. +feature.friend.request.ignored=Vous avez ignoré la demande d'ami de %1$s. +feature.friend.request.received=%1$s vous a envoyé une demande d'ami. +feature.friend.player_not_found=Ce joueur n'existe pas. +feature.friend.remove.not_friend=Vous n'êtes pas amis avec ce joueur. +feature.friend.remove.error=Une erreur est survenue lors de la suppression de l'ami. +feature.friend.remove.success=Vous avez supprimé %1$s de votre liste d'amis. +feature.friend.remove.removed_by=Vous avez été supprimé de la liste d'amis de %1$s. +feature.friend.list.none=Vous n'avez pas d'amis pour le moment. +feature.friend.list.page_invalid=La page %1$s n'existe pas. Total: %2$s pages +feature.friend.list.hover=Ville : %1$s\ +
Argent : %2$s\ +
Statut : %3$s +feature.friend.list.error=Une erreur est survenue lors de la récupération de vos amis. +feature.friend.request.not_received=Vous n'avez pas reçu de demande d'ami de ce joueur. +feature.friend.request.accepted=Vous êtes désormais ami avec %1$s. +feature.friend.request.accept_error=Une erreur est survenue lors de l'acceptation de la demande d'ami. +feature.friend.request.denied=Vous avez refusé la demande d'ami de %1$s. +feature.friend.request.denied_by=Votre demande d'ami a été refusée par %1$s. +feature.friend.request.deny_error=Une erreur est survenue lors du refus de la demande d'ami. + diff --git a/src/main/resources/translations/default/homes.properties b/src/main/resources/translations/default/homes.properties new file mode 100644 index 000000000..54d8f7e2d --- /dev/null +++ b/src/main/resources/translations/default/homes.properties @@ -0,0 +1,64 @@ +feature.homes.location.invalid=Location invalide +feature.homes.location.format=%1$s (%2$s, %3$s, %4$s) +feature.homes.home.name=%1$s +feature.homes.home.lore=Position:\ +
W: %1$s\ +
X: %2$s\ +
Y: %3$s\ +
Z: %4$s +feature.homes.menu.title=Menu des Homes +feature.homes.menu.item.lore=Clique gauche pour vous téléporter\ +
Cliquez droit pour configurer le home +feature.homes.menu.teleport.success=Vous avez été téléporté à votre home %1$s. +feature.homes.menu.error=Une erreur est survenue, veuillez contacter le staff +feature.homes.menu.upgrade.name= Améliorer les homes (Clique ici) +feature.homes.menu.upgrade.lore=Cliquez pour améliorer vos homes +feature.homes.upgrade.menu.title=Menu des Homes - Amélioration +feature.homes.upgrade.item.name= Améliorer les homes (Clique gauche) +feature.homes.upgrade.lore.max=Nombre de home actuel: %1$s\ +
Vous avez atteint le nombre maximum de homes +feature.homes.upgrade.lore.available=Nombre de home actuel: %1$s\ +
Prix : %2$s %3$s\ +
Aywenite : %4$s\ +
Nombre de home au prochain niveau : %5$s\ +
→ Clique gauche pour améliorer +feature.homes.delete.menu.title=Menu des Homes - Confirmation +feature.homes.delete.confirm.name=Confirmer la suppression +feature.homes.delete.confirm.lore=Clique gauche pour confirmer la suppression +feature.homes.delete.success=Home %1$s supprimé avec succès ! +feature.homes.delete.cancel.name=Annuler la suppression +feature.homes.command.player_not_found=Ce joueur n'existe pas. +feature.homes.command.other_no_home=Ce joueur n'a pas de home. +feature.homes.command.teleport.other.success=Vous avez été téléporté au home %1$s de %2$s. +feature.homes.command.other_no_home_with_name=Ce joueur n'a pas de home avec ce nom. +feature.homes.command.no_home=Vous n'avez pas de home. +feature.homes.command.teleport.self.success=Vous avez été téléporté à votre home %1$s. +feature.homes.command.no_home_with_name=Vous n'avez pas de home avec ce nom. +feature.homes.command.disabled_world=Vous ne pouvez pas définir de home dans ce monde. +feature.homes.command.invalid_name=Le nom du home doit être valide. +feature.homes.command.other_already_has=Ce joueur a déjà un home avec ce nom. +feature.homes.command.set.other.success=Le home %1$s a été défini pour %2$s. +feature.homes.command.set.by_admin=Un admin vous a défini un home %1$s. +feature.homes.command.home_limit_reached=Vous avez atteint la limite de homes. +feature.homes.command.already_has=Vous avez déjà un home avec ce nom. +feature.homes.command.set.self.success=Votre home %1$s a été défini. +feature.homes.command.rename.other.success=Le home %1$s a été renommé en %2$s. +feature.homes.command.rename.already_has=Tu as déjà un home avec ce nom. +feature.homes.command.rename.self.success=Ton home %1$s a été renommé en %2$s. +feature.homes.command.self_no_home_with_name=Tu n'as pas de home avec ce nom. +feature.homes.command.delete.other.success=Le home %1$s a été supprimé. +feature.homes.command.delete.self.success=Ton home %1$s a été supprimé. +feature.homes.command.relocate.other.success=Le home %1$s a été déplacé. +feature.homes.command.relocate.protected_region=Tu ne peux pas définir un home ici, tu es dans une région protégée. +feature.homes.command.relocate.self.success=Ton home %1$s a été déplacé. +feature.homes.world.not_found=Ce monde n'existe pas. +feature.homes.world.already_disabled=Le monde %1$s est déjà dans la liste des mondes où les homes sont désactivés. +feature.homes.world.added=Le monde %1$s a été ajouté à la liste des mondes où les homes sont désactivés. +feature.homes.world.remove.not_found=Le monde %1$s n'existe pas. +feature.homes.world.removed=Le monde %1$s a été retiré de la liste des mondes où les homes sont désactivés. +feature.homes.world.not_disabled=Le monde %1$s n'est pas dans la liste des mondes où les homes sont désactivés. +feature.homes.world.list.empty=Aucun monde n'est dans la liste des mondes où les homes sont désactivés. +feature.homes.world.list.title=Liste des mondes où les homes sont désactivés : +feature.homes.world.list.item= - %1$s (%2$s) +feature.homes.world.info=Ajouté par %1$s le %2$s + From f18ed985c419eb6c605213ea9711407468fe3920 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Mon, 18 May 2026 21:14:05 +0200 Subject: [PATCH 2/2] finish translation --- .../core/features/economy/BankManager.java | 47 +++--- .../economy/commands/BankCommands.java | 35 ++++- .../core/features/economy/commands/Money.java | 78 ++++++++-- .../core/features/economy/commands/Pay.java | 22 ++- .../economy/menu/PersonalBankDepositMenu.java | 2 +- .../menu/PersonalBankWithdrawMenu.java | 2 +- .../commands/calendar/CalendarManager.java | 7 +- .../commands/calendar/CalendarMenu.java | 25 ++-- .../halloween/managers/HalloweenManager.java | 52 ++----- .../menus/HalloweenPumpkinDepositMenu.java | 20 ++- .../contents/contest/ContestPhase.java | 26 +--- .../contest/commands/ContestCommand.java | 39 +++-- .../contest/managers/ContestManager.java | 131 +++++++--------- .../contest/menu/ContributionMenu.java | 57 ++++--- .../contents/contest/menu/MoreInfoMenu.java | 32 ++-- .../contents/contest/menu/TradeMenu.java | 44 +++--- .../contents/contest/menu/VoteMenu.java | 20 ++- .../friend/commands/FriendCommand.java | 86 +++++++---- .../features/homes/HomeUpgradeManager.java | 24 ++- .../features/homes/icons/CachedIconItem.java | 17 ++- .../homes/menu/HomeChangeIconMenu.java | 39 ++--- .../features/homes/menu/HomeConfigMenu.java | 51 +++---- .../homes/world/DisabledWorldHome.java | 13 +- .../utils/text/messages/MessagesManager.java | 4 +- .../translations/default/economy.properties | 27 ++++ .../translations/default/events.properties | 140 ++++++++++++++++++ .../translations/default/friend.properties | 19 +++ .../translations/default/homes.properties | 33 +++++ 28 files changed, 700 insertions(+), 392 deletions(-) diff --git a/src/main/java/fr/openmc/core/features/economy/BankManager.java b/src/main/java/fr/openmc/core/features/economy/BankManager.java index 0b3922a2e..a45023653 100644 --- a/src/main/java/fr/openmc/core/features/economy/BankManager.java +++ b/src/main/java/fr/openmc/core/features/economy/BankManager.java @@ -24,8 +24,10 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import lombok.Getter; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; @@ -108,7 +110,7 @@ public static void deposit(UUID playerUUID, String input) { OfflinePlayer offlinePlayer = CacheOfflinePlayer.getOfflinePlayer(playerUUID); if (!InputUtils.isInputMoney(input)) { - MessagesManager.sendMessage(offlinePlayer, Component.text("Veuillez mettre une entrée correcte"), + MessagesManager.sendMessage(offlinePlayer, TranslationManager.translation("messages.global.invalid_input"), Prefix.BANK, MessageType.ERROR, true); return; } @@ -118,7 +120,7 @@ public static void deposit(UUID playerUUID, String input) { if (city == null || city.getLevel() < 2) { MessagesManager.sendMessage(offlinePlayer, - Component.text("Pour avoir une banque personnelle, vous devez appartenir à une ville de niveau 2 minimum !"), + TranslationManager.translation("feature.economy.bank.deposit.need_city_level_2"), Prefix.BANK, MessageType.ERROR, false); return; } @@ -128,9 +130,8 @@ public static void deposit(UUID playerUUID, String input) { if (currentBalance >= limit) { MessagesManager.sendMessage(offlinePlayer, - Component.text("Vous avez atteint la limite de votre plafond qui est de " + - EconomyManager.getFormattedNumber(limit) + - ". Améliorez votre ville au niveau supérieur !"), + TranslationManager.translation("feature.economy.bank.deposit.limit_reached", + Component.text(EconomyManager.getFormattedNumber(limit)).color(NamedTextColor.LIGHT_PURPLE)), Prefix.BANK, MessageType.ERROR, false); return; } @@ -138,7 +139,7 @@ public static void deposit(UUID playerUUID, String input) { double allowedAmount = Math.min(amount, limit - currentBalance); if (!EconomyManager.withdrawBalance(playerUUID, allowedAmount)) { - MessagesManager.sendMessage(offlinePlayer, Component.text("Vous n'avez pas assez d'argent"), + MessagesManager.sendMessage(offlinePlayer, TranslationManager.translation("feature.economy.bank.deposit.not_enough_money"), Prefix.BANK, MessageType.ERROR, false); return; } @@ -147,13 +148,17 @@ public static void deposit(UUID playerUUID, String input) { if (allowedAmount < amount) { MessagesManager.sendMessage(offlinePlayer, - Component.text("Seulement " + EconomyManager.getFormattedNumber(allowedAmount) + - " ont été déposés (plafond atteint)."), + TranslationManager.translation( + "feature.economy.bank.deposit.partial", + Component.text(EconomyManager.getFormattedNumber(allowedAmount)).color(NamedTextColor.LIGHT_PURPLE) + ), Prefix.BANK, MessageType.ERROR, false); } else { MessagesManager.sendMessage(offlinePlayer, - Component.text("Vous avez déposé " + - EconomyManager.getFormattedNumber(allowedAmount) + "."), + TranslationManager.translation( + "feature.economy.bank.deposit.success", + Component.text(EconomyManager.getFormattedNumber(allowedAmount)).color(NamedTextColor.LIGHT_PURPLE) + ), Prefix.BANK, MessageType.SUCCESS, false); } } @@ -162,7 +167,7 @@ public static void withdraw(UUID playerUUID, String input) { OfflinePlayer offlinePlayer = CacheOfflinePlayer.getOfflinePlayer(playerUUID); if (!InputUtils.isInputMoney(input)) { - MessagesManager.sendMessage(offlinePlayer, Component.text("Veuillez mettre une entrée correcte"), + MessagesManager.sendMessage(offlinePlayer, TranslationManager.translation("messages.global.invalid_input"), Prefix.BANK, MessageType.ERROR, true); return; } @@ -170,17 +175,18 @@ public static void withdraw(UUID playerUUID, String input) { double amount = InputUtils.convertToMoneyValue(input); if (!withdraw(playerUUID, amount)) { - MessagesManager.sendMessage(offlinePlayer, - Component.text("Tu n'as pas assez d'argent en banque"), - Prefix.BANK, MessageType.ERROR, false); + MessagesManager.sendMessage(offlinePlayer, TranslationManager.translation("feature.economy.bank.withdraw.not_enough"), Prefix.BANK, MessageType.ERROR, false); return; } EconomyManager.addBalance(playerUUID, amount, "Retrait banque personnelle"); MessagesManager.sendMessage(offlinePlayer, - Component.text("§d" + EconomyManager.getFormattedSimplifiedNumber(amount) + "§r" - + EconomyManager.getEconomyIcon() + " ont été transférés à votre compte"), + TranslationManager.translation( + "feature.economy.bank.withdraw.transferred", + Component.text(EconomyManager.getFormattedSimplifiedNumber(amount)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()) + ), Prefix.BANK, MessageType.SUCCESS, false); } @@ -228,9 +234,12 @@ public static void applyPlayerInterest(UUID playerUUID) { Player sender = Bukkit.getPlayer(playerUUID); if (sender != null) MessagesManager.sendMessage(sender, - Component.text("Vous venez de percevoir §d" + interest * 100 + "% §rd'intérêt, soit §d" - + EconomyManager.getFormattedSimplifiedNumber(allowedAmount) + "§r" - + EconomyManager.getEconomyIcon()), + TranslationManager.translation( + "feature.economy.bank.interest.received", + Component.text(interest * 100 + "%").color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getFormattedSimplifiedNumber(allowedAmount)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()) + ), Prefix.CITY, MessageType.SUCCESS, false); } diff --git a/src/main/java/fr/openmc/core/features/economy/commands/BankCommands.java b/src/main/java/fr/openmc/core/features/economy/commands/BankCommands.java index 20971f5c1..e03b61e13 100644 --- a/src/main/java/fr/openmc/core/features/economy/commands/BankCommands.java +++ b/src/main/java/fr/openmc/core/features/economy/commands/BankCommands.java @@ -10,7 +10,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; @@ -23,7 +25,12 @@ public class BankCommands { public static void openBankMenu(Player player) { City playerCity = CityManager.getPlayerCity(player.getUniqueId()); if (playerCity == null || !FeaturesRewards.hasUnlockFeature(playerCity, FeaturesRewards.Feature.PLAYER_BANK)) { - MessagesManager.sendMessage(player, Component.text("Vous n'avez pas débloqué cette feature ! Veuillez améliorer votre ville au niveau " + FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK) + "!"), Prefix.CITY, MessageType.ERROR, false); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.bank.command.not_unlocked", + Component.text(FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK)).color(NamedTextColor.YELLOW) + ), + Prefix.CITY, MessageType.ERROR, false); return; } @@ -38,7 +45,12 @@ void deposit( ) { City playerCity = CityManager.getPlayerCity(player.getUniqueId()); if (playerCity == null || !FeaturesRewards.hasUnlockFeature(playerCity, FeaturesRewards.Feature.PLAYER_BANK)) { - MessagesManager.sendMessage(player, Component.text("Vous n'avez pas débloqué cette feature ! Veuillez améliorer votre ville au niveau " + FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK) + "!"), Prefix.CITY, MessageType.ERROR, false); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.bank.command.not_unlocked", + Component.text(FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK)).color(NamedTextColor.YELLOW) + ), + Prefix.CITY, MessageType.ERROR, false); return; } @@ -53,7 +65,12 @@ void withdraw( ) { City playerCity = CityManager.getPlayerCity(player.getUniqueId()); if (playerCity == null || !FeaturesRewards.hasUnlockFeature(playerCity, FeaturesRewards.Feature.PLAYER_BANK)) { - MessagesManager.sendMessage(player, Component.text("Vous n'avez pas débloqué cette feature ! Veuillez améliorer votre ville au niveau " + FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK) + "!"), Prefix.CITY, MessageType.ERROR, false); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.bank.command.not_unlocked", + Component.text(FeaturesRewards.getFeatureUnlockLevel(FeaturesRewards.Feature.PLAYER_BANK)).color(NamedTextColor.YELLOW) + ), + Prefix.CITY, MessageType.ERROR, false); return; } @@ -69,16 +86,22 @@ void withdraw(Player player) { } double balance = BankManager.getBankBalance(player.getUniqueId()); - MessagesManager.sendMessage(player, Component.text("Il y a §d" + EconomyManager.getFormattedSimplifiedNumber(balance) + "§r" + EconomyManager.getEconomyIcon() + " dans ta banque"), Prefix.BANK, MessageType.INFO, false); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.bank.command.balance", + Component.text(EconomyManager.getFormattedSimplifiedNumber(balance)).color(NamedTextColor.LIGHT_PURPLE), + Component.text(EconomyManager.getEconomyIcon()) + ), + Prefix.BANK, MessageType.INFO, false); } @Subcommand("admin interest apply") @Description("Distribue les intérèts à tout les joueurs et a toute les villes") @CommandPermission("omc.admins.commands.bank.interest.apply") void applyInterest(Player player) { - MessagesManager.sendMessage(player, Component.text("Distribution des intérêts en cours..."), Prefix.BANK, MessageType.INFO, false); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.economy.bank.interest.apply.start"), Prefix.BANK, MessageType.INFO, false); BankManager.applyAllPlayerInterests(); CityBankManager.applyAllCityInterests(); - MessagesManager.sendMessage(player, Component.text("Distribution des intérêts réussie."), Prefix.BANK, MessageType.SUCCESS, false); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.economy.bank.interest.apply.success"), Prefix.BANK, MessageType.SUCCESS, false); } } diff --git a/src/main/java/fr/openmc/core/features/economy/commands/Money.java b/src/main/java/fr/openmc/core/features/economy/commands/Money.java index 7a4c351e5..e0e6394f9 100644 --- a/src/main/java/fr/openmc/core/features/economy/commands/Money.java +++ b/src/main/java/fr/openmc/core/features/economy/commands/Money.java @@ -7,6 +7,7 @@ import fr.openmc.core.utils.text.messages.Prefix; import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -24,14 +25,25 @@ public void getMoney( @Named("joueur") @Optional @SuggestWith(OnlinePlayerAutoComplete.class) OfflinePlayer target ) { if (sender instanceof Player player && target == null) { - MessagesManager.sendMessage(player, Component.text("§aVous avez §e" + EconomyManager.getFormattedBalance(player.getUniqueId()) + "§a"), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.money.self", + Component.text(EconomyManager.getFormattedBalance(player.getUniqueId())).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } else { if (target == null) { MessagesManager.sendMessage(sender, TranslationManager.translation("messages.global.missing_arg"), Prefix.OPENMC, MessageType.ERROR, true); return; } if (!(sender instanceof Player player) || player.hasPermission("omc.admin.commands.money.others")) { - MessagesManager.sendMessage(sender, Component.text("§e" + target.getName() + "§a a §e" + EconomyManager.getFormattedBalance(target.getUniqueId()) + "§a"), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(sender, + TranslationManager.translation( + "feature.economy.money.others", + Component.text(target.getName()).color(NamedTextColor.YELLOW), + Component.text(EconomyManager.getFormattedBalance(target.getUniqueId())).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } else { MessagesManager.sendMessage(sender, TranslationManager.translation("messages.global.cannot_do_this"), Prefix.OPENMC, MessageType.ERROR, true); } @@ -43,9 +55,20 @@ public void getMoney( @CommandPermission("omc.admin.commands.money.set") public void setMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete.class) OfflinePlayer target, @Range(min = 1E-10) double amount) { EconomyManager.setBalance(target.getUniqueId(), amount); - MessagesManager.sendMessage(player, Component.text("§aVous avez défini l'argent de §e" + target.getName() + "§a à §e" + EconomyManager.getFormattedNumber(amount)), Prefix.OPENMC, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.money.set.success", + Component.text(target.getName()).color(NamedTextColor.YELLOW), + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.SUCCESS, true); if (target.isOnline()) { - MessagesManager.sendMessage(target.getPlayer(), Component.text("§aVotre argent a été défini à §e" + EconomyManager.getFormattedNumber(amount)), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(target.getPlayer(), + TranslationManager.translation( + "feature.economy.money.set.target", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } } @@ -54,9 +77,20 @@ public void setMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete @CommandPermission("omc.admin.commands.money.add") public void addMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete.class) OfflinePlayer target, @Range(min = 1E-10) double amount) { EconomyManager.addBalance(target.getUniqueId(), amount, "Admin - Ajout par " + player == null ? "Console" : player.getName()); - MessagesManager.sendMessage(player, Component.text("§aVous avez ajouté §e" + EconomyManager.getFormattedNumber(amount) + "§a à §e" + target.getName()), Prefix.OPENMC, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.money.add.success", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW), + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.SUCCESS, true); if (target.isOnline()) { - MessagesManager.sendMessage(target.getPlayer(), Component.text("§aVous avez reçu §e" + EconomyManager.getFormattedNumber(amount)), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(target.getPlayer(), + TranslationManager.translation( + "feature.economy.money.add.target", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } } @@ -65,12 +99,23 @@ public void addMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete @CommandPermission("omc.admin.commands.money.remove") public void removeMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete.class) OfflinePlayer target, @Range(min = 1E-10) double amount) { if (EconomyManager.withdrawBalance(target.getUniqueId(), amount, "Admin - Retirer par " + player == null ? "Console" : player.getName())) { - MessagesManager.sendMessage(player, Component.text("§aVous avez retiré §e" + EconomyManager.getFormattedNumber(amount) + "§a à §e" + target.getName()), Prefix.OPENMC, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.money.remove.success", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW), + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.SUCCESS, true); if (target.isOnline()) { - MessagesManager.sendMessage(target.getPlayer(), Component.text("§cVous avez perdu §e" + EconomyManager.getFormattedNumber(amount)), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(target.getPlayer(), + TranslationManager.translation( + "feature.economy.money.remove.target", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } } else { - MessagesManager.sendMessage(player, Component.text("§cLe joueur n'a pas assez d'argent"), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.economy.money.remove.not_enough"), Prefix.OPENMC, MessageType.ERROR, true); } } @@ -79,9 +124,20 @@ public void removeMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoCompl @CommandPermission("omc.admin.commands.money.reset") public void resetMoney(CommandSender player, @SuggestWith(OnlinePlayerAutoComplete.class) OfflinePlayer target) { EconomyManager.setBalance(target.getUniqueId(), 0); - MessagesManager.sendMessage(player, Component.text("§aVous avez réinitialisé l'argent de §e" + target.getName() + "§a à §e" + EconomyManager.getFormattedNumber(0)), Prefix.OPENMC, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.money.reset.success", + Component.text(target.getName()).color(NamedTextColor.YELLOW), + Component.text(EconomyManager.getFormattedNumber(0)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.SUCCESS, true); if (target.isOnline()) { - MessagesManager.sendMessage(target.getPlayer(), Component.text("§aVotre argent a été réinitialisé à §e" + EconomyManager.getFormattedNumber(0)), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(target.getPlayer(), + TranslationManager.translation( + "feature.economy.money.reset.target", + Component.text(EconomyManager.getFormattedNumber(0)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } } } diff --git a/src/main/java/fr/openmc/core/features/economy/commands/Pay.java b/src/main/java/fr/openmc/core/features/economy/commands/Pay.java index 20e9ef7ef..761db1126 100644 --- a/src/main/java/fr/openmc/core/features/economy/commands/Pay.java +++ b/src/main/java/fr/openmc/core/features/economy/commands/Pay.java @@ -5,7 +5,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.entity.Player; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; @@ -21,14 +23,26 @@ public void pay( @Named("montant") @Range(min = 1) double amount ) { if(player == target) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas vous payer vous-même"), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.economy.pay.self"), Prefix.OPENMC, MessageType.ERROR, true); return; } if(EconomyManager.transferBalance(player.getUniqueId(), target.getUniqueId(), amount, "Paiement de " + player.getName() + " à " + target.getName())) { - MessagesManager.sendMessage(player, Component.text("§aVous avez payé §e" + target.getName() + "§a de §e" + EconomyManager.getFormattedNumber(amount)), Prefix.OPENMC, MessageType.SUCCESS, true); - MessagesManager.sendMessage(target, Component.text("§aVous avez reçu §e" + EconomyManager.getFormattedNumber(amount) + "§a de §e" + player.getName()), Prefix.OPENMC, MessageType.INFO, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.economy.pay.success", + Component.text(target.getName()).color(NamedTextColor.YELLOW), + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.SUCCESS, true); + MessagesManager.sendMessage(target, + TranslationManager.translation( + "feature.economy.pay.received", + Component.text(EconomyManager.getFormattedNumber(amount)).color(NamedTextColor.YELLOW), + Component.text(player.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.OPENMC, MessageType.INFO, true); } else { - MessagesManager.sendMessage(player, Component.text("§cVous n'avez pas assez d'argent"), Prefix.OPENMC, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.economy.pay.not_enough"), Prefix.OPENMC, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java index 7eb67f572..5a7beb6ef 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankDepositMenu.java @@ -92,7 +92,7 @@ public void onInventoryClick(InventoryClickEvent click) { itemMeta.itemName(TranslationManager.translation("feature.economy.bank.deposit.input.name")); itemMeta.lore(loreBankDepositInput); }).setOnClick(inventoryClickEvent -> { - DialogInput.send(player, Component.text("Entrez le montant que vous voulez déposer"), MAX_LENGTH, input -> { + DialogInput.send(player, TranslationManager.translation("feature.economy.bank.deposit.input.prompt"), MAX_LENGTH, input -> { if (input == null) return; BankManager.deposit(player.getUniqueId(), input); diff --git a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java index b424af253..62bac1669 100644 --- a/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java +++ b/src/main/java/fr/openmc/core/features/economy/menu/PersonalBankWithdrawMenu.java @@ -94,7 +94,7 @@ public void onInventoryClick(InventoryClickEvent click) { itemMeta.itemName(TranslationManager.translation("feature.economy.bank.withdraw.input.name")); itemMeta.lore(loreBankWithdrawInput); }).setOnClick(inventoryClickEvent -> { - DialogInput.send(player, Component.text("Entrez le montant que vous voulez retirer"), MAX_LENGTH, input -> { + DialogInput.send(player, TranslationManager.translation("feature.economy.bank.withdraw.input.prompt"), MAX_LENGTH, input -> { if (input == null) return; BankManager.withdraw(player.getUniqueId(), input); diff --git a/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarManager.java b/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarManager.java index 2e598c1d8..21ad7b216 100644 --- a/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarManager.java +++ b/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarManager.java @@ -7,9 +7,8 @@ import fr.openmc.core.features.events.contents.weeklyevents.models.WeeklyEvent; import fr.openmc.core.features.events.contents.weeklyevents.models.WeeklyEventPhase; import fr.openmc.core.features.events.models.Event; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; @@ -49,7 +48,7 @@ public List getPhases() { return List.of(new WeeklyEventPhase() { @Override public Component getName() { - return Component.text("Inconnu"); + return TranslationManager.translation("feature.events.calendar.unknown_phase"); } @Override @@ -81,7 +80,7 @@ public Runnable runAction() { @Override public Component getName() { - return Component.text("Evenement du Weekend", NamedTextColor.YELLOW, TextDecoration.BOLD); + return TranslationManager.translation("feature.events.calendar.weekend_event_name"); } @Override diff --git a/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarMenu.java b/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarMenu.java index 3509451ef..2ccbb2709 100644 --- a/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarMenu.java +++ b/src/main/java/fr/openmc/core/features/events/commands/calendar/CalendarMenu.java @@ -8,8 +8,8 @@ import fr.openmc.core.features.events.contents.weeklyevents.models.WeeklyEventPhase; import fr.openmc.core.features.events.models.Event; import fr.openmc.core.registry.items.CustomItemRegistry; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -70,7 +70,7 @@ public int getSizeOfItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(33, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_cancel")).getBest(), itemMeta -> itemMeta.displayName(Component.text("§7Fermer"))).setCloseButton()); + map.put(33, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_cancel")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); return map; } @@ -79,7 +79,7 @@ private List getEventLore(Event event) { if (event instanceof WeeklyEvent we) { eventLore.add(Component.empty()); - eventLore.add(Component.text("Phases :", NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false)); + eventLore.add(TranslationManager.translation("feature.events.calendar.phases")); for (WeeklyEventPhase phase : we.getPhases()) { LocalDateTime now = LocalDateTime.now(); @@ -95,15 +95,14 @@ private List getEventLore(Event event) { String formattedDate = dateEvent.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.FRANCE) + " " + dateEvent.getDayOfMonth() + " " + dateEvent.getMonth().getDisplayName(TextStyle.FULL, Locale.FRANCE); - // ex. Vendredi 13 Mars - - eventLore.add(Component.text("- ") - .append(phase.getName()) - .append(Component.text(" le " + formattedDate + " à " - + phase.getStartHour() + "h" + String.format("%02d", phase.getStartMinutes()))) // ex. 0h00 - .color(NamedTextColor.GRAY) - .decoration(TextDecoration.ITALIC, false) - ); + String formattedTime = phase.getStartHour() + "h" + String.format("%02d", phase.getStartMinutes()); + + eventLore.add(TranslationManager.translation( + "feature.events.calendar.phase.line", + phase.getName(), + Component.text(formattedDate), + Component.text(formattedTime) + )); } } return eventLore; @@ -111,7 +110,7 @@ private List getEventLore(Event event) { @Override public @NotNull Component getName() { - return Component.text("Calendrier Evenementiel"); + return TranslationManager.translation("feature.events.calendar.title"); } @Override diff --git a/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java b/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java index 6da5a79ad..031e792a1 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/halloween/managers/HalloweenManager.java @@ -20,6 +20,7 @@ import fr.openmc.core.features.leaderboards.LeaderboardManager; import fr.openmc.core.features.mailboxes.MailboxManager; import fr.openmc.core.registry.items.CustomItemRegistry; +import fr.openmc.core.utils.text.messages.TranslationManager; import io.papermc.paper.datacomponent.DataComponentTypes; import io.papermc.paper.datacomponent.item.DamageResistant; import io.papermc.paper.registry.keys.tags.DamageTypeTagKeys; @@ -28,7 +29,6 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -126,7 +126,7 @@ public static void endEvent() { List rewards = new ArrayList<>(); - final ItemStack aywenite = CustomItemRegistry.getByName("omc_items:aywenite").getBest(); + final ItemStack aywenite = Objects.requireNonNull(CustomItemRegistry.getByName("omc_items:aywenite")).getBest(); aywenite.setAmount(64); switch (rank) { case 1 -> { @@ -136,14 +136,9 @@ public static void endEvent() { customPumpkin.setData(DataComponentTypes.DAMAGE_RESISTANT, DamageResistant.damageResistant(DamageTypeTagKeys.IS_FIRE)); customPumpkin.editMeta(meta -> { - meta.itemName(Component.text("La Tarte de la Victoire (2025)", TextColor.color(255, 107, 37), TextDecoration.BOLD, TextDecoration.UNDERLINED)); - meta.lore(List.of( - Component.text("Récompense du joueur ayant récolté le plus de citrouilles", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.text("lors de l'événement Halloween 2025.", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.empty(), - Component.text("Obtenu par ", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false) - .append(Component.text(offlinePlayer.getName() == null ? "Inconnu" : offlinePlayer.getName(), NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false)) - )); + Component ownerName = Component.text(offlinePlayer.getName() == null ? TranslationManager.translationString("feature.events.halloween.unknown_player") : offlinePlayer.getName()).color(NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false); + meta.itemName(TranslationManager.translation("feature.events.halloween.reward.rank1.name")); + meta.lore(TranslationManager.translationLore("feature.events.halloween.reward.rank1.lore", ownerName)); }); rewards.addAll(List.of(customPumpkin, aywenite, aywenite.clone(), aywenite.clone())); @@ -157,15 +152,9 @@ public static void endEvent() { customPumpkin.setData(DataComponentTypes.DAMAGE_RESISTANT, DamageResistant.damageResistant(DamageTypeTagKeys.IS_FIRE)); customPumpkin.editMeta(meta -> { - meta.itemName(Component.text("La Tarte de l'Excellence (2025)", TextColor.color(255, 107, 37), TextDecoration.BOLD, TextDecoration.UNDERLINED)); - meta.lore(List.of( - Component.text("Récompense du joueur ayant récolté la deuxième plus", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.text("grande quantité de citrouilles lors de l'événement", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.text("Halloween 2025.", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.empty(), - Component.text("Obtenu par ", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false) - .append(Component.text(offlinePlayer.getName() == null ? "Inconnu" : offlinePlayer.getName(), NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false)) - )); + Component ownerName = Component.text(offlinePlayer.getName() == null ? TranslationManager.translationString("feature.events.halloween.unknown_player") : offlinePlayer.getName()).color(NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false); + meta.itemName(TranslationManager.translation("feature.events.halloween.reward.rank2.name")); + meta.lore(TranslationManager.translationLore("feature.events.halloween.reward.rank2.lore", ownerName)); }); rewards.addAll(List.of(customPumpkin, aywenite, aywenite.clone())); @@ -179,15 +168,9 @@ public static void endEvent() { customPumpkin.setData(DataComponentTypes.DAMAGE_RESISTANT, DamageResistant.damageResistant(DamageTypeTagKeys.IS_FIRE)); customPumpkin.editMeta(meta -> { - meta.itemName(Component.text("La Tarte du Mérite (2025)", TextColor.color(255, 107, 37), TextDecoration.BOLD, TextDecoration.UNDERLINED)); - meta.lore(List.of( - Component.text("Récompense du joueur ayant récolté la troisième plus", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.text("grande quantité de citrouilles lors de l'événement", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.text("Halloween 2025.", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false), - Component.empty(), - Component.text("Obtenu par ", NamedTextColor.GRAY).decoration(TextDecoration.ITALIC, false) - .append(Component.text(offlinePlayer.getName() == null ? "Inconnu" : offlinePlayer.getName(), NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false)) - )); + Component ownerName = Component.text(offlinePlayer.getName() == null ? TranslationManager.translationString("feature.events.halloween.unknown_player") : offlinePlayer.getName()).color(NamedTextColor.GOLD).decoration(TextDecoration.ITALIC, false); + meta.itemName(TranslationManager.translation("feature.events.halloween.reward.rank3.name")); + meta.lore(TranslationManager.translationLore("feature.events.halloween.reward.rank3.lore", ownerName)); }); rewards.addAll(List.of(customPumpkin, aywenite)); @@ -210,17 +193,6 @@ public static void endEvent() { halloweenNPC.removeForAll(); npcManager.removeNpc(halloweenNPC); - Bukkit.getServer().sendMessage( - Component.newline() - .append(Component.text("L'événement Halloween 2025 est maintenant terminé !", TextColor.color(255, 107, 37)) - .append(Component.newline()) - .append(Component.text("Vous pouvez retrouver vos récompenses dans votre", TextColor.color(255, 107, 37)))) - .append(Component.text(" boîte aux lettres", TextColor.color(255, 107, 37), TextDecoration.BOLD)) - .append(Component.text(".", TextColor.color(255, 107, 37))) - .append(Component.newline()) - .append(Component.text("Merci à tous pour votre participation !", TextColor.fromHexString("#FFD580"))) - .append(Component.newline()) - - ); + Bukkit.getServer().sendMessage(TranslationManager.translation("feature.events.halloween.event.end.broadcast")); } } diff --git a/src/main/java/fr/openmc/core/features/events/contents/halloween/menus/HalloweenPumpkinDepositMenu.java b/src/main/java/fr/openmc/core/features/events/contents/halloween/menus/HalloweenPumpkinDepositMenu.java index 58843a997..821e01c6f 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/halloween/menus/HalloweenPumpkinDepositMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/halloween/menus/HalloweenPumpkinDepositMenu.java @@ -8,8 +8,8 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; @@ -29,7 +29,7 @@ public HalloweenPumpkinDepositMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Déposer vos citrouilles"); + return TranslationManager.translation("feature.events.halloween.menu.deposit.title"); } @Override @@ -47,11 +47,8 @@ public String getTexture() { return Map.of( 13, new ItemBuilder(this, Material.PUMPKIN, meta -> { - meta.itemName(Component.text("Déposer vos citrouilles", TextColor.color(255, 107, 37))); - meta.lore(List.of( - Component.text("Cliquez ici pour déposer vos citrouilles et", NamedTextColor.GRAY), - Component.text("obtenir des récompenses !", NamedTextColor.GRAY) - )); + meta.itemName(TranslationManager.translation("feature.events.halloween.menu.deposit.button.name")); + meta.lore(TranslationManager.translationLore("feature.events.halloween.menu.deposit.button.lore")); meta.setEnchantmentGlintOverride(true); }).setOnClick(event -> { Player player = (Player) event.getWhoClicked(); @@ -59,7 +56,7 @@ public String getTexture() { if (pumpkinCount == 0) { MessagesManager.sendMessage( player, - Component.text("Vous n'avez aucune citrouille à déposer !", NamedTextColor.RED), + TranslationManager.translation("feature.events.halloween.menu.deposit.no_pumpkin"), Prefix.HALLOWEEN, MessageType.ERROR, false @@ -73,9 +70,10 @@ public String getTexture() { HalloweenManager.depositPumpkins(player.getUniqueId(), pumpkinCount); MessagesManager.sendMessage( player, - Component.text("Vous avez déposé ", NamedTextColor.GOLD) - .append(Component.text(pumpkinCount, TextColor.color(255, 107, 37), TextDecoration.BOLD)) - .append(Component.text(" citrouilles !", NamedTextColor.GOLD)), + TranslationManager.translation( + "feature.events.halloween.menu.deposit.success", + Component.text(pumpkinCount).color(TextColor.color(255, 107, 37)).decorate(TextDecoration.BOLD) + ), Prefix.HALLOWEEN, MessageType.SUCCESS, false diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/ContestPhase.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/ContestPhase.java index 8dbdc77f1..698305a38 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/ContestPhase.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/ContestPhase.java @@ -2,11 +2,11 @@ import fr.openmc.core.features.events.contents.weeklyevents.contents.contest.managers.ContestManager; import fr.openmc.core.features.events.contents.weeklyevents.models.WeeklyEventPhase; +import fr.openmc.core.utils.text.messages.TranslationManager; import lombok.Getter; import net.kyori.adventure.text.Component; import java.time.DayOfWeek; -import java.util.Arrays; import java.util.List; @Getter @@ -14,16 +14,12 @@ public enum ContestPhase { VOTE_CAMP(new WeeklyEventPhase() { @Override public Component getName() { - return Component.text("Les votes"); + return TranslationManager.translation("feature.events.contest.phase.vote.name"); } @Override public List getDescription() { - return Arrays.asList( - Component.text("§7Tout les vendredi, le contest commence"), - Component.text("§7Et les votes s'ouvrent, et il faut choisir"), - Component.text("§7Entre 2 camps, une ambience se crée dans le spawn...") - ); + return TranslationManager.translationLore("feature.events.contest.phase.vote.lore"); } @Override @@ -49,16 +45,12 @@ public Runnable runAction() { TRADE_PHASE(new WeeklyEventPhase() { @Override public Component getName() { - return Component.text("L'affrontement"); + return TranslationManager.translation("feature.events.contest.phase.trade.name"); } @Override public List getDescription() { - return Arrays.asList( - Component.text("§7La nuit tombe sur le spawn pendant 2 jours"), - Component.text("§7Que la fête commence !"), - Component.text("§7Des trades sont disponible"), - Component.text("§7Donnant des coquillages de contest !")); + return TranslationManager.translationLore("feature.events.contest.phase.trade.lore"); } @Override @@ -84,16 +76,12 @@ public Runnable runAction() { END_PHASE(new WeeklyEventPhase() { @Override public Component getName() { - return Component.text("Les résultats"); + return TranslationManager.translation("feature.events.contest.phase.end.name"); } @Override public List getDescription() { - return Arrays.asList( - Component.text("§7Le levé de soleil sur le spawn !"), - Component.text("§7Les résultats tombent, et un camp"), - Component.text("§7sera gagnant. Et des récompenses seront attribuées"), - Component.text(("§7à chacun."))); + return TranslationManager.translationLore("feature.events.contest.phase.end.lore"); } @Override diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/commands/ContestCommand.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/commands/ContestCommand.java index a7985dfde..91ab29b32 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/commands/ContestCommand.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/commands/ContestCommand.java @@ -17,7 +17,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import revxrsal.commands.annotation.*; @@ -39,7 +41,12 @@ public static void mainCommand(Player player) { if (!contest.isActive()) { int days = (ContestPhase.VOTE_CAMP.getPhase().getStartDay().getValue() - DateUtils.getCurrentDayOfWeek().getValue() + 7) % 7; - MessagesManager.sendMessage(player, Component.text("§cIl n'y a aucun Contest ! Revenez dans " + days + " jour(s)."), Prefix.CONTEST, MessageType.ERROR, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.events.contest.command.no_event", + Component.text(days).color(NamedTextColor.YELLOW) + ), + Prefix.CONTEST, MessageType.ERROR, true); return; } @@ -54,7 +61,7 @@ public static void mainCommand(Player player) { new VoteMenu(player).open(); } } else { - MessagesManager.sendMessage(player, Component.text("§cLe Contest est dans sa phase terminée, veuillez contactez le staff."), Prefix.CONTEST, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.ended_phase"), Prefix.CONTEST, MessageType.ERROR, true); } } @@ -78,12 +85,12 @@ public void setContest( Contest contest = (Contest) WeeklyEventsManager.getEvent(Contest.class); if (!contest.isActive()) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas définir un contest lorsqu'il n'est pas actif"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.setcontest.not_active"), Prefix.STAFF, MessageType.ERROR, true); return; } if (contest.getActivePhase() != ContestPhase.VOTE_CAMP.getPhase()) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas définir un contest lorsqu'il a commencé"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.setcontest.started"), Prefix.STAFF, MessageType.ERROR, true); return; } @@ -91,9 +98,15 @@ public void setContest( if (new HashSet<>(ContestManager.getColorContestList()).containsAll(Arrays.asList(color1, color2))) { ContestManager.clearDB(); ContestManager.insertCustomContest(camp1, color1, camp2, color2); - MessagesManager.sendMessage(player, Component.text("§aLe Contest : " + camp1 + " VS " + camp2 + " a bien été sauvegardé\nMerci d'attendre que les données en cache s'actualise."), Prefix.STAFF, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.events.contest.command.setcontest.saved", + Component.text(camp1).color(NamedTextColor.YELLOW), + Component.text(camp2).color(NamedTextColor.YELLOW) + ), + Prefix.STAFF, MessageType.SUCCESS, true); } else { - MessagesManager.sendMessage(player, Component.text("§c/contest setcontest et color doit comporter une couleur valide"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.setcontest.invalid_color"), Prefix.STAFF, MessageType.ERROR, true); } } @@ -139,21 +152,27 @@ public void addPoints( Contest contest = (Contest) WeeklyEventsManager.getEvent(Contest.class); if (contest.getActivePhase() != ContestPhase.TRADE_PHASE.getPhase()) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas donner des points lorsque le contest n'a pas commencé"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.addpoints.not_started"), Prefix.STAFF, MessageType.ERROR, true); return; } if (ContestManager.dataPlayer.get(target.getUniqueId()) == null) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas donner des points à ce joueur car il ne s'est pas inscrit"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.addpoints.not_registered"), Prefix.STAFF, MessageType.ERROR, true); return; } if (points <= 0) { - MessagesManager.sendMessage(player, Component.text("§cVous ne pouvez pas donner des points négatifs ou égal à 0"), Prefix.STAFF, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.command.addpoints.invalid"), Prefix.STAFF, MessageType.ERROR, true); return; } ContestPlayerManager.setPointsPlayer(target.getUniqueId() ,points + ContestManager.dataPlayer.get(target.getUniqueId()).getPoints()); - MessagesManager.sendMessage(player, Component.text("§aVous avez ajouté " + points + " §apoint(s) à " + target.getName()), Prefix.STAFF, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, + TranslationManager.translation( + "feature.events.contest.command.addpoints.success", + Component.text(points).color(NamedTextColor.YELLOW), + Component.text(target.getName()).color(NamedTextColor.YELLOW) + ), + Prefix.STAFF, MessageType.SUCCESS, true); } } diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java index 5e53e26d5..1a516121b 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/managers/ContestManager.java @@ -31,6 +31,7 @@ import fr.openmc.core.utils.bukkit.ParticleUtils; import fr.openmc.core.utils.cache.CacheOfflinePlayer; import fr.openmc.core.utils.text.ColorUtils; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.format.NamedTextColor; @@ -206,15 +207,7 @@ public static void initPhase1() { ParticleUtils.color1 = null; ParticleUtils.color2 = null; - Bukkit.broadcast(Component.text(""" - §8§m §r - §7 - §6§lCONTEST !§r §7 Les votes sont ouverts !§7 - §7 - §8§o*on se retrouve au spawn pour pouvoir voter ou /contest...* - §7 - §8§m §r""" - )); + Bukkit.broadcast(TranslationManager.translation("feature.events.contest.broadcast.phase1")); for (Player player : Bukkit.getOnlinePlayers()) { player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 1.0F, 0.2F); @@ -238,15 +231,7 @@ public static void initPhase2() { TradeYMLManager.updateColumnBooleanFromRandomTrades(true, (String) trade.get("ress")); } - Bukkit.broadcast(Component.text(""" - §8§m §r - §7 - §6§lCONTEST !§r §7Les contributions ont commencé!§7 - §7Échangez des ressources contre des Coquillages de Contest. Récoltez en un max et déposez les - §8§ovia la borne des contest ou /contest - §7 - §8§m §r""" - )); + Bukkit.broadcast(TranslationManager.translation("feature.events.contest.broadcast.phase2")); for (Player player : Bukkit.getOnlinePlayers()) { player.playSound(player.getEyeLocation(), Sound.ENTITY_FIREWORK_ROCKET_TWINKLE, 1.0F, 0.3F); @@ -278,16 +263,7 @@ public static void initPhase3() { player.playSound(player.getEyeLocation(), Sound.ENTITY_ENDER_DRAGON_DEATH, 1.0F, 2F); } - Bukkit.broadcast(Component.text(""" - §8§m §r - §7 - §6§lCONTEST !§r §7Time over ! §7 - §7Fin du contest, retrouvez vos récompenses et le bilan de ce Contest - §7sous forme de livre - §8§o*/contest pour voir quand le prochain contest arrive* - §7 - §8§m §r""" - )); + Bukkit.broadcast(TranslationManager.translation("feature.events.contest.broadcast.phase3")); // GET GLOBAL CONTEST INFORMATION String camp1Color = data.getColor1(); @@ -300,14 +276,13 @@ public static void initPhase3() { // Create part of the book ItemStack baseBook = new ItemStack(Material.WRITTEN_BOOK); BookMeta baseBookMeta = (BookMeta) baseBook.getItemMeta(); - baseBookMeta.setTitle("Les Résultats du contest"); - baseBookMeta.setAuthor("Les contests"); - - List lore = Arrays.asList( - Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1) - .append(Component.text(" §7VS ")) - .append(Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2)), - Component.text("§e§lOuvrez ce livre pour en savoir plus!") + baseBookMeta.setTitle(TranslationManager.translationString("feature.events.contest.book.title")); + baseBookMeta.setAuthor(TranslationManager.translationString("feature.events.contest.book.author")); + + List lore = TranslationManager.translationLore( + "feature.events.contest.book.lore", + Component.text(camp1Name).decoration(TextDecoration.ITALIC, false).color(color1), + Component.text(camp2Name).decoration(TextDecoration.ITALIC, false).color(color2) ); baseBookMeta.lore(lore); @@ -371,27 +346,20 @@ public static void initPhase3() { pointsLooserTaux = points1Taux; } - baseBookMeta.addPages( - Component.text("§8§lStatistiques globales \n§0Gagnant : ") - .append(Component.text(campWinner).decoration(TextDecoration.ITALIC, false).color(colorWinner)) - .append(Component.text("\n§0Taux de vote : §8")) - .append(Component.text(voteWinnerTaux + "%").decoration(TextDecoration.ITALIC, false)) - .append(Component.text("\n§0Taux de points : §8")) - .append(Component.text(pointsWinnerTaux + "%").decoration(TextDecoration.ITALIC, false)) - .append(Component.text( "\n\n§0Perdant : ")) - .append(Component.text(campLooser).decoration(TextDecoration.ITALIC, false).color(colorLooser)) - .append(Component.text("\n§0Taux de vote : §8")) - .append(Component.text(voteLooserTaux + "%").decoration(TextDecoration.ITALIC, false)) - .append(Component.text("\n§0Taux de points : §8")) - .append(Component.text(pointsLooserTaux + "%").decoration(TextDecoration.ITALIC, false)) - .append(Component.text("\n§0Multiplicateur d'infériorité : §bx")) - .append(Component.text(multiplicateurPoint).decoration(TextDecoration.ITALIC, false).color(NamedTextColor.AQUA)) - .append(Component.text("\n§8§oProchaine page : classement des 10 meilleurs contributeurs")) - ); + baseBookMeta.addPages(TranslationManager.translation( + "feature.events.contest.book.page.global", + Component.text(campWinner).decoration(TextDecoration.ITALIC, false).color(colorWinner), + Component.text(voteWinnerTaux + "%").decoration(TextDecoration.ITALIC, false), + Component.text(pointsWinnerTaux + "%").decoration(TextDecoration.ITALIC, false), + Component.text(campLooser).decoration(TextDecoration.ITALIC, false).color(colorLooser), + Component.text(voteLooserTaux + "%").decoration(TextDecoration.ITALIC, false), + Component.text(pointsLooserTaux + "%").decoration(TextDecoration.ITALIC, false), + Component.text(multiplicateurPoint).decoration(TextDecoration.ITALIC, false).color(NamedTextColor.AQUA) + )); // 2EME PAGE - LES CLASSEMENTS - final Component[] leaderboard = {Component.text("§8§lLe classement du contest (jusqu'au 10ème)")}; + final Component[] leaderboard = {TranslationManager.translation("feature.events.contest.book.page.ranking.title")}; Map orderedMap = dataPlayer.entrySet() .stream() @@ -414,7 +382,8 @@ public static void initPhase3() { Component rankComponent = Component.text("\n#" + (rankInt[0] + 1) + " ").color(LeaderboardManager.getRankColor(rankInt[0] + 1)) .append(Component.text(dataOrdered.getName()).decoration(TextDecoration.ITALIC, false).color(playerCampColor2)) - .append(Component.text(" §8- §b" + dataOrdered.getPoints())); + .append(Component.text(" - ", NamedTextColor.DARK_GRAY)) + .append(Component.text(dataOrdered.getPoints()).color(NamedTextColor.AQUA)); rankInt[0]++; leaderboard[0] = leaderboard[0].append(rankComponent); }); @@ -436,11 +405,11 @@ public static void initPhase3() { int points = dataPlayer1.getPoints(); if (player.isOnline() && player instanceof Player onelinePlayer) { - Component messageMail = Component.text("Vous avez reçu la lettre du contest", NamedTextColor.DARK_GREEN) - .append(Component.text("\nCliquez ici", NamedTextColor.YELLOW)) + Component messageMail = TranslationManager.translation("feature.events.contest.mail.received") + .append(TranslationManager.translation("feature.events.contest.mail.click")) .clickEvent(ClickEvent.runCommand("mailbox")) - .hoverEvent(getHoverEvent("Ouvrir la mailbox")) - .append(Component.text(" pour ouvrir la mailbox", NamedTextColor.GOLD)); + .hoverEvent(getHoverEvent(TranslationManager.translationString("feature.events.contest.mail.hover"))) + .append(TranslationManager.translation("feature.events.contest.mail.open_mailbox")); onelinePlayer.sendMessage(messageMail); } @@ -448,18 +417,16 @@ public static void initPhase3() { NamedTextColor playerCampColor = ColorUtils.getReadableColor(dataPlayer1.getColor()); String playerTitleContest = ContestPlayerManager.getTitleWithPoints(points) + playerCampName; // ex. Novice en + Moutarde - bookMetaPlayer.addPages( - Component.text("§8§lStatistiques personnelles\n§0Votre camp : ") - .append(Component.text(playerCampName).decoration(TextDecoration.ITALIC, false).color(playerCampColor)) - .append(Component.text("\n§0Votre titre sur le contest §8: ")) - .append(Component.text(playerTitleContest).decoration(TextDecoration.ITALIC, false).color(playerCampColor)) - .append(Component.text("\n§0Votre rang sur le contest : §8#")) - .append(Component.text(rank.get())) - .append(Component.text("\n§0Points déposés : §b" + points)) - ); + bookMetaPlayer.addPages(TranslationManager.translation( + "feature.events.contest.book.page.personal", + Component.text(playerCampName).decoration(TextDecoration.ITALIC, false).color(playerCampColor), + Component.text(playerTitleContest).decoration(TextDecoration.ITALIC, false).color(playerCampColor), + Component.text(rank.get()), + Component.text(points).color(NamedTextColor.AQUA) + )); List itemListRewards = new ArrayList<>(); - String textRewards = "§8§lRécompenses"; + Component textRewards = TranslationManager.translation("feature.events.contest.book.page.rewards.title"); int money; int aywenite; @@ -511,20 +478,26 @@ public static void initPhase3() { } // PRINT REWARDS - textRewards += "\n§8+ §6" + money + "$ "; - textRewards += "\n§9+ §d" + aywenite + " d'Aywenite "; - textRewards += "\n§7Boost de §b" + multiplicator; - - bookMetaPlayer.addPages( - Component.text(textRewards) - ); + textRewards = textRewards + .append(TranslationManager.translation("feature.events.contest.book.page.rewards.money.prefix")) + .append(Component.text(money).color(NamedTextColor.GOLD)) + .append(TranslationManager.translation("feature.events.contest.book.page.rewards.money.suffix")) + .append(TranslationManager.translation("feature.events.contest.book.page.rewards.aywenite.prefix")) + .append(Component.text(aywenite).color(NamedTextColor.LIGHT_PURPLE)) + .append(TranslationManager.translation("feature.events.contest.book.page.rewards.aywenite.suffix")) + .append(TranslationManager.translation("feature.events.contest.book.page.rewards.boost.prefix")) + .append(Component.text(multiplicator).color(NamedTextColor.AQUA)); + + bookMetaPlayer.addPages(textRewards); bookPlayer.setItemMeta(bookMetaPlayer); - ItemStack ayweniteItemStack = CustomItemRegistry.getByName("omc_items:aywenite").getBest(); - ayweniteItemStack.setAmount(aywenite); + if (CustomItemRegistry.getByName("omc_items:aywenite") != null) { + ItemStack ayweniteItemStack = Objects.requireNonNull(CustomItemRegistry.getByName("omc_items:aywenite")).getBest(); + ayweniteItemStack.setAmount(aywenite); + itemListRewards.add(ayweniteItemStack); + } itemListRewards.add(bookPlayer); - itemListRewards.add(ayweniteItemStack); ItemStack[] rewards = itemListRewards.toArray(new ItemStack[0]); playerItemsMap.put(player, rewards); diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/ContributionMenu.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/ContributionMenu.java index 3afd05d6f..a676d0c72 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/ContributionMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/ContributionMenu.java @@ -14,6 +14,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextDecoration; @@ -36,7 +37,7 @@ public ContributionMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Contests - Contributions"); + return TranslationManager.translation("feature.events.contest.contribution.title"); } @Override @@ -63,54 +64,47 @@ public void onInventoryClick(InventoryClickEvent click) { NamedTextColor campColor = ContestManager.dataPlayer.get(player.getUniqueId()).getColor(); Material m = ColorUtils.getMaterialFromColor(campColor); - List loreInfo = Arrays.asList( - Component.text("§7Apprenez en plus sur les contests !"), - Component.text("§7Le déroulement, Les résultats, ..."), - Component.text("§e§lCLIQUEZ ICI POUR EN VOIR PLUS!") - ); + List loreInfo = TranslationManager.translationLore("feature.events.contest.trade.info.lore"); - List loreContribute = Arrays.asList( - Component.text("§7Donner vos §bcoquillages de contest"), - Component.text("§7Pour faire gagner ta ") - .append(Component.text("Team").decoration(TextDecoration.ITALIC, false).color(campColor)), - Component.text("§e§lCliquez pour verser tout vos coquillages") + List loreContribute = TranslationManager.translationLore( + "feature.events.contest.contribution.lore.contribute", + Component.text("Team").decoration(TextDecoration.ITALIC, false).color(campColor) ); - List loreTrade = Arrays.asList( - Component.text("§7Faites des échanges contre des §bcoquillages de contest"), - Component.text("§7Utile pour faire gagner ta ") - .append(Component.text("Team").decoration(TextDecoration.ITALIC, false).color(campColor)), - Component.text("§e§lCliquez pour acceder au menu des échanges") + List loreTrade = TranslationManager.translationLore( + "feature.events.contest.contribution.lore.trade", + Component.text("Team").decoration(TextDecoration.ITALIC, false).color(campColor) ); - List loreRang = Arrays.asList( + List loreRang = TranslationManager.translationLore( + "feature.events.contest.contribution.lore.rank", Component.text(ContestPlayerManager.getTitleContest(player) + campName).decoration(TextDecoration.ITALIC, false).color(campColor), - Component.text("§7Progression §8: ") - .append(Component.text(ContestManager.dataPlayer.get(player.getUniqueId()).getPoints()).decoration(TextDecoration.ITALIC, false).color(campColor)) - .append(Component.text("§8/")) - .append(Component.text(ContestPlayerManager.getGoalPointsToRankUp(getOwner())).decoration(TextDecoration.ITALIC, false).color(campColor)), - Component.text("§e§lAUGMENTER DE TITRE POUR AVOIR DES RECOMPENSES MEILLEURES") + Component.text(ContestManager.dataPlayer.get(player.getUniqueId()).getPoints()).color(campColor), + Component.text(ContestPlayerManager.getGoalPointsToRankUp(getOwner())).color(campColor) ); String namespaceShellContest = "omc_contest:contest_shell"; - ItemStack shellContest = CustomItemRegistry.getByName(namespaceShellContest).getBest(); + ItemStack shellContest = Objects.requireNonNull(CustomItemRegistry.getByName(namespaceShellContest)).getBest(); inventory.put(8, new ItemBuilder(this, Material.GOLD_BLOCK, itemMeta -> { - itemMeta.displayName(Component.text("§6§lVotre titre")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.contribution.title.name")); itemMeta.lore(loreRang); })); inventory.put(11, new ItemBuilder(this, shellContest, itemMeta -> { - itemMeta.displayName(Component.text("§7Les échanges")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.trade.main.name")); itemMeta.lore(loreTrade); }).setOnClick(inventoryClickEvent -> new TradeMenu(getOwner()).open())); inventory.put(15, new ItemBuilder(this, m, itemMeta -> { - itemMeta.displayName(Component.text("§r§7Contribuer pour la§r ").append(Component.text("Team " + campName).decoration(TextDecoration.ITALIC, false).color(campColor))); + itemMeta.displayName(TranslationManager.translation( + "feature.events.contest.contribution.button.name", + Component.text("Team " + campName).decoration(TextDecoration.ITALIC, false).color(campColor) + )); itemMeta.lore(loreContribute); }).setOnClick(inventoryClickEvent -> { if (!ItemsAdderHook.isEnable()) { - MessagesManager.sendMessage(player, Component.text("§cFonctionnalité bloquée. Veuillez contactez l'administration"), Prefix.CONTEST, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.events.contest.contribution.unavailable"), Prefix.CONTEST, MessageType.ERROR, true); return; } @@ -132,9 +126,12 @@ public void onInventoryClick(InventoryClickEvent click) { ContestManager.data.setPoints2(updatedCampPoints); } - MessagesManager.sendMessage(getOwner(), Component.text("§7Vous avez déposé§b " + shellCount + " coquillage(s) de contest§7 pour votre team !"), Prefix.CONTEST, MessageType.SUCCESS, true); + MessagesManager.sendMessage(getOwner(), TranslationManager.translation( + "feature.events.contest.contribution.success", + Component.text(shellCount).color(NamedTextColor.AQUA) + ), Prefix.CONTEST, MessageType.SUCCESS, true); } else { - MessagesManager.sendMessage(getOwner(), Component.text("§cVous n'avez pas de coquillage de contest§7"), Prefix.CONTEST, MessageType.ERROR, true); + MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.events.contest.contribution.no_shells"), Prefix.CONTEST, MessageType.ERROR, true); } } catch (Exception e) { throw new RuntimeException(e); @@ -142,7 +139,7 @@ public void onInventoryClick(InventoryClickEvent click) { })); inventory.put(35, new ItemBuilder(this, Material.EMERALD, itemMeta -> { - itemMeta.displayName(Component.text("§r§aPlus d'info !")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.vote.info.name")); itemMeta.lore(loreInfo); }).setOnClick(inventoryClickEvent -> new MoreInfoMenu(getOwner()).open())); diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/MoreInfoMenu.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/MoreInfoMenu.java index b2a6b1cc1..561a292c5 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/MoreInfoMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/MoreInfoMenu.java @@ -7,6 +7,7 @@ import fr.openmc.core.features.events.contents.weeklyevents.WeeklyEventsManager; import fr.openmc.core.features.events.contents.weeklyevents.contents.contest.ContestPhase; import fr.openmc.core.features.events.contents.weeklyevents.models.WeeklyEventPhase; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -14,7 +15,6 @@ import org.bukkit.event.inventory.InventoryCloseEvent; import org.jetbrains.annotations.NotNull; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,7 +27,7 @@ public MoreInfoMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Contests - Plus d'info"); + return TranslationManager.translation("feature.events.contest.more_info.title"); } @Override @@ -49,25 +49,11 @@ public void onInventoryClick(InventoryClickEvent click) { public @NotNull Map getContent() { Map inventory = new HashMap<>(); - List lore0 = Arrays.asList( - Component.text("§7Tout les vendredi, le contest commence"), - Component.text("§7Et les votes s'ouvrent, et il faut choisir"), - Component.text("§7Entre 2 camps, une ambience se crée dans le spawn...") - ); + List lore0 = TranslationManager.translationLore("feature.events.contest.phase.vote.lore"); - List lore1 = Arrays.asList( - Component.text("§7La nuit tombe sur le spawn pendant 2 jours"), - Component.text("§7Que la fête commence !"), - Component.text("§7Des trades sont disponible"), - Component.text("§7Donnant des coquillages de contest !") - ); + List lore1 = TranslationManager.translationLore("feature.events.contest.phase.trade.lore"); - List lore2 = Arrays.asList( - Component.text("§7Le levé de soleil sur le spawn !"), - Component.text("§7Les résultats tombent, et un camp"), - Component.text("§7sera gagnant. Et des récompenses seront attribuées"), - Component.text(("§7à chacun.")) - ); + List lore2 = TranslationManager.translationLore("feature.events.contest.phase.end.lore"); WeeklyEventPhase phase = WeeklyEventsManager.getCurrentPhase(); @@ -76,23 +62,23 @@ public void onInventoryClick(InventoryClickEvent click) { boolean ench1 = phase == ContestPhase.TRADE_PHASE.getPhase(); inventory.put(11, new ItemBuilder(this, Material.BLUE_STAINED_GLASS_PANE, itemMeta -> { - itemMeta.displayName(Component.text("§r§1Les votes - Vendredi")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.more_info.vote.name")); itemMeta.lore(lore0); itemMeta.setEnchantmentGlintOverride(ench0); })); inventory.put(13, new ItemBuilder(this, Material.RED_STAINED_GLASS_PANE, itemMeta -> { - itemMeta.displayName(Component.text("§r§cL'affrontement - Samedi-Dimanche")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.more_info.trade.name")); itemMeta.lore(lore1); itemMeta.setEnchantmentGlintOverride(ench1); })); inventory.put(15, new ItemBuilder(this, Material.YELLOW_STAINED_GLASS_PANE, itemMeta -> { - itemMeta.displayName(Component.text("§r§eLes résultats - Lundi")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.more_info.end.name")); itemMeta.lore(lore2); })); - inventory.put(35, new ItemBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(Component.text("§r§aRetour")), true)); + inventory.put(35, new ItemBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/TradeMenu.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/TradeMenu.java index 8db31e1c2..79dec2fff 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/TradeMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/TradeMenu.java @@ -15,6 +15,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TranslatableComponent; import net.kyori.adventure.text.format.NamedTextColor; @@ -38,7 +39,7 @@ public TradeMenu(Player owner) { @Override public @NotNull Component getName() { - return Component.text("Menu des Contests - Échanges"); + return TranslationManager.translation("feature.events.contest.trade.menu.title"); } @Override @@ -66,21 +67,15 @@ public void onInventoryClick(InventoryClickEvent click) { ItemStack shellContest = CustomItemRegistry.getByName(SHELL_NAMESPACE).getBest(); - List loreInfo = Arrays.asList( - Component.text("§7Apprenez en plus sur les contest !"), - Component.text("§7Le déroulement, les résultats, ..."), - Component.text("§e§lCLIQUEZ ICI POUR EN VOIR PLUS!") - ); + List loreInfo = TranslationManager.translationLore("feature.events.contest.trade.info.lore"); - List loreTrade = Arrays.asList( - Component.text("§7Vendez un maximum de ressources"), - Component.text("§7Contre des §bcoquillages de contest"), - Component.text("§7Pour faire gagner la ") - .append(Component.text("Team " + campName).decoration(TextDecoration.ITALIC, false).color(campColor)) + List loreTrade = TranslationManager.translationLore( + "feature.events.contest.trade.main.lore", + Component.text("Team " + campName).decoration(TextDecoration.ITALIC, false).color(campColor) ); inventory.put(4, new ItemBuilder(this, shellContest, itemMeta -> { - itemMeta.displayName(Component.text("§7Les échanges")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.trade.main.name")); itemMeta.lore(loreTrade); })); @@ -96,10 +91,10 @@ public void onInventoryClick(InventoryClickEvent click) { int amount = (int) trade.get("amount"); int amountShell = (int) trade.get("amount_shell"); - List lore = Arrays.asList( - Component.text("§7Vendez §e" + amount + " §7pour §b" + amountShell + " coquillage(s)"), - Component.text("§e§lCLIQUE-GAUCHE POUR VENDRE UNE FOIS"), - Component.text("§e§lSHIFT-CLIQUE-GAUCHE POUR VENDRE TOUTE CETTE RESSOURCE") + List lore = TranslationManager.translationLore( + "feature.events.contest.trade.offer.lore", + Component.text(amount).color(NamedTextColor.YELLOW), + Component.text(amountShell).color(NamedTextColor.AQUA) ); @@ -107,7 +102,7 @@ public void onInventoryClick(InventoryClickEvent click) { .setOnClick(event -> { if (!ItemsAdderHook.isEnable()) { MessagesManager.sendMessage(player, - Component.text("§cFonctionnalité bloquée. Contactez l'administration."), + TranslationManager.translation("feature.events.contest.trade.unavailable"), Prefix.CONTEST, MessageType.ERROR, true); return; } @@ -125,10 +120,10 @@ public void onInventoryClick(InventoryClickEvent click) { ); } - inventory.put(27, new ItemBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(Component.text("§r§aRetour")), true)); + inventory.put(27, new ItemBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); inventory.put(35, new ItemBuilder(this, Material.EMERALD, itemMeta -> { - itemMeta.displayName(Component.text("§r§aPlus d'info !")); + itemMeta.displayName(TranslationManager.translation("feature.events.contest.vote.info.name")); itemMeta.lore(loreInfo); }).setOnClick(inventoryClickEvent -> new MoreInfoMenu(getOwner()).open())); @@ -231,9 +226,12 @@ private void giveShells(Player player, int amount) { */ private void sendSuccessMessage(Player player, int itemsRemoved, int shellsEarned, Component tradeName) { MessagesManager.sendMessage(player, - Component.text("§7Vous avez échangé §e" + itemsRemoved + " ") - .append(tradeName).color(NamedTextColor.YELLOW) - .append(Component.text(" §7contre §b" + shellsEarned + " coquillage(s) de contest")), + TranslationManager.translation( + "feature.events.contest.trade.success", + Component.text(itemsRemoved).color(NamedTextColor.YELLOW), + tradeName.color(NamedTextColor.YELLOW), + Component.text(shellsEarned).color(NamedTextColor.AQUA) + ), Prefix.CONTEST, MessageType.SUCCESS, true); } @@ -244,7 +242,7 @@ private void sendSuccessMessage(Player player, int itemsRemoved, int shellsEarne */ private void sendNotEnoughMessage(Player player) { MessagesManager.sendMessage(player, - Component.text("§cVous n'avez pas assez de cette ressource pour l'échanger !"), + TranslationManager.translation("feature.events.contest.trade.not_enough"), Prefix.CONTEST, MessageType.ERROR, true); } } diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java index 9bcff6d9d..cf39f4e4f 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/menu/VoteMenu.java @@ -161,14 +161,18 @@ public void onInventoryClick(InventoryClickEvent event) { String campColor = ContestManager.data.getColor1(); NamedTextColor colorFinal = ColorUtils.getNamedTextColor(campColor); + Component teamComponent = TranslationManager.translation( + "feature.events.contest.team.label", + Component.text(campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + ); List loreAccept = TranslationManager.translationLore( "feature.events.contest.vote.confirm.join.lore", - Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ); List loreDeny = TranslationManager.translationLore( "feature.events.contest.vote.confirm.cancel.lore", - Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ); ConfirmMenu menu = new ConfirmMenu( @@ -180,7 +184,7 @@ public void onInventoryClick(InventoryClickEvent event) { player, TranslationManager.translation( "feature.events.contest.vote.joined", - Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ), Prefix.CONTEST, MessageType.SUCCESS, @@ -211,14 +215,18 @@ public void onInventoryClick(InventoryClickEvent event) { String campColor = ContestManager.data.getColor2(); NamedTextColor colorFinal = ColorUtils.getNamedTextColor(campColor); + Component teamComponent = TranslationManager.translation( + "feature.events.contest.team.label", + Component.text(campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + ); List loreAccept = TranslationManager.translationLore( "feature.events.contest.vote.confirm.join.lore", - Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ); List loreDeny = TranslationManager.translationLore( "feature.events.contest.vote.confirm.cancel.lore", - Component.text("La Team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ); ConfirmMenu menu = new ConfirmMenu( @@ -230,7 +238,7 @@ public void onInventoryClick(InventoryClickEvent event) { player, TranslationManager.translation( "feature.events.contest.vote.joined", - Component.text("La team " + campName).decoration(TextDecoration.ITALIC, false).color(colorFinal) + teamComponent ), Prefix.CONTEST, MessageType.SUCCESS, diff --git a/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java b/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java index f57602a64..365b220ef 100644 --- a/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java +++ b/src/main/java/fr/openmc/core/features/friend/commands/FriendCommand.java @@ -70,11 +70,13 @@ public void addCommand( true ); - Component acceptButton = Component.text(" [Accepter]", NamedTextColor.GREEN) + Component acceptButton = TranslationManager.translation("feature.friend.button.accept") + .color(NamedTextColor.GREEN) .clickEvent(ClickEvent.runCommand("/friend accept " + player.getName())) - .hoverEvent(HoverEvent.showText(Component.text("Cliquez pour accepter la demande d'ami", NamedTextColor.GREEN))); + .hoverEvent(HoverEvent.showText(TranslationManager.translation("feature.friend.button.accept_hover").color(NamedTextColor.GREEN))); - Component ignoreButton = Component.text(" [Ignorer]", NamedTextColor.GRAY) + Component ignoreButton = TranslationManager.translation("feature.friend.button.ignore") + .color(NamedTextColor.GRAY) .clickEvent(ClickEvent.callback(audience -> { if (!FriendManager.isRequestPending(player.getUniqueId())) { MessagesManager.sendMessage(target, TranslationManager.translation("feature.friend.request.expired"), Prefix.FRIEND, MessageType.INFO, true); @@ -92,11 +94,12 @@ public void addCommand( true ); })) - .hoverEvent(HoverEvent.showText(Component.text("Cliquez pour ignorer la demande d'ami", NamedTextColor.GRAY))); + .hoverEvent(HoverEvent.showText(TranslationManager.translation("feature.friend.button.ignore_hover").color(NamedTextColor.GRAY))); - Component denyButton = Component.text(" [Refuser]", NamedTextColor.RED) + Component denyButton = TranslationManager.translation("feature.friend.button.deny") + .color(NamedTextColor.RED) .clickEvent(ClickEvent.runCommand("/friend deny " + player.getName())) - .hoverEvent(HoverEvent.showText(Component.text("Cliquez pour refuser la demande d'ami", NamedTextColor.RED))); + .hoverEvent(HoverEvent.showText(TranslationManager.translation("feature.friend.button.deny_hover").color(NamedTextColor.RED))); MessagesManager.sendMessage( target, @@ -134,11 +137,14 @@ public void removeCommand( MessagesManager.sendMessage(player, TranslationManager.translation("feature.friend.remove.error"), Prefix.FRIEND, MessageType.ERROR, true); return; } + String targetDisplayName = target.getName() != null + ? target.getName() + : TranslationManager.translationString("feature.friend.unknown_player"); MessagesManager.sendMessage( player, TranslationManager.translation( "feature.friend.remove.success", - Component.text(target.getName()).color(NamedTextColor.YELLOW) + Component.text(targetDisplayName).color(NamedTextColor.YELLOW) ), Prefix.FRIEND, MessageType.INFO, @@ -199,12 +205,19 @@ public void listCommand( int startIndex = (currentPage - 1) * ITEMS_PER_PAGE; int endIndex = Math.min(startIndex + ITEMS_PER_PAGE, friendsList.size()); - Component header = Component.text(" ✦ Liste d'amis (" + currentPage + "/" + totalPages + ") ✦ ") + Component header = TranslationManager.translation( + "feature.friend.list.header", + Component.text(currentPage), + Component.text(totalPages) + ) .color(NamedTextColor.GOLD); player.sendMessage(header); for (int i = startIndex; i < endIndex; i++) { UUID friendUUID = friendsList.get(i); OfflinePlayer friend = CacheOfflinePlayer.getOfflinePlayer(friendUUID); + String friendName = friend.getName() != null + ? friend.getName() + : TranslationManager.translationString("feature.friend.unknown_player"); try { Timestamp timestamp = FriendManager.getTimestamp(player.getUniqueId(), friend.getUniqueId()); @@ -214,15 +227,15 @@ public void listCommand( City city = CityManager.getPlayerCity(friend.getUniqueId()); String formattedMoney = EconomyManager.getFormattedBalance(friend.getUniqueId()); - Component cityComponent = Component.text(city != null ? city.getName() : "Aucune").color(NamedTextColor.YELLOW); + Component cityComponent = Component.text(city != null ? city.getName() : TranslationManager.translationString("feature.friend.list.city.none")).color(NamedTextColor.YELLOW); Component moneyComponent = Component.text(formattedMoney).color(NamedTextColor.YELLOW); Component statusComponent = isOnline - ? Component.text("En ligne").color(NamedTextColor.GREEN) - : Component.text("Hors ligne").color(NamedTextColor.RED); + ? TranslationManager.translation("feature.friend.status.online").color(NamedTextColor.GREEN) + : TranslationManager.translation("feature.friend.status.offline").color(NamedTextColor.RED); TextComponent friendComponent = Component.text(" " + (i+1) + ". ") .color(NamedTextColor.GRAY) - .append(Component.text(friend.getName()) + .append(Component.text(friendName) .color(isOnline ? NamedTextColor.GREEN : NamedTextColor.YELLOW) .decoration(TextDecoration.BOLD, isOnline)) .hoverEvent(HoverEvent.showText( @@ -238,19 +251,26 @@ public void listCommand( ? Component.text(" ⬤ ").color(NamedTextColor.GREEN) : Component.text(" ⬤ ").color(NamedTextColor.RED); - Component dateInfo = Component.text("Depuis le " + formattedDate) + Component dateInfo = TranslationManager.translation( + "feature.friend.list.date_since", + Component.text(formattedDate).color(NamedTextColor.GRAY) + ) .color(NamedTextColor.GRAY); - Component actions = Component.text(" [✖]") + Component actions = TranslationManager.translation("feature.friend.list.action.remove") .color(NamedTextColor.RED) - .clickEvent(ClickEvent.runCommand("/friends remove " + friend.getName())) - .hoverEvent(HoverEvent.showText(Component.text("Supprimer cet ami", NamedTextColor.RED))); + .clickEvent(ClickEvent.runCommand("/friends remove " + friendName)) + .hoverEvent(HoverEvent.showText(TranslationManager.translation("feature.friend.list.action.remove_hover").color(NamedTextColor.RED))); player.sendMessage(friendComponent.append(statusIcon).append(dateInfo).append(actions)); } catch (Exception e) { - player.sendMessage(Component.text("Erreur lors de la récupération des informations de " + friend.getName()) - .color(NamedTextColor.RED)); + player.sendMessage( + TranslationManager.translation( + "feature.friend.list.fetch_error", + Component.text(friendName).color(NamedTextColor.RED) + ).color(NamedTextColor.RED) + ); throw new RuntimeException(e); } } @@ -260,30 +280,36 @@ public void listCommand( if (currentPage > 1) { navigation = navigation.append( - Component.text(" « Page précédente ") + TranslationManager.translation("feature.friend.list.navigation.previous") .color(NamedTextColor.AQUA) .clickEvent(ClickEvent.runCommand("/friends list " + (currentPage - 1))) - .hoverEvent(HoverEvent.showText(Component.text("Page " + (currentPage - 1)))) + .hoverEvent(HoverEvent.showText(TranslationManager.translation( + "feature.friend.list.navigation.page", + Component.text(currentPage - 1) + ))) ); } else { navigation = navigation.append( - Component.text(" « Page précédente ") + TranslationManager.translation("feature.friend.list.navigation.previous") .color(NamedTextColor.DARK_GRAY) ); } - navigation = navigation.append(Component.text(" | ").color(NamedTextColor.GRAY)); + navigation = navigation.append(TranslationManager.translation("feature.friend.list.navigation.separator").color(NamedTextColor.GRAY)); if (currentPage < totalPages) { navigation = navigation.append( - Component.text("Page suivante » ") + TranslationManager.translation("feature.friend.list.navigation.next") .color(NamedTextColor.AQUA) .clickEvent(ClickEvent.runCommand("/friends list " + (currentPage + 1))) - .hoverEvent(HoverEvent.showText(Component.text("Page " + (currentPage + 1)))) + .hoverEvent(HoverEvent.showText(TranslationManager.translation( + "feature.friend.list.navigation.page", + Component.text(currentPage + 1) + ))) ); } else { navigation = navigation.append( - Component.text("Page suivante » ") + TranslationManager.translation("feature.friend.list.navigation.next") .color(NamedTextColor.DARK_GRAY) ); } @@ -313,11 +339,14 @@ public void acceptCommand( return; } FriendManager.addFriend(player.getUniqueId(), target.getUniqueId()); + String targetDisplayName = target.getName() != null + ? target.getName() + : TranslationManager.translationString("feature.friend.unknown_player"); MessagesManager.sendMessage( player, TranslationManager.translation( "feature.friend.request.accepted", - Component.text(target.getName()).color(NamedTextColor.YELLOW) + Component.text(targetDisplayName).color(NamedTextColor.YELLOW) ), Prefix.FRIEND, MessageType.INFO, @@ -358,11 +387,14 @@ public void denyCommand( return; } FriendManager.removeRequest(FriendManager.getRequest(target.getUniqueId())); + String targetDisplayName = target.getName() != null + ? target.getName() + : TranslationManager.translationString("feature.friend.unknown_player"); MessagesManager.sendMessage( player, TranslationManager.translation( "feature.friend.request.denied", - Component.text(target.getName()).color(NamedTextColor.YELLOW) + Component.text(targetDisplayName).color(NamedTextColor.YELLOW) ), Prefix.FRIEND, MessageType.INFO, diff --git a/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java b/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java index e893578bb..e14e8aed5 100644 --- a/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java +++ b/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java @@ -8,7 +8,9 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -41,7 +43,7 @@ public static void upgradeHome(Player player) { if(currentHomes < currentUpgrade) { MessagesManager.sendMessage( player, - Component.text("§cVous n'avez pas atteint la limite de homes pour acheter cette amélioration."), + TranslationManager.translation("feature.homes.upgrade.not_reached_limit"), Prefix.HOME, MessageType.ERROR, true @@ -52,7 +54,10 @@ public static void upgradeHome(Player player) { if (!ItemUtils.hasEnoughItems(player, Objects.requireNonNull(CustomItemRegistry.getByName("omc_items:aywenite")).getBest(), ayweniteAmount)) { MessagesManager.sendMessage( player, - Component.text("Vous n'avez pas assez d'§dAywenite §f(" + ayweniteAmount + " nécessaires)"), + TranslationManager.translation( + "feature.homes.upgrade.not_enough_aywenite", + Component.text(ayweniteAmount).color(NamedTextColor.LIGHT_PURPLE) + ), Prefix.OPENMC, MessageType.ERROR, true @@ -63,7 +68,11 @@ public static void upgradeHome(Player player) { if (EconomyManager.getBalance(player.getUniqueId()) < price) { MessagesManager.sendMessage( player, - Component.text("Tu n'as pas assez d'argent sur toi ! (" + price + EconomyManager.getEconomyIcon() + " nécessaires)"), + TranslationManager.translation( + "feature.homes.upgrade.not_enough_money", + Component.text(price).color(NamedTextColor.YELLOW), + Component.text(EconomyManager.getEconomyIcon()) + ), Prefix.HOME, MessageType.ERROR, true @@ -83,11 +92,16 @@ public static void upgradeHome(Player player) { }); MessagesManager.sendMessage(player, - Component.text("§aVous avez amélioré votre limite de homes à " + updatedHomesLimit + " pour " + nextUpgrade.getPrice() + "$ et à §d" + ayweniteAmount + " d'Aywenite"), Prefix.HOME, MessageType.SUCCESS, true); + TranslationManager.translation( + "feature.homes.upgrade.success", + Component.text(updatedHomesLimit).color(NamedTextColor.YELLOW), + Component.text(nextUpgrade.getPrice()).color(NamedTextColor.YELLOW), + Component.text(ayweniteAmount).color(NamedTextColor.LIGHT_PURPLE) + ), Prefix.HOME, MessageType.SUCCESS, true); } else { MessagesManager.sendMessage( player, - Component.text("§cVous avez atteint la limite maximale de homes."), + TranslationManager.translation("feature.homes.upgrade.max"), Prefix.HOME, MessageType.ERROR, true diff --git a/src/main/java/fr/openmc/core/features/homes/icons/CachedIconItem.java b/src/main/java/fr/openmc/core/features/homes/icons/CachedIconItem.java index 0618d4828..765ec98ae 100644 --- a/src/main/java/fr/openmc/core/features/homes/icons/CachedIconItem.java +++ b/src/main/java/fr/openmc/core/features/homes/icons/CachedIconItem.java @@ -8,10 +8,12 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import io.papermc.paper.datacomponent.DataComponentTypes; import io.papermc.paper.datacomponent.item.TooltipDisplay; import lombok.Getter; import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; @@ -34,9 +36,12 @@ public class CachedIconItem { */ public CachedIconItem(HomeIcon homeIcon, ItemStack baseItemStack) { this.homeIcon = homeIcon; - this.displayName = Component.text("§a" + homeIcon.getVanillaName()); - this.normalLore = Component.text("§7■ §aClique §2gauche §apour changer l'icône"); - this.selectedLore = Component.text("§8[§a✔§8] §7Icône actuelle"); + this.displayName = TranslationManager.translation( + "feature.homes.icon.name", + Component.text(homeIcon.getVanillaName()).color(NamedTextColor.GREEN) + ); + this.normalLore = TranslationManager.translation("feature.homes.icon.normal_lore"); + this.selectedLore = TranslationManager.translation("feature.homes.icon.selected_lore"); this.normalItemWithBuilder = createNormalItemWithBuilder(baseItemStack); this.selectedItemWithBuilder = createSelectedItemWithBuilder(baseItemStack); @@ -96,7 +101,11 @@ public ItemStack createItemForMenu(HomeChangeIconMenu menu, Home home, Player pl Bukkit.getScheduler().runTask(OMCPlugin.getInstance(), () -> { home.setIcon(homeIcon); MessagesManager.sendMessage(player, - Component.text("§aL'icône de votre home §2" + home.getName() + " §aa été changée en §2" + homeIcon.getVanillaName() + "§a !"), + TranslationManager.translation( + "feature.homes.icon.changed", + Component.text(home.getName()).color(NamedTextColor.DARK_GREEN), + Component.text(homeIcon.getVanillaName()).color(NamedTextColor.DARK_GREEN) + ), Prefix.HOME, MessageType.SUCCESS, true); HomeIconCacheManager.clearRenderedCache(); diff --git a/src/main/java/fr/openmc/core/features/homes/menu/HomeChangeIconMenu.java b/src/main/java/fr/openmc/core/features/homes/menu/HomeChangeIconMenu.java index 4f4e6b55a..18b227a47 100644 --- a/src/main/java/fr/openmc/core/features/homes/menu/HomeChangeIconMenu.java +++ b/src/main/java/fr/openmc/core/features/homes/menu/HomeChangeIconMenu.java @@ -15,6 +15,7 @@ import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.Bukkit; @@ -63,7 +64,7 @@ public int getSizeOfItems() { @Override public @NotNull Component getName() { - return Component.text("Menu des Homes - Changer l'icône"); + return TranslationManager.translation("feature.homes.icon.menu.title"); } @Override @@ -99,7 +100,7 @@ public Map getButtons() { Map map = new HashMap<>(); map.put(45, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_back_orange")).getBest(), - itemMeta -> itemMeta.displayName(Component.text("§7Retour")), true)); + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); map.put(48, new ItemBuilder(this, MailboxMenuManager.previousPageBtn()).setPreviousPageButton()); map.put(49, MailboxMenuManager.cancelBtn(this).setCloseButton()); @@ -107,18 +108,18 @@ public Map getButtons() { // Search button map.put(51, new ItemBuilder(this, Material.OAK_SIGN, meta -> { - meta.displayName(Component.text("§eRecherche")); + meta.displayName(TranslationManager.translation("feature.homes.icon.search.name")); List lore = new ArrayList<>(); - if (! searchQuery.isEmpty()) lore.add(Component.text("§7Recherche actuelle : §f" + searchQuery)); + if (! searchQuery.isEmpty()) lore.add(TranslationManager.translation("feature.homes.icon.search.current", Component.text(searchQuery))); lore.add(Component.empty()); - lore.add(Component.text("§7■ §aClique §2gauche §apour rechercher")); - lore.add(Component.text("§7■ §cClique §4droit §cpour réinitialiser")); + lore.add(TranslationManager.translation("feature.homes.icon.search.left")); + lore.add(TranslationManager.translation("feature.homes.icon.search.right")); meta.lore(lore); }).setOnClick(event -> { if (event.getClick().isLeftClick()) { getOwner().closeInventory(); - DialogInput.send(getOwner(), Component.text("Entrez votre recherche pour un item"), MAX_LENGTH, input -> { + DialogInput.send(getOwner(), TranslationManager.translation("feature.homes.icon.search.prompt"), MAX_LENGTH, input -> { if (input == null) return; searchQuery = input; @@ -139,20 +140,20 @@ public Map getButtons() { // Category selector map.put(53, new ItemBuilder(this, Material.COMPASS, meta -> { - meta.displayName(Component.text("§aCatégorie")); + meta.displayName(TranslationManager.translation("feature.homes.icon.category.name")); List lore = new ArrayList<>(); - lore.add(Component.text("§7Sélection de catégorie")); + lore.add(TranslationManager.translation("feature.homes.icon.category.selection")); lore.add(Component.empty()); - lore.add(Component.text("§7Catégories disponibles :")); + lore.add(TranslationManager.translation("feature.homes.icon.category.available")); - lore.add(formatCategoryLine(NamedTextColor.YELLOW, "§eToutes", currentCategory == HomeIcon.IconCategory.ALL)); - lore.add(formatCategoryLine(NamedTextColor.GREEN, "§aVanilla", currentCategory == HomeIcon.IconCategory.VANILLA)); - lore.add(formatCategoryLine(NamedTextColor.LIGHT_PURPLE, "§dPersonnalisés", currentCategory == HomeIcon.IconCategory.CUSTOM)); + lore.add(formatCategoryLine(NamedTextColor.YELLOW, TranslationManager.translation("feature.homes.icon.category.all"), currentCategory == HomeIcon.IconCategory.ALL)); + lore.add(formatCategoryLine(NamedTextColor.GREEN, TranslationManager.translation("feature.homes.icon.category.vanilla"), currentCategory == HomeIcon.IconCategory.VANILLA)); + lore.add(formatCategoryLine(NamedTextColor.LIGHT_PURPLE, TranslationManager.translation("feature.homes.icon.category.custom"), currentCategory == HomeIcon.IconCategory.CUSTOM)); lore.add(Component.empty()); - lore.add(Component.text("§7■ §aClique §2gauche §apour aller à la catégorie suivante")); - lore.add(Component.text("§7■ §cClique §4droit §cpour aller à la catégorie précédente")); + lore.add(TranslationManager.translation("feature.homes.icon.category.left")); + lore.add(TranslationManager.translation("feature.homes.icon.category.right")); meta.lore(lore); }).setOnClick(event -> { @@ -161,7 +162,7 @@ public Map getButtons() { long last = CATEGORY_COOLDOWNS.getOrDefault(getOwner().getUniqueId(), 0L); if (now - last < CATEGORY_COOLDOWN_TIME) { MessagesManager.sendMessage(getOwner(), - Component.text("§cMerci de ne pas spammer le changement de catégorie."), + TranslationManager.translation("feature.homes.icon.category.spam"), Prefix.OPENMC, MessageType.ERROR, true); return; } @@ -182,9 +183,9 @@ public Map getButtons() { return map; } - private Component formatCategoryLine(NamedTextColor color, String name, boolean selected) { - return Component.text((selected ? "§r• " : "§r "), color) - .append(Component.text(name, NamedTextColor.DARK_GRAY)); + private Component formatCategoryLine(NamedTextColor color, Component name, boolean selected) { + return Component.text(selected ? "• " : " ", color) + .append(name.color(NamedTextColor.DARK_GRAY)); } @Override diff --git a/src/main/java/fr/openmc/core/features/homes/menu/HomeConfigMenu.java b/src/main/java/fr/openmc/core/features/homes/menu/HomeConfigMenu.java index 0f0787eaf..0078f7eae 100644 --- a/src/main/java/fr/openmc/core/features/homes/menu/HomeConfigMenu.java +++ b/src/main/java/fr/openmc/core/features/homes/menu/HomeConfigMenu.java @@ -11,22 +11,22 @@ import fr.openmc.core.features.homes.utils.HomeUtil; import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.registry.items.CustomItemRegistry; -import fr.openmc.core.utils.text.fonts.CustomFonts; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; +import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.Style; -import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; import static fr.openmc.core.features.homes.utils.HomeUtil.MAX_LENGTH_HOME_NAME; @@ -41,7 +41,7 @@ public HomeConfigMenu(Player owner, Home home) { @Override public @NotNull Component getName() { - return Component.text("Menu des Homes - Configuration"); + return TranslationManager.translation("feature.homes.config.title"); } @Override @@ -62,47 +62,34 @@ public String getTexture() { content.put(4, new ItemBuilder(this, home.getIconItem()).hide(ItemUtils.getDataComponentType())); content.put(20, new ItemBuilder(this, home.getIcon().getItemStack(), itemMeta -> { - itemMeta.displayName(Component.text("§aChanger l'icône")); - itemMeta.lore(List.of(Component.text("§7■ §aClique §2gauche §apour changer l'icône de votre home"))); + itemMeta.displayName(TranslationManager.translation("feature.homes.config.change_icon.name")); + itemMeta.lore(TranslationManager.translationLore("feature.homes.config.change_icon.lore")); }).hide(ItemUtils.getDataComponentType()).setOnClick(inventoryClickEvent -> new HomeChangeIconMenu(player, home).open())); content.put(22, new ItemBuilder(this, Material.NAME_TAG, itemMeta -> { - itemMeta.displayName(Component.text("Changer le nom", NamedTextColor.GREEN).decorationIfAbsent(TextDecoration.ITALIC, TextDecoration.State.FALSE)); - - TextComponent lore = Component.text() - .append(Component.text("■ ", NamedTextColor.GRAY)) - .append(Component.text("Clique ", NamedTextColor.GREEN)) - .append(Component.text("gauche ", NamedTextColor.DARK_GREEN)) - .append(Component.text("pour changer le nom de votre home", NamedTextColor.GREEN)) - .style(Style.style(TextDecoration.ITALIC.withState(false))) - .build(); - itemMeta.lore(Collections.singletonList(lore)); - }).setOnClick(e -> DialogInput.send(getOwner(), Component.text("Entrez votre nouveau nom de home"), MAX_LENGTH_HOME_NAME, input -> { + itemMeta.displayName(TranslationManager.translation("feature.homes.config.rename.name")); + itemMeta.lore(TranslationManager.translationLore("feature.homes.config.rename.lore")); + }).setOnClick(e -> DialogInput.send(getOwner(), TranslationManager.translation("feature.homes.config.rename.prompt"), MAX_LENGTH_HOME_NAME, input -> { if (input == null) return; if (!HomeUtil.isValidHomeName(input)) return; if (HomesManager.getHomesNames(getOwner().getUniqueId()).contains(input)) { - TextComponent message = Component.text("Tu as déjà un home avec ce nom.", NamedTextColor.RED); - MessagesManager.sendMessage(player, message, Prefix.HOME, MessageType.ERROR, true); + MessagesManager.sendMessage(player, TranslationManager.translation("feature.homes.command.rename.already_has"), Prefix.HOME, MessageType.ERROR, true); return; } - TextComponent message = Component.text() - .append(Component.text("Ton home ", NamedTextColor.GREEN)) - .append(Component.text(home.getName(), NamedTextColor.YELLOW)) - .append(Component.text(" a été renommé en ", NamedTextColor.GREEN)) - .append(Component.text(input, NamedTextColor.YELLOW)) - .append(Component.text(".", NamedTextColor.GREEN)) - .build(); - - MessagesManager.sendMessage(player, message, Prefix.HOME, MessageType.SUCCESS, true); + MessagesManager.sendMessage(player, TranslationManager.translation( + "feature.homes.config.rename.success", + Component.text(home.getName()).color(NamedTextColor.YELLOW), + Component.text(input).color(NamedTextColor.YELLOW) + ), Prefix.HOME, MessageType.SUCCESS, true); HomesManager.renameHome(home, input); }))); content.put(24, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_bin_red")).getBest(), itemMeta -> { - itemMeta.displayName(Component.text(CustomFonts.getBest("omc_homes:bin", "§c🗑") + " §cSupprimer le home")); - itemMeta.lore(List.of(Component.text("§7■ §cClique §4gauche §cpour supprimer votre home"))); + itemMeta.displayName(TranslationManager.translation("feature.homes.config.delete.name")); + itemMeta.lore(TranslationManager.translationLore("feature.homes.config.delete.lore")); }).setOnClick(inventoryClickEvent -> new HomeDeleteConfirmMenu(getOwner(), home).open())); content.put(36, new ItemBuilder(this, MailboxMenuManager.previousPageBtn(), true)); diff --git a/src/main/java/fr/openmc/core/features/homes/world/DisabledWorldHome.java b/src/main/java/fr/openmc/core/features/homes/world/DisabledWorldHome.java index ca3b80dfa..f39f36d02 100644 --- a/src/main/java/fr/openmc/core/features/homes/world/DisabledWorldHome.java +++ b/src/main/java/fr/openmc/core/features/homes/world/DisabledWorldHome.java @@ -2,6 +2,9 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.utils.text.messages.TranslationManager; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import org.bukkit.World; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; @@ -92,13 +95,17 @@ public static List getDisabledWorlds() { return new ArrayList<>(disabledWorlds.keySet()); } - public static String getDisabledWorldInfo(String world) { + public static Component getDisabledWorldInfo(String world) { WorldDisableInfo info = disabledWorlds.get(world); if(info != null) { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); - return "§7Ajouté par §e" + info.addedBy() + " §7le §e" + sdf.format(info.addedOn()); + return TranslationManager.translation( + "feature.homes.world.info", + Component.text(info.addedBy()).color(NamedTextColor.YELLOW), + Component.text(sdf.format(info.addedOn())).color(NamedTextColor.YELLOW) + ); } - return null; + return Component.empty(); } } diff --git a/src/main/java/fr/openmc/core/utils/text/messages/MessagesManager.java b/src/main/java/fr/openmc/core/utils/text/messages/MessagesManager.java index 5f90aa56d..2d3ec4c88 100644 --- a/src/main/java/fr/openmc/core/utils/text/messages/MessagesManager.java +++ b/src/main/java/fr/openmc/core/utils/text/messages/MessagesManager.java @@ -62,8 +62,8 @@ public static void sendMessage(Player sender, Component message, Prefix prefix, } public static void sendMessage(OfflinePlayer sender, Component message, Prefix prefix, MessageType type, boolean sound) { - if (sender.isOnline() && sender instanceof Player player) { - sendMessage(player, message, prefix, type, 1.0F, sound); + if (sender.isOnline()) { + sendMessage(Bukkit.getPlayer(sender.getUniqueId()), message, prefix, type, 1.0F, sound); } } diff --git a/src/main/resources/translations/default/economy.properties b/src/main/resources/translations/default/economy.properties index d90d42332..7580f6dca 100644 --- a/src/main/resources/translations/default/economy.properties +++ b/src/main/resources/translations/default/economy.properties @@ -36,6 +36,11 @@ feature.economy.bank.deposit.half.lore=La moitié de votre argent sera pla feature.economy.bank.deposit.input.name=Déposer un montant précis feature.economy.bank.deposit.input.lore=Votre argent sera placé dans votre banque\
CLIQUEZ ICI POUR INDIQUER LE MONTANT +feature.economy.bank.deposit.limit_reached=La limite de votre banque est de %1$s +feature.economy.bank.deposit.partial=Seulement %1$s ont été déposés (plafond atteint). +feature.economy.bank.deposit.success=Vous avez déposé %1$s. +feature.economy.bank.deposit.input.prompt=Entrez le montant que vous voulez déposer +feature.economy.bank.withdraw.input.prompt=Entrez le montant que vous voulez retirer feature.economy.bank.withdraw.menu.title=Menu des Banques - Retirer feature.economy.bank.withdraw.all.name=Prendre l'argent de votre banque feature.economy.bank.withdraw.all.lore=Tout l'argent placé dans votre banque vous sera donné\ @@ -54,3 +59,25 @@ feature.economy.bank.withdraw.input.lore=L'argent demandé sera pris dans
CLIQUEZ ICI POUR INDIQUER LE MONTANT feature.economy.bank.back.lore=Vous allez retourner au menu de votre banque\
CLIQUEZ ICI POUR CONFIRMER +feature.economy.bank.withdraw.not_enough=Tu n'as pas assez d'argent en banque +feature.economy.bank.withdraw.transferred=%1$s%2$s ont été transférés à votre compte +feature.economy.bank.interest.received=Vous venez de percevoir %1$s d'intérêt, soit %2$s%3$s +feature.economy.bank.command.not_unlocked=Vous n'avez pas débloqué cette feature ! Veuillez améliorer votre ville au niveau %1$s ! +feature.economy.bank.command.balance=Il y a %1$s%2$s dans ta banque +feature.economy.bank.interest.apply.start=Distribution des intérêts en cours... +feature.economy.bank.interest.apply.success=Distribution des intérêts réussie. +feature.economy.money.self=Vous avez %1$s +feature.economy.money.others=%1$s a %2$s +feature.economy.money.set.success=Vous avez défini l'argent de %1$s à %2$s +feature.economy.money.set.target=Votre argent a été défini à %1$s +feature.economy.money.add.success=Vous avez ajouté %1$s à %2$s +feature.economy.money.add.target=Vous avez reçu %1$s +feature.economy.money.remove.success=Vous avez retiré %1$s à %2$s +feature.economy.money.remove.target=Vous avez perdu %1$s +feature.economy.money.remove.not_enough=Le joueur n'a pas assez d'argent +feature.economy.money.reset.success=Vous avez réinitialisé l'argent de %1$s à %2$s +feature.economy.money.reset.target=Votre argent a été réinitialisé à %1$s +feature.economy.pay.self=Vous ne pouvez pas vous payer vous-même +feature.economy.pay.success=Vous avez payé %1$s de %2$s +feature.economy.pay.received=Vous avez reçu %1$s de %2$s +feature.economy.pay.not_enough=Vous n'avez pas assez d'argent diff --git a/src/main/resources/translations/default/events.properties b/src/main/resources/translations/default/events.properties index 9c438dcc8..0d24f0a08 100644 --- a/src/main/resources/translations/default/events.properties +++ b/src/main/resources/translations/default/events.properties @@ -15,4 +15,144 @@ feature.events.contest.vote.confirm.cancel.lore=Vous allez annuler votre c
ATTENTION ! Vous ne pourrez changer de choix ! feature.events.contest.vote.joined=Vous avez bien rejoint : %1$s feature.events.contest.vote.info.name=Plus d'info ! +feature.events.contest.team.label=La Team %1$s +feature.events.contest.trade.menu.title=Menu des Contests - Échanges +feature.events.contest.trade.main.name=Les échanges +feature.events.contest.trade.main.lore=Vendez un maximum de ressources\ +
Contre des coquillages de contest\ +
Pour faire gagner la %1$s +feature.events.contest.trade.info.lore=Apprenez en plus sur les contest !\ +
Le déroulement, les résultats, ...\ +
CLIQUEZ ICI POUR EN VOIR PLUS! +feature.events.contest.trade.offer.lore=Vendez %1$s pour %2$s coquillage(s)\ +
CLIQUE-GAUCHE POUR VENDRE UNE FOIS\ +
SHIFT-CLIQUE-GAUCHE POUR VENDRE TOUTE CETTE RESSOURCE +feature.events.contest.trade.unavailable=Fonctionnalité bloquée. Contactez l'administration. +feature.events.contest.trade.success=Vous avez échangé %1$s %2$s contre %3$s coquillage(s) de contest +feature.events.contest.trade.not_enough=Vous n'avez pas assez de cette ressource pour l'échanger ! +feature.events.contest.phase.vote.name=Les votes +feature.events.contest.phase.vote.lore=Tout les vendredi, le contest commence\ +
Et les votes s'ouvrent, et il faut choisir\ +
Entre 2 camps, une ambience se crée dans le spawn... +feature.events.contest.phase.trade.name=L'affrontement +feature.events.contest.phase.trade.lore=La nuit tombe sur le spawn pendant 2 jours\ +
Que la fête commence !\ +
Des trades sont disponible\ +
Donnant des coquillages de contest ! +feature.events.contest.phase.end.name=Les résultats +feature.events.contest.phase.end.lore=Le levé de soleil sur le spawn !\ +
Les résultats tombent, et un camp\ +
sera gagnant. Et des récompenses seront attribuées\ +
à chacun. +feature.events.contest.command.no_event=Il n'y a aucun Contest ! Revenez dans %1$s jour(s). +feature.events.contest.command.ended_phase=Le Contest est dans sa phase terminée, veuillez contactez le staff. +feature.events.contest.command.setcontest.not_active=Vous ne pouvez pas définir un contest lorsqu'il n'est pas actif +feature.events.contest.command.setcontest.started=Vous ne pouvez pas définir un contest lorsqu'il a commencé +feature.events.contest.command.setcontest.saved=Le Contest : %1$s VS %2$s a bien été sauvegardé\ +Merci d'attendre que les données en cache s'actualise. +feature.events.contest.command.setcontest.invalid_color=/contest setcontest <camp1> <color1> <camp2> <color2> et color doit comporter une couleur valide +feature.events.contest.command.addpoints.not_started=Vous ne pouvez pas donner des points lorsque le contest n'a pas commencé +feature.events.contest.command.addpoints.not_registered=Vous ne pouvez pas donner des points à ce joueur car il ne s'est pas inscrit +feature.events.contest.command.addpoints.invalid=Vous ne pouvez pas donner des points négatifs ou égal à 0 +feature.events.contest.command.addpoints.success=Vous avez ajouté %1$s point(s) à %2$s +feature.events.calendar.title=Calendrier Evenementiel +feature.events.contest.more_info.title=Menu des Contests - Plus d'info +feature.events.contest.more_info.vote.name=Les votes - Vendredi +feature.events.contest.more_info.trade.name=L'affrontement - Samedi-Dimanche +feature.events.contest.more_info.end.name=Les résultats - Lundi +feature.events.contest.broadcast.phase1=━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\ +
CONTEST ! Les votes sont ouverts !\ +
*on se retrouve au spawn pour pouvoir voter ou /contest...*\ +
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +feature.events.contest.broadcast.phase2=━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\ +
CONTEST ! Les contributions ont commencé !\ +
Échangez des ressources contre des Coquillages de Contest. Récoltez en un max et déposez les\ +
via la borne des contest ou /contest\ +
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +feature.events.contest.broadcast.phase3=━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\ +
CONTEST ! Time over !\ +
Fin du contest, retrouvez vos récompenses et le bilan de ce Contest\ +
sous forme de livre\ +
*/contest pour voir quand le prochain contest arrive*\ +
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +feature.events.contest.contribution.title=Menu des Contests - Contributions +feature.events.contest.contribution.lore.contribute=Donner vos coquillages de contest\ +
Pour faire gagner ta %1$s\ +
Cliquez pour verser tout vos coquillages +feature.events.contest.contribution.lore.trade=Faites des échanges contre des coquillages de contest\ +
Utile pour faire gagner ta %1$s\ +
Cliquez pour acceder au menu des échanges +feature.events.contest.contribution.lore.rank=%1$s\ +
Progression : %2$s/%3$s\ +
AUGMENTER DE TITRE POUR AVOIR DES RECOMPENSES MEILLEURES +feature.events.contest.contribution.title.name=Votre titre +feature.events.contest.contribution.button.name=Contribuer pour la %1$s +feature.events.contest.contribution.unavailable=Fonctionnalité bloquée. Veuillez contactez l'administration +feature.events.contest.contribution.success=Vous avez déposé %1$s coquillage(s) de contest pour votre team ! +feature.events.contest.contribution.no_shells=Vous n'avez pas de coquillage de contest +feature.events.contest.book.title=Les Résultats du contest +feature.events.contest.book.author=Les contests +feature.events.contest.book.lore=%1$s VS %2$s\ +
Ouvrez ce livre pour en savoir plus! +feature.events.contest.book.page.global=Statistiques globales\ +
Gagnant : %1$s\ +
Taux de vote : %2$s\ +
Taux de points : %3$s\ +
\ +
Perdant : %4$s\ +
Taux de vote : %5$s\ +
Taux de points : %6$s\ +
Multiplicateur d'infériorité : x%7$s\ +
Prochaine page : classement des 10 meilleurs contributeurs +feature.events.contest.book.page.ranking.title=Le classement du contest (jusqu'au 10ème) +feature.events.contest.mail.received=Vous avez reçu la lettre du contest +feature.events.contest.mail.click=\ +Cliquez ici +feature.events.contest.mail.hover=Ouvrir la mailbox +feature.events.contest.mail.open_mailbox= pour ouvrir la mailbox +feature.events.contest.book.page.personal=Statistiques personnelles\ +
Votre camp : %1$s\ +
Votre titre sur le contest : %2$s\ +
Votre rang sur le contest : #%3$s\ +
Points déposés : %4$s +feature.events.contest.book.page.rewards.title=Récompenses +feature.events.contest.book.page.rewards.money.prefix=\ ++ +feature.events.contest.book.page.rewards.money.suffix=$ +feature.events.contest.book.page.rewards.aywenite.prefix=\ ++ +feature.events.contest.book.page.rewards.aywenite.suffix= d'Aywenite +feature.events.contest.book.page.rewards.boost.prefix=\ +Boost de +feature.events.calendar.unknown_phase=Inconnu +feature.events.calendar.weekend_event_name=Evenement du Weekend +feature.events.calendar.phases=Phases : +feature.events.calendar.phase.line=- %1$s le %2$s à %3$s +feature.events.halloween.menu.deposit.title=Déposer vos citrouilles +feature.events.halloween.menu.deposit.button.name=<#ff6b25>Déposer vos citrouilles +feature.events.halloween.menu.deposit.button.lore=Cliquez ici pour déposer vos citrouilles et\ +
obtenir des récompenses ! +feature.events.halloween.menu.deposit.no_pumpkin=Vous n'avez aucune citrouille à déposer ! +feature.events.halloween.menu.deposit.success=Vous avez déposé %1$s citrouilles ! +feature.events.halloween.reward.rank1.name=<#ff6b25>La Tarte de la Victoire (2025) +feature.events.halloween.reward.rank1.lore=Récompense du joueur ayant récolté le plus de citrouilles\ +
lors de l'événement Halloween 2025.\ +
\ +
Obtenu par %1$s +feature.events.halloween.reward.rank2.name=<#ff6b25>La Tarte de l'Excellence (2025) +feature.events.halloween.reward.rank2.lore=Récompense du joueur ayant récolté la deuxième plus\ +
grande quantité de citrouilles lors de l'événement\ +
Halloween 2025.\ +
\ +
Obtenu par %1$s +feature.events.halloween.reward.rank3.name=<#ff6b25>La Tarte du Mérite (2025) +feature.events.halloween.reward.rank3.lore=Récompense du joueur ayant récolté la troisième plus\ +
grande quantité de citrouilles lors de l'événement\ +
Halloween 2025.\ +
\ +
Obtenu par %1$s +feature.events.halloween.unknown_player=Inconnu +feature.events.halloween.event.end.broadcast=<#ff6b25>L'événement Halloween 2025 est maintenant terminé !\ +
<#ff6b25>Vous pouvez retrouver vos récompenses dans votre<#ff6b25> boîte aux lettres<#ff6b25>.\ +
<#ffd580>Merci à tous pour votre participation ! diff --git a/src/main/resources/translations/default/friend.properties b/src/main/resources/translations/default/friend.properties index 47b4c9d7c..2017b7d51 100644 --- a/src/main/resources/translations/default/friend.properties +++ b/src/main/resources/translations/default/friend.properties @@ -24,4 +24,23 @@ feature.friend.request.accept_error=Une erreur est survenue lors de l'accep feature.friend.request.denied=Vous avez refusé la demande d'ami de %1$s. feature.friend.request.denied_by=Votre demande d'ami a été refusée par %1$s. feature.friend.request.deny_error=Une erreur est survenue lors du refus de la demande d'ami. +feature.friend.button.accept= [Accepter] +feature.friend.button.accept_hover=Cliquez pour accepter la demande d'ami +feature.friend.button.ignore= [Ignorer] +feature.friend.button.ignore_hover=Cliquez pour ignorer la demande d'ami +feature.friend.button.deny= [Refuser] +feature.friend.button.deny_hover=Cliquez pour refuser la demande d'ami +feature.friend.list.header= ✦ Liste d'amis (%1$s/%2$s) ✦ +feature.friend.list.city.none=Aucune +feature.friend.status.online=En ligne +feature.friend.status.offline=Hors ligne +feature.friend.list.date_since=Depuis le %1$s +feature.friend.list.action.remove= [✖] +feature.friend.list.action.remove_hover=Supprimer cet ami +feature.friend.list.fetch_error=Erreur lors de la récupération des informations de %1$s +feature.friend.list.navigation.previous= « Page précédente +feature.friend.list.navigation.next=Page suivante » +feature.friend.list.navigation.separator= | +feature.friend.list.navigation.page=Page %1$s +feature.friend.unknown_player=Inconnu diff --git a/src/main/resources/translations/default/homes.properties b/src/main/resources/translations/default/homes.properties index 54d8f7e2d..cff0a7d56 100644 --- a/src/main/resources/translations/default/homes.properties +++ b/src/main/resources/translations/default/homes.properties @@ -61,4 +61,37 @@ feature.homes.world.list.empty=Aucun monde n'est dans la liste des mondes o feature.homes.world.list.title=Liste des mondes où les homes sont désactivés : feature.homes.world.list.item= - %1$s (%2$s) feature.homes.world.info=Ajouté par %1$s le %2$s +feature.homes.upgrade.not_reached_limit=Vous n'avez pas atteint la limite de homes pour acheter cette amélioration. +feature.homes.upgrade.not_enough_aywenite=Vous n'avez pas assez d'Aywenite (%1$s nécessaires) +feature.homes.upgrade.not_enough_money=Tu n'as pas assez d'argent sur toi ! (%1$s%2$s nécessaires) +feature.homes.upgrade.success=Vous avez amélioré votre limite de homes à %1$s pour %2$s$ et à %3$s d'Aywenite +feature.homes.upgrade.max=Vous avez atteint la limite maximale de homes. +feature.homes.icon.name=%1$s +feature.homes.icon.normal_lore=Clique gauche pour changer l'icône +feature.homes.icon.selected_lore=[] Icône actuelle +feature.homes.icon.changed=L'icône de votre home %1$s a été changée en %2$s ! +feature.homes.icon.menu.title=Menu des Homes - Changer l'icône +feature.homes.icon.search.name=Recherche +feature.homes.icon.search.current=Recherche actuelle : %1$s +feature.homes.icon.search.left=Clique gauche pour rechercher +feature.homes.icon.search.right=Clique droit pour réinitialiser +feature.homes.icon.search.prompt=Entrez votre recherche pour un item +feature.homes.icon.category.name=Catégorie +feature.homes.icon.category.selection=Sélection de catégorie +feature.homes.icon.category.available=Catégories disponibles : +feature.homes.icon.category.all=Toutes +feature.homes.icon.category.vanilla=Vanilla +feature.homes.icon.category.custom=Personnalisés +feature.homes.icon.category.left=Clique gauche pour aller à la catégorie suivante +feature.homes.icon.category.right=Clique droit pour aller à la catégorie précédente +feature.homes.icon.category.spam=Merci de ne pas spammer le changement de catégorie. +feature.homes.config.title=Menu des Homes - Configuration +feature.homes.config.change_icon.name=Changer l'icône +feature.homes.config.change_icon.lore=Clique gauche pour changer l'icône de votre home +feature.homes.config.rename.name=Changer le nom +feature.homes.config.rename.lore=Clique gauche pour changer le nom de votre home +feature.homes.config.rename.prompt=Entrez votre nouveau nom de home +feature.homes.config.rename.success=Ton home %1$s a été renommé en %2$s. +feature.homes.config.delete.name=Supprimer le home +feature.homes.config.delete.lore=Clique gauche pour supprimer votre home