Skip to content

Commit e35ef0e

Browse files
authored
Implementation des translations pour les features displays, cube, credits (#1283)
* add translation for credits, cube, display (dream ignored because i wait world gen rewrite before aha) - IA generated here prompt in pr * import
1 parent d4ffaa9 commit e35ef0e

14 files changed

Lines changed: 262 additions & 109 deletions

File tree

src/main/java/fr/openmc/core/features/credits/Credits.java

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -33,60 +33,60 @@
3333

3434
@Getter
3535
public enum Credits {
36-
ADMINSHOP(Material.GOLD_INGOT, "Adminshop", AdminShopManager.class),
37-
ANIMATIONS(Material.AMETHYST_BLOCK, "Les Animations", AnimationsManager.class),
38-
CUBE(Material.LAPIS_BLOCK, "Le Cube", Set.of("iambibi_")),
39-
CITY(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_chateau").getBest(), "Les Villes", CityManager.class),
40-
DREAM(Material.SCULK, "La Dimension des Rêves", DreamManager.class),
41-
DREAM_MILESTONE(CustomItemRegistry.getByName("omc_dream:singularity").getBest(), "Le Milestone des Rêves", Set.of("gab400", "Rylo42 (histoire et dialogues)")),
42-
MASCOTS(Material.ZOMBIE_SPAWN_EGG, "Les Mascottes", MascotsManager.class),
43-
MAYOR(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_bank").getBest(), "Les Maires", Set.of("iambibi_"), Set.of("Gexary")),
44-
CITY_MILESTONE(Material.NETHER_STAR, "Le Milestone des Villes", Set.of("iambibi_")),
45-
WAR(Material.IRON_SWORD, "Les Guerres", Set.of("iambibi_")),
46-
NOTATION(Material.PAPER, "Les Notations", Set.of("iambibi_")),
47-
RANK(Material.VAULT, "Les Grades", Set.of("gab400")),
48-
CONTEST(CustomItemRegistry.getByName("omc_contest:contest_shell").getBest(), "Les Contests", ContestManager.class),
49-
WEEKLY_EVENTS(Material.FIREWORK_ROCKET, "Les Evenements Hebdomadaires", WeeklyEventsManager.class),
50-
HOLOGRAMS(Material.OAK_HANGING_SIGN, "Les Hologrammes", HologramLoader.class),
51-
ECONOMY(Material.GOLD_BLOCK, "L'Economie", EconomyManager.class),
52-
FRIENDS(Material.EMERALD_BLOCK, "Le systeme d'ami", FriendManager.class),
53-
HOMES(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_maison").getBest(), "Le Systeme d'Home", HomesManager.class),
54-
LEADERBOARD(Material.ANCIENT_DEBRIS, "Les Classements", LeaderboardManager.class),
55-
MAILBOX(Material.PAPER, "La Boite aux Lettres", MailboxManager.class),
56-
MAINMENU(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_information").getBest(), "Le Menu Principal", MainMenu.class),
57-
MILESTONES(Material.SEA_LANTERN, "Les Milestones", MilestonesManager.class),
58-
PRIVATEMESSAGE(Material.ZOMBIE_HEAD, "Les messages privés", PrivateMessageManager.class),
59-
QUEST(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_chateau").getBest(), "Les Quêtes", QuestsManager.class),
60-
SETTINGS(Material.REDSTONE_TORCH, "Les Paramêtres", PlayerSettingsManager.class),
61-
TICKETS(Material.BOOK, "Les Tickets V1", TicketManager.class),
62-
TPA(Material.ENDER_PEARL, "Le Tpa", TPAManager.class),
63-
RTP(Material.ENDER_PEARL, "Le RTP", Set.of("miseur")),
64-
VERSIONNING(Material.COMMAND_BLOCK_MINECART, "Le Versionning", Set.of("Piquel Chips")),
65-
CUSTOMITEMS(Material.COMMAND_BLOCK, "Les Custom Items", Set.of("Axeno")),
66-
CHRONOMETER(Material.COMMAND_BLOCK, "Chronomêtre", Set.of("Nocolm")),
67-
COOLDOWN(Material.COMMAND_BLOCK, "Cooldown", Set.of("Gyro", "iambibi_")),
68-
MENU_LIB(Material.COMMAND_BLOCK, "Systeme de Menu", Set.of("Xernas78", "PuppyTransGirl", "iambibi_", "gab400")),
69-
PACKET_MENU_LIB(Material.COMMAND_BLOCK, "Systeme de Menu en Packet", Set.of("miseur")),
70-
ERRORHANDLER(Material.COMMAND_BLOCK, "Le systeme de gestion d'erreur", Set.of("iambibi_")),
71-
UNITTEST(Material.COMMAND_BLOCK, "Les tests unitaires", Set.of("Nirbose", "Gyro")),
72-
ORM(Material.COMMAND_BLOCK, "Systeme de base de données", Set.of("Piquel Chips")),
36+
ADMINSHOP(Material.GOLD_INGOT, "feature.credits.feature.adminshop", AdminShopManager.class),
37+
ANIMATIONS(Material.AMETHYST_BLOCK, "feature.credits.feature.animations", AnimationsManager.class),
38+
CUBE(Material.LAPIS_BLOCK, "feature.credits.feature.cube", Set.of("iambibi_")),
39+
CITY(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_chateau").getBest(), "feature.credits.feature.city", CityManager.class),
40+
DREAM(Material.SCULK, "feature.credits.feature.dream", DreamManager.class),
41+
DREAM_MILESTONE(CustomItemRegistry.getByName("omc_dream:singularity").getBest(), "feature.credits.feature.dream_milestone", Set.of("gab400", "Rylo42 (histoire et dialogues)")),
42+
MASCOTS(Material.ZOMBIE_SPAWN_EGG, "feature.credits.feature.mascots", MascotsManager.class),
43+
MAYOR(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_bank").getBest(), "feature.credits.feature.mayor", Set.of("iambibi_"), Set.of("Gexary")),
44+
CITY_MILESTONE(Material.NETHER_STAR, "feature.credits.feature.city_milestone", Set.of("iambibi_")),
45+
WAR(Material.IRON_SWORD, "feature.credits.feature.war", Set.of("iambibi_")),
46+
NOTATION(Material.PAPER, "feature.credits.feature.notation", Set.of("iambibi_")),
47+
RANK(Material.VAULT, "feature.credits.feature.rank", Set.of("gab400")),
48+
CONTEST(CustomItemRegistry.getByName("omc_contest:contest_shell").getBest(), "feature.credits.feature.contest", ContestManager.class),
49+
WEEKLY_EVENTS(Material.FIREWORK_ROCKET, "feature.credits.feature.weekly_events", WeeklyEventsManager.class),
50+
HOLOGRAMS(Material.OAK_HANGING_SIGN, "feature.credits.feature.holograms", HologramLoader.class),
51+
ECONOMY(Material.GOLD_BLOCK, "feature.credits.feature.economy", EconomyManager.class),
52+
FRIENDS(Material.EMERALD_BLOCK, "feature.credits.feature.friends", FriendManager.class),
53+
HOMES(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_maison").getBest(), "feature.credits.feature.homes", HomesManager.class),
54+
LEADERBOARD(Material.ANCIENT_DEBRIS, "feature.credits.feature.leaderboard", LeaderboardManager.class),
55+
MAILBOX(Material.PAPER, "feature.credits.feature.mailbox", MailboxManager.class),
56+
MAINMENU(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_information").getBest(), "feature.credits.feature.mainmenu", MainMenu.class),
57+
MILESTONES(Material.SEA_LANTERN, "feature.credits.feature.milestones", MilestonesManager.class),
58+
PRIVATEMESSAGE(Material.ZOMBIE_HEAD, "feature.credits.feature.privatemessage", PrivateMessageManager.class),
59+
QUEST(CustomItemRegistry.getByName("omc_homes:omc_homes_icon_chateau").getBest(), "feature.credits.feature.quest", QuestsManager.class),
60+
SETTINGS(Material.REDSTONE_TORCH, "feature.credits.feature.settings", PlayerSettingsManager.class),
61+
TICKETS(Material.BOOK, "feature.credits.feature.tickets", TicketManager.class),
62+
TPA(Material.ENDER_PEARL, "feature.credits.feature.tpa", TPAManager.class),
63+
RTP(Material.ENDER_PEARL, "feature.credits.feature.rtp", Set.of("miseur")),
64+
VERSIONNING(Material.COMMAND_BLOCK_MINECART, "feature.credits.feature.versionning", Set.of("Piquel Chips")),
65+
CUSTOMITEMS(Material.COMMAND_BLOCK, "feature.credits.feature.customitems", Set.of("Axeno")),
66+
CHRONOMETER(Material.COMMAND_BLOCK, "feature.credits.feature.chronometer", Set.of("Nocolm")),
67+
COOLDOWN(Material.COMMAND_BLOCK, "feature.credits.feature.cooldown", Set.of("Gyro", "iambibi_")),
68+
MENU_LIB(Material.COMMAND_BLOCK, "feature.credits.feature.menu_lib", Set.of("Xernas78", "PuppyTransGirl", "iambibi_", "gab400")),
69+
PACKET_MENU_LIB(Material.COMMAND_BLOCK, "feature.credits.feature.packet_menu_lib", Set.of("miseur")),
70+
ERRORHANDLER(Material.COMMAND_BLOCK, "feature.credits.feature.errorhandler", Set.of("iambibi_")),
71+
UNITTEST(Material.COMMAND_BLOCK, "feature.credits.feature.unittest", Set.of("Nirbose", "Gyro")),
72+
ORM(Material.COMMAND_BLOCK, "feature.credits.feature.orm", Set.of("Piquel Chips")),
7373
;
7474

7575
private final ItemStack icon;
76-
private final String featureName;
76+
private final String featureKey;
7777
private final Set<String> developpers;
7878
private final Set<String> graphists;
7979
private final Set<String> builders;
8080

8181
/**
8282
* Constructeur qui récupère automatiquement les contributeurs de la classe Feature via annotation.
8383
* @param icon Icône du crédit
84-
* @param featureName Nom de la feature
84+
* @param featureKey Translation key de la feature
8585
* @param featureClass Classe Feature (ex: AdminShopManager.class)
8686
*/
87-
Credits(Material icon, String featureName, Class<? extends Feature> featureClass) {
87+
Credits(Material icon, String featureKey, Class<? extends Feature> featureClass) {
8888
this.icon = ItemStack.of(icon);
89-
this.featureName = featureName;
89+
this.featureKey = featureKey;
9090
var contributors = getContributorsFromClass(featureClass);
9191
this.developpers = contributors[0];
9292
this.graphists = contributors[1];
@@ -96,61 +96,61 @@ public enum Credits {
9696
/**
9797
* Constructeur qui récupère automatiquement les contributeurs de la classe Feature via annotation.
9898
* @param icon Icône du crédit (ItemStack)
99-
* @param featureName Nom de la feature
99+
* @param featureKey La translation key de la feature
100100
* @param featureClass Classe Feature (ex: AdminShopManager.class)
101101
*/
102-
Credits(ItemStack icon, String featureName, Class<? extends Feature> featureClass) {
102+
Credits(ItemStack icon, String featureKey, Class<? extends Feature> featureClass) {
103103
this.icon = icon;
104-
this.featureName = featureName;
104+
this.featureKey = featureKey;
105105
var contributors = getContributorsFromClass(featureClass);
106106
this.developpers = contributors[0];
107107
this.graphists = contributors[1];
108108
this.builders = contributors[2];
109109
}
110110

111-
Credits(Material icon, String featureName, Set<String> developpers) {
111+
Credits(Material icon, String featureKey, Set<String> developpers) {
112112
this.icon = ItemStack.of(icon);
113113
this.developpers = developpers;
114-
this.featureName = featureName;
114+
this.featureKey = featureKey;
115115
this.graphists = Set.of();
116116
this.builders = Set.of();
117117
}
118118

119-
Credits(ItemStack icon, String featureName, Set<String> developpers) {
119+
Credits(ItemStack icon, String featureKey, Set<String> developpers) {
120120
this.icon = icon;
121121
this.developpers = developpers;
122-
this.featureName = featureName;
122+
this.featureKey = featureKey;
123123
this.graphists = Set.of();
124124
this.builders = Set.of();
125125
}
126126

127-
Credits(ItemStack icon, String featureName, Set<String> developpers, Set<String> graphists) {
127+
Credits(ItemStack icon, String featureKey, Set<String> developpers, Set<String> graphists) {
128128
this.icon = icon;
129-
this.featureName = featureName;
129+
this.featureKey = featureKey;
130130
this.developpers = developpers;
131131
this.graphists = graphists;
132132
this.builders = Set.of();
133133
}
134134

135-
Credits(Material icon, String featureName, Set<String> developpers, Set<String> graphists) {
135+
Credits(Material icon, String featureKey, Set<String> developpers, Set<String> graphists) {
136136
this.icon = ItemStack.of(icon);
137-
this.featureName = featureName;
137+
this.featureKey = featureKey;
138138
this.developpers = developpers;
139139
this.graphists = graphists;
140140
this.builders = Set.of();
141141
}
142142

143-
Credits(ItemStack icon, String featureName, Set<String> developpers, Set<String> graphists, Set<String> builders) {
143+
Credits(ItemStack icon, String featureKey, Set<String> developpers, Set<String> graphists, Set<String> builders) {
144144
this.icon = icon;
145-
this.featureName = featureName;
145+
this.featureKey = featureKey;
146146
this.developpers = developpers;
147147
this.graphists = graphists;
148148
this.builders = builders;
149149
}
150150

151-
Credits(Material icon, String featureName, Set<String> developpers, Set<String> graphists, Set<String> builders) {
151+
Credits(Material icon, String featureKey, Set<String> developpers, Set<String> graphists, Set<String> builders) {
152152
this.icon = ItemStack.of(icon);
153-
this.featureName = featureName;
153+
this.featureKey = featureKey;
154154
this.developpers = developpers;
155155
this.graphists = graphists;
156156
this.builders = builders;

src/main/java/fr/openmc/core/features/credits/CreditsMenu.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import fr.openmc.api.menulib.utils.ItemUtils;
77
import fr.openmc.api.menulib.utils.StaticSlots;
88
import fr.openmc.core.registry.items.CustomItemRegistry;
9+
import fr.openmc.core.utils.text.messages.TranslationManager;
910
import net.kyori.adventure.text.Component;
11+
import net.kyori.adventure.text.format.NamedTextColor;
1012
import net.kyori.adventure.text.format.TextDecoration;
1113
import org.bukkit.Material;
1214
import org.bukkit.entity.Player;
@@ -51,16 +53,26 @@ public int getSizeOfItems() {
5153
for (Credits credit : Credits.values()) {
5254
List<Component> lore = new ArrayList<>();
5355

54-
lore.add(Component.text("§7Développeur(s) : §9" + String.join(", ", credit.getDeveloppers())));
56+
lore.addAll(TranslationManager.translationLore(
57+
"feature.credits.menu.lore.developers",
58+
Component.text(String.join(", ", credit.getDeveloppers())).color(NamedTextColor.BLUE)
59+
));
5560
if (!credit.getGraphists().isEmpty()) {
56-
lore.add(Component.text("§7Graphiste(s) : §6" + String.join(", ", credit.getGraphists())));
61+
lore.addAll(TranslationManager.translationLore(
62+
"feature.credits.menu.lore.graphists",
63+
Component.text(String.join(", ", credit.getGraphists())).color(NamedTextColor.GOLD)
64+
));
5765
}
5866
if (!credit.getBuilders().isEmpty()) {
59-
lore.add(Component.text("§7Builder(s) : §a" + String.join(", ", credit.getBuilders())));
67+
lore.addAll(TranslationManager.translationLore(
68+
"feature.credits.menu.lore.builders",
69+
Component.text(String.join(", ", credit.getBuilders())).color(NamedTextColor.GREEN)
70+
));
6071
}
6172

6273
ItemBuilder item = new ItemBuilder(this, credit.getIcon(), itemMeta -> {
63-
itemMeta.displayName(Component.text("§e" + credit.getFeatureName())
74+
itemMeta.displayName(TranslationManager.translation(credit.getFeatureKey())
75+
.color(NamedTextColor.YELLOW)
6476
.decoration(TextDecoration.ITALIC, false));
6577
itemMeta.lore(lore);
6678
}).hide(ItemUtils.getDataComponentType());
@@ -75,18 +87,18 @@ public int getSizeOfItems() {
7587
public Map<Integer, ItemBuilder> getButtons() {
7688
Map<Integer, ItemBuilder> map = new HashMap<>();
7789

78-
map.put(48, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(Component.text("§cPage précédente"))).setPreviousPageButton());
79-
map.put(50, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(Component.text("§aPage suivante"))).setNextPageButton());
90+
map.put(48, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton());
91+
map.put(50, new ItemBuilder(this, Objects.requireNonNull(CustomItemRegistry.getByName("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton());
8092
map.put(49, new ItemBuilder(this, Material.BARRIER, meta -> {
81-
meta.displayName(Component.text("§cFermer le menu"));
93+
meta.displayName(TranslationManager.translation("feature.credits.menu.close"));
8294
}).setOnClick(e -> getOwner().closeInventory()));
8395

8496
return map;
8597
}
8698

8799
@Override
88100
public @NotNull Component getName() {
89-
return Component.text("Crédits du serveur");
101+
return TranslationManager.translation("feature.credits.menu.title");
90102
}
91103

92104
@Override

src/main/java/fr/openmc/core/features/cube/Cube.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import fr.openmc.core.features.cube.multiblocks.MultiBlock;
77
import fr.openmc.core.features.cube.tasks.CorruptedBubbleTask;
88
import fr.openmc.core.features.cube.tasks.ReproductionTask;
9+
import fr.openmc.core.utils.text.messages.TranslationManager;
910
import org.bukkit.*;
1011
import org.bukkit.block.Block;
1112
import org.bukkit.block.data.BlockData;
@@ -38,7 +39,7 @@ public Cube(Location origin, int size, Material material, boolean showBossBar) {
3839

3940
// ## BOSS BAR ##
4041
if (showBossBar) {
41-
cubeBossBar = Bukkit.createBossBar("Le Cube", BarColor.BLUE, BarStyle.SEGMENTED_6, BarFlag.CREATE_FOG, BarFlag.DARKEN_SKY);
42+
cubeBossBar = Bukkit.createBossBar(TranslationManager.translationString("feature.cube.bossbar.title"), BarColor.BLUE, BarStyle.SEGMENTED_6, BarFlag.CREATE_FOG, BarFlag.DARKEN_SKY);
4243
cubeBossBar.setVisible(true);
4344

4445
startBossBarUpdater();

0 commit comments

Comments
 (0)