diff --git a/src/main/java/fr/openmc/api/menulib/template/ConfirmMenu.java b/src/main/java/fr/openmc/api/menulib/template/ConfirmMenu.java index f96d035fc..8432df5b1 100644 --- a/src/main/java/fr/openmc/api/menulib/template/ConfirmMenu.java +++ b/src/main/java/fr/openmc/api/menulib/template/ConfirmMenu.java @@ -13,7 +13,6 @@ import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; -import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; @@ -110,10 +109,7 @@ public void onClose(InventoryCloseEvent event) { loreDeny.add(Component.text("§e§lCLIQUEZ ICI POUR REFUSER")); - ItemStack refuseBtn = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(); - ItemStack acceptBtn = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:accept_btn").getBest(); - - inventory.put(posDenyBtn, new ItemMenuBuilder(this, refuseBtn, itemMeta -> { + inventory.put(posDenyBtn, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, itemMeta -> { itemMeta.displayName(Component.text("§cRefuser")); itemMeta.lore(loreDeny); }).setOnClick(event -> { @@ -126,7 +122,7 @@ public void onClose(InventoryCloseEvent event) { } })); - inventory.put(posAcceptBtn, new ItemMenuBuilder(this, acceptBtn, itemMeta -> { + inventory.put(posAcceptBtn, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ACCEPT_BTN, itemMeta -> { itemMeta.displayName(Component.text("§aAccepter")); itemMeta.lore(loreAccept); }).setOnClick(event -> { diff --git a/src/main/java/fr/openmc/api/menulib/template/ItemMenuTemplate.java b/src/main/java/fr/openmc/api/menulib/template/ItemMenuTemplate.java new file mode 100644 index 000000000..f2d8a51fa --- /dev/null +++ b/src/main/java/fr/openmc/api/menulib/template/ItemMenuTemplate.java @@ -0,0 +1,85 @@ +package fr.openmc.api.menulib.template; + +import fr.openmc.api.menulib.Menu; +import fr.openmc.api.menulib.utils.ItemMenuBuilder; +import fr.openmc.core.OMCRegistry; +import fr.openmc.core.features.mailboxes.menu.HomeMailbox; +import fr.openmc.core.registry.items.CustomItem; +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 java.util.List; +import java.util.function.Function; + +public class ItemMenuTemplate { + public static final Function BTN_PREVIOUS_PAGE_WHITE = (menu) -> + new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.MAILBOX_ARROW_LEFT, meta -> + meta.displayName(Component.text("⬅ Page précédente", + NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false)) + ).setPreviousPageButton(); + + public static final Function BTN_NEXT_PAGE_WHITE = (menu) -> + new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.MAILBOX_ARROW_RIGHT, meta -> + meta.displayName(Component.text("Page suivante ➡", + NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false)) + ).setNextPageButton(); + + public static final Function BTN_PREVIOUS_PAGE_ORANGE = (menu) -> + new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, meta -> + meta.displayName(TranslationManager.translation("messages.menus.previous_page")) + ).setPreviousPageButton(); + + public static final Function BTN_NEXT_PAGE_ORANGE = (menu) -> + new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, meta -> + meta.displayName(TranslationManager.translation("messages.menus.next_page")) + ).setNextPageButton(); + + public static final Function BTN_CANCEL = (menu) -> + new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, meta -> + meta.displayName(TranslationManager.translation("messages.menus.close")) + ).setCloseButton(); + + public static final Function BTN_CLOSE = (menu) -> + btn(menu, "✘", "Annuler", OMCRegistry.CUSTOM_ITEMS.MAILBOX_CANCEL_BTN, NamedTextColor.DARK_RED, true) + .setCloseButton(); + + public static final Function BTN_MAILBOX_ACCEPT = (menu) -> + btn(menu, "✔", "Accepter", OMCRegistry.CUSTOM_ITEMS.MAILBOX_ACCEPT_BTN, NamedTextColor.DARK_GREEN, true); + + public static final Function BTN_MAILBOX_SEND = (menu) -> + btn(menu, "✉", "Envoyer", OMCRegistry.CUSTOM_ITEMS.MAILBOX_SEND, NamedTextColor.DARK_AQUA, true); + + public static final Function BTN_MAILBOX_HOME = (menu) -> + new ItemMenuBuilder(menu, Material.CHEST, meta -> { + meta.displayName(Component.text("⬅ Home", NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false)); + meta.setMaxStackSize(1); + }).setOnClick(e -> new HomeMailbox(menu.getOwner()).open()); + + + public static ItemMenuBuilder btn(Menu menu, String symbol, String name, List lore, CustomItem customItem, NamedTextColor color, boolean bold) { + ItemMenuBuilder item = btn(menu, symbol, name, customItem, color, bold); + + item.editMeta( + meta -> meta.lore(lore) + ); + return item; + } + + public static ItemMenuBuilder btn(Menu menu, String symbol, String name, CustomItem customItem, NamedTextColor color, boolean bold) { + Component itemName = Component.text("[", NamedTextColor.DARK_GRAY) + .append(Component.text(symbol, color)) + .append(Component.text("]", NamedTextColor.DARK_GRAY)) + .append(Component.text(" " + name, color)); + + return new ItemMenuBuilder(menu, customItem, meta -> { + meta.displayName(itemName + .decorate(TextDecoration.BOLD) + .decoration(TextDecoration.ITALIC, false) + .decoration(TextDecoration.BOLD, bold)); + meta.setMaxStackSize(1); + }); + } +} diff --git a/src/main/java/fr/openmc/api/menulib/utils/ItemMenuBuilder.java b/src/main/java/fr/openmc/api/menulib/utils/ItemMenuBuilder.java index 6c2342286..6b1b550eb 100644 --- a/src/main/java/fr/openmc/api/menulib/utils/ItemMenuBuilder.java +++ b/src/main/java/fr/openmc/api/menulib/utils/ItemMenuBuilder.java @@ -4,6 +4,7 @@ import fr.openmc.api.menulib.MenuLib; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.bukkit.ItemBuilder; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -48,9 +49,24 @@ public ItemMenuBuilder(Menu itemMenu, Material material) { this(itemMenu, material, null, false); } + /** + * Constructs an {@code ItemBuilder} with the specified {@link Menu} and {@link CustomItem}. + * This constructor initializes the {@code ItemBuilder} to create items using the given menu and custom item, + * with no additional customizations for the {@link ItemMeta}. + * + * @param itemMenu The {@link Menu} this item will be associated with. It represents the context in which + * the item exists, such as a specific inventory or menu framework. + * @param customItem The {@link CustomItem} of the item. It determines the base appearance and behavior + * of the item being created. + */ + public ItemMenuBuilder(Menu itemMenu, CustomItem customItem) { + this(itemMenu, customItem.getBest(), null, false); + } + + /** * Constructs an {@code ItemBuilder} with the specified {@link Menu} and {@link Material}. - * This constructor initializes the {@code ItemBuilder} to create items using the given menu and material, + * This constructor initializes the {@code ItemBuilder} to create items using the given menu and custom item, * with no additional customizations for the {@link ItemMeta}. * * @param itemMenu The {@link Menu} this item will be associated with. It represents the context in which @@ -62,7 +78,22 @@ public ItemMenuBuilder(Menu itemMenu, Material material, boolean isBackButton) { this(itemMenu, material, null, isBackButton); this.backButton = isBackButton; } - + + /** + * Constructs an {@code ItemBuilder} with the specified {@link Menu} and {@link CustomItem}. + * This constructor initializes the {@code ItemBuilder} to create items using the given menu and custom item, + * with no additional customizations for the {@link ItemMeta}. + * + * @param itemMenu The {@link Menu} this item will be associated with. It represents the context in which + * the item exists, such as a specific inventory or menu framework. + * @param customItem The {@link CustomItem} of the item. It determines the base appearance and behavior + * of the item being created. + */ + public ItemMenuBuilder(Menu itemMenu, CustomItem customItem, boolean isBackButton) { + this(itemMenu, customItem.getBest(), null, isBackButton); + this.backButton = isBackButton; + } + /** * Constructs an {@code ItemBuilder} with the specified {@link Menu} and {@link ItemStack}. * This constructor initializes the {@code ItemBuilder} to create items with the given menu and item, @@ -164,6 +195,24 @@ public ItemMenuBuilder(Menu itemMenu, ItemStack item, Consumer itemMet this.backButton = isBackButton; } + /** + * Constructs an {@code ItemBuilder} with the specified {@link Menu}, {@link CustomItem}, + * and an {@link Consumer} for customizing the {@link ItemMeta}. + * This constructor initializes the {@code ItemBuilder} with a menu, a specific item to define + * the base configuration, and a consumer for applying additional metadata customizations to the item. + * + * @param itemMenu The {@link Menu} this item will be associated with. It represents the context in which + * the item exists, such as a specific inventory or menu framework. + * @param customitem The {@link CustomItem} defining the base item configuration. It includes the material, + * amount, and current metadata of the item. + * @param itemMeta A {@link Consumer} that customizes the {@link ItemMeta} of the item. It allows further + * modification of properties such as the display name, lore, enchantments, and more. + */ + public ItemMenuBuilder(Menu itemMenu, CustomItem customitem, Consumer itemMeta) { + super(customitem.getBest()); + this.itemMenu = itemMenu; + } + /** * Sets the unique identifier for the item using the specified {@code itemId}. * The identifier is stored in the item's {@link PersistentDataContainer} as a @@ -275,6 +324,11 @@ public ItemMenuBuilder setPreviousPageButton() { return this; } + public ItemMenuBuilder setBackButton() { + this.backButton = true; + return this; + } + @SuppressWarnings("UnstableApiUsage") public ItemMenuBuilder hide(DataComponentType... typesToHide) { super.hide(typesToHide); diff --git a/src/main/java/fr/openmc/core/OMCRegistry.java b/src/main/java/fr/openmc/core/OMCRegistry.java index 39c8a692f..c019a67d4 100644 --- a/src/main/java/fr/openmc/core/OMCRegistry.java +++ b/src/main/java/fr/openmc/core/OMCRegistry.java @@ -2,6 +2,8 @@ import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.bootstrap.registries.LifecycleRegistry; +import fr.openmc.core.bootstrap.registries.RegistryContext; +import fr.openmc.core.bootstrap.registries.RegistryLoadingType; import fr.openmc.core.registry.ambient.CustomAmbientRegistry; import fr.openmc.core.registry.enchantments.CustomEnchantmentRegistry; import fr.openmc.core.registry.items.CustomItemRegistry; @@ -11,69 +13,77 @@ import io.papermc.paper.plugin.bootstrap.BootstrapContext; import java.io.IOException; +import java.util.Arrays; import java.util.List; @SuppressWarnings("UnstableApiUsage") public final class OMCRegistry { - public static final CustomItemRegistry CUSTOM_ITEMS = new CustomItemRegistry(); - public static final CustomMobRegistry CUSTOM_MOBS = new CustomMobRegistry(); - public static final CustomEnchantmentRegistry CUSTOM_ENCHANTS = new CustomEnchantmentRegistry(); - public static final CustomLootTableRegistry CUSTOM_LOOT_TABLES = new CustomLootTableRegistry(); - public static final CustomLootboxRegistry CUSTOM_LOOTBOXES = new CustomLootboxRegistry(); - public static final CustomAmbientRegistry CUSTOM_AMBIENTS = new CustomAmbientRegistry(); + public static CustomItemRegistry CUSTOM_ITEMS; + public static CustomMobRegistry CUSTOM_MOBS; + public static CustomEnchantmentRegistry CUSTOM_ENCHANTS; + public static CustomLootTableRegistry CUSTOM_LOOT_TABLES; + public static CustomAmbientRegistry CUSTOM_AMBIENTS; + public static CustomLootboxRegistry CUSTOM_LOOTBOXES; - private static final List ALL = List.of( - CUSTOM_ITEMS, - CUSTOM_MOBS, - CUSTOM_ENCHANTS, - CUSTOM_LOOT_TABLES, - CUSTOM_LOOTBOXES, - CUSTOM_AMBIENTS + + private static final List ALL = List.of( + new RegistryContext( + () -> CUSTOM_ITEMS = new CustomItemRegistry(), + RegistryLoadingType.AFTER_IA), + new RegistryContext(() -> CUSTOM_MOBS = new CustomMobRegistry(), + RegistryLoadingType.AFTER_IA), + new RegistryContext( + () -> CUSTOM_ENCHANTS = new CustomEnchantmentRegistry(), + RegistryLoadingType.BOOTSTRAP, RegistryLoadingType.AFTER_IA), + new RegistryContext( + () -> CUSTOM_LOOT_TABLES = new CustomLootTableRegistry(), + RegistryLoadingType.AFTER_IA), + new RegistryContext( + () -> CUSTOM_AMBIENTS = new CustomAmbientRegistry(), + RegistryLoadingType.BOOTSTRAP), + new RegistryContext( + () -> CUSTOM_LOOTBOXES = new CustomLootboxRegistry(), + RegistryLoadingType.AFTER_IA) ); private OMCRegistry() {} public static void bootstrapAll(BootstrapContext context) { - for (LifecycleRegistry r : OMCRegistry.ALL) { - if (isOverridden(r, "bootstrap", BootstrapContext.class)) { - try { - r.bootstrap(context); - } catch (IOException e) { - OMCLogger.errorFormatted("Erreur lors du chargement du registre '{}' lors du bootstrap", r.getClass().getSimpleName()); - OMCLogger.error(e.getMessage()); - } - OMCLogger.successFormatted("Registre {} chargé pendant le bootstrap", r.getClass().getSimpleName()); + for (RegistryContext ctx : OMCRegistry.ALL) { + if (Arrays.stream(ctx.loadingTypes()) + .noneMatch(t -> t == RegistryLoadingType.BOOTSTRAP)) continue; + + LifecycleRegistry r = ctx.registry().get(); + try { + r.bootstrap(context); + } catch (IOException e) { + OMCLogger.errorFormatted("Erreur lors du chargement du registre '{}' lors du bootstrap", r.getClass().getSimpleName()); + OMCLogger.error(e.getMessage()); } + OMCLogger.successFormatted("Registre {} chargé pendant le bootstrap", r.getClass().getSimpleName()); } } public static void initAll() { - for (LifecycleRegistry r : OMCRegistry.ALL) { - if (isOverridden(r, "init")) { - r.init(); - OMCLogger.successFormatted("Registre {} chargé pendant le runtime", r.getClass().getSimpleName()); - } + for (RegistryContext ctx : OMCRegistry.ALL) { + if (Arrays.stream(ctx.loadingTypes()) + .noneMatch(t -> t == RegistryLoadingType.RUNTIME)) continue; + + LifecycleRegistry r = ctx.registry().get(); + r.init(); + OMCLogger.successFormatted("Registre {} chargé pendant le runtime", r.getClass().getSimpleName()); } } public static void postInitAll() { - for (LifecycleRegistry r : OMCRegistry.ALL) { - if (isOverridden(r, "postInit")) { - r.postInit(); - OMCLogger.successFormatted("Registre {} chargé après ItemsAdder", r.getClass().getSimpleName()); - } - } - } + for (RegistryContext ctx : OMCRegistry.ALL) { + if (Arrays.stream(ctx.loadingTypes()) + .noneMatch(t -> t == RegistryLoadingType.AFTER_IA)) continue; - private static boolean isOverridden(LifecycleRegistry r, String methodName, Class... args) { - try { - return !r.getClass() - .getMethod(methodName, args) - .getDeclaringClass() - .equals(LifecycleRegistry.class); - } catch (NoSuchMethodException e) { - return false; + LifecycleRegistry r = ctx.registry().get(); + r.postInit(); + OMCLogger.successFormatted("Registre {} chargé après ItemsAdder", r.getClass().getSimpleName()); } } } \ No newline at end of file diff --git a/src/main/java/fr/openmc/core/bootstrap/registries/KeyedRegistry.java b/src/main/java/fr/openmc/core/bootstrap/registries/KeyedRegistry.java index 0988b9ad7..7548dda09 100644 --- a/src/main/java/fr/openmc/core/bootstrap/registries/KeyedRegistry.java +++ b/src/main/java/fr/openmc/core/bootstrap/registries/KeyedRegistry.java @@ -3,10 +3,10 @@ public interface KeyedRegistry { K key(V registryObject); - void register(K key, V value); + V register(K key, V value); - default void register(V value) { - register(key(value), value); + default V register(V value) { + return register(key(value), value); } default void register(V... values) { diff --git a/src/main/java/fr/openmc/core/bootstrap/registries/Registry.java b/src/main/java/fr/openmc/core/bootstrap/registries/Registry.java index 799aed6c9..d18b31d38 100644 --- a/src/main/java/fr/openmc/core/bootstrap/registries/Registry.java +++ b/src/main/java/fr/openmc/core/bootstrap/registries/Registry.java @@ -3,17 +3,23 @@ import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Optional; public class Registry implements LifecycleRegistry { protected final Map entries = new HashMap<>(); - public void register(K key, V value) { + public V register(K key, V value) { entries.put(key, value); + return value; } - public V get(K key) { - return entries.get(key); + public Optional get(K key) { + return Optional.ofNullable(entries.get(key)); + } + + public V getOrThrow(K key) { + return get(key).orElseThrow(() -> new IllegalArgumentException("No entry found for key: " + key)); } public Collection keys() { diff --git a/src/main/java/fr/openmc/core/bootstrap/registries/RegistryContext.java b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryContext.java new file mode 100644 index 000000000..6984ae43d --- /dev/null +++ b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryContext.java @@ -0,0 +1,13 @@ +package fr.openmc.core.bootstrap.registries; + +import java.util.function.Supplier; + +/** + * Création d'un context pour les registres. + * prends un registre à initialiser, et les conditions d'initialisations du registre. + * Creer pour éviter des erreurs de {@link org.bukkit.Registry} lié au Material ou autre, qui ne sont pas encore initialisé lors du bootstrap. + * @param registry le constructeur du registre + * @param loadingTypes les conditions de chargements + */ +public record RegistryContext(Supplier registry, RegistryLoadingType... loadingTypes) { +} diff --git a/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java new file mode 100644 index 000000000..2cbbe12a1 --- /dev/null +++ b/src/main/java/fr/openmc/core/bootstrap/registries/RegistryLoadingType.java @@ -0,0 +1,13 @@ +package fr.openmc.core.bootstrap.registries; + +/** + * Les Conditions de Chargement : + * - BOOTSTRAP, registre a charger avant le chargement du monde et des datapacks + * - RUNTIME, registre a charger pendant le chargement du serveur + * - AFTER_IA, registre à charger après l'initialisation complete d'ItemsAdder {@link dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent} + */ +public enum RegistryLoadingType { + BOOTSTRAP, + RUNTIME, + AFTER_IA +} diff --git a/src/main/java/fr/openmc/core/commands/debug/CustomItemCommand.java b/src/main/java/fr/openmc/core/commands/debug/CustomItemCommand.java index cd6703a24..5d7eab47d 100644 --- a/src/main/java/fr/openmc/core/commands/debug/CustomItemCommand.java +++ b/src/main/java/fr/openmc/core/commands/debug/CustomItemCommand.java @@ -25,14 +25,14 @@ public void get( @SuggestWith(CustomItemAutoComplete.class) String name, @Optional Integer amount ) { - CustomItem item = OMCRegistry.CUSTOM_ITEMS.get(name); + java.util.Optional item = OMCRegistry.CUSTOM_ITEMS.get(name); - if (item == null) { + if (item.isEmpty()) { MessagesManager.sendMessage(player, Component.text("Cet item n'existe pas"), Prefix.STAFF, MessageType.ERROR, false); return; } - ItemStack finalItem = item.getBest(); + ItemStack finalItem = item.get().getBest(); if (amount != null && amount > 1) { finalItem.setAmount(amount); } diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyBankTransactionsMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyBankTransactionsMenu.java.bak index 798acc474..e2117629a 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyBankTransactionsMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyBankTransactionsMenu.java.bak @@ -83,15 +83,15 @@ public class CompanyBankTransactionsMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL.getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")); if ((getPage() == 0 && isLastPage()) || company.getShops().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cRetour")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cRetour")) .setOnClick(inventoryClickEvent -> new CompanyMenu(getOwner(), company, false).open())); buttons.put(50, nextPageButton); } else { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); } diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyMenu.java.bak index cfd5d1a89..1a3aa4924 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanyMenu.java.bak @@ -73,15 +73,15 @@ public class CompanyMenu extends PaginatedMenu { public Map getButtons() { Map buttons = new HashMap<>(); - ItemBuilder closeButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")).setCloseButton(); - ItemBuilder backButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§7Retour"), true); + ItemBuilder closeButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> itemMeta.setDisplayName("§7Fermer")).setCloseButton(); + ItemBuilder backButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§7Retour"), true); buttons.put(49, isBackButton ? backButton : closeButton); - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); - buttons.put(50, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")) + buttons.put(50, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE.getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")) .setNextPageButton()); ItemBuilder ownerItem; diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanySearchMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanySearchMenu.java.bak index 5b2eb6a96..ff6e0ab82 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanySearchMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/CompanySearchMenu.java.bak @@ -89,11 +89,11 @@ public class CompanySearchMenu extends PaginatedMenu { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + map.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - map.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + map.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); - map.put(50, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")) + map.put(50, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")) .setNextPageButton()); if (CompanyManager.isInCompany(getOwner().getUniqueId())) { map.put(4, new ItemBuilder(this, CompanyManager.getCompany(getOwner().getUniqueId()).getHead(), itemMeta -> { diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/ShopManageMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/ShopManageMenu.java.bak index e4d729384..81215150e 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/company/ShopManageMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/company/ShopManageMenu.java.bak @@ -75,15 +75,15 @@ public class ShopManageMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")); if ((getPage() == 0 && isLastPage()) || company.getShops().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cRetour")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cRetour")) .setOnClick(inventoryClickEvent -> new CompanyMenu(getOwner(), company, false).open())); buttons.put(50, nextPageButton); } else { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); } diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopCatalogueMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopCatalogueMenu.java.bak index 2caa6022e..ceabba283 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopCatalogueMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopCatalogueMenu.java.bak @@ -71,15 +71,15 @@ public class ShopCatalogueMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")); if ((getPage() == 0 && isLastPage()) || shop.getItems().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cRetour")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cRetour")) .setOnClick(inventoryClickEvent -> new ShopMenu(getOwner(), shop, itemIndex).open())); buttons.put(50, nextPageButton); } else { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); } diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopMenu.java.bak index 28037aa11..f60cb3767 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopMenu.java.bak @@ -94,19 +94,19 @@ public class ShopMenu extends Menu { putOwnerItems(content); } - content.put(39, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { + content.put(39, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> { itemMeta.setDisplayName("§cItem précédent"); }).setOnClick(inventoryClickEvent -> new ShopMenu(getOwner(), shop, onFirstItem() ? itemIndex : itemIndex - 1).open())); - content.put(41, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { + content.put(41, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> { itemMeta.setDisplayName("§aItem suivant"); }).setOnClick(inventoryClickEvent -> new ShopMenu(getOwner(), shop, onLastItem() ? itemIndex : itemIndex + 1).open())); - content.put(40, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { + content.put(40, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> { itemMeta.setDisplayName("§7Fermer"); }).setCloseButton()); - content.put(19, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:minus_btn").getBest(), itemMeta -> { + content.put(19, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.MINUS_BTN, itemMeta -> { itemMeta.setDisplayName("§5Définir à 1"); }).setOnClick(inventoryClickEvent -> { if (getCurrentItem() == null) return; @@ -114,7 +114,7 @@ public class ShopMenu extends Menu { open(); })); - content.put(20, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_company:10_btn").getBest(), itemMeta -> { + content.put(20, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_company:10_btn"), itemMeta -> { itemMeta.setDisplayName("§cRetirer 10"); }).setOnClick(inventoryClickEvent -> { if (getCurrentItem() == null) return; @@ -126,7 +126,7 @@ public class ShopMenu extends Menu { } open(); })); - content.put(21, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:1_btn").getBest(), itemMeta -> { + content.put(21, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.BTN_1, itemMeta -> { itemMeta.setDisplayName("§cRetirer 1"); }).setOnClick(inventoryClickEvent -> { if (getCurrentItem() == null) return; @@ -145,7 +145,7 @@ public class ShopMenu extends Menu { itemMeta.setLore(lore); }).setOnClick(inventoryClickEvent -> new ConfirmMenu(getOwner(), this::buyAccept, this::refuse, List.of(Component.text("§aAcheter")), List.of(Component.text("§cAnnuler l'achat"))).open())); - content.put(23, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:1_btn").getBest(), itemMeta -> { + content.put(23, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.BTN_1.getBest(), itemMeta -> { itemMeta.setDisplayName("§aAjouter 1"); }).setOnClick(inventoryClickEvent -> { if (getCurrentItem() == null) return; @@ -160,7 +160,7 @@ public class ShopMenu extends Menu { open(); })); - content.put(25, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:64_btn").getBest(), itemMeta -> { + content.put(25, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.BTN_64.getBest(), itemMeta -> { itemMeta.setDisplayName("§5Ajouter 64"); }).setOnClick(inventoryClickEvent -> { if (getCurrentItem() == null) return; @@ -169,7 +169,7 @@ public class ShopMenu extends Menu { open(); })); - content.put(44, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_company:company_box").getBest(), itemMeta -> { + content.put(44, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.COMPANY_BOX.getBest(), itemMeta -> { itemMeta.setDisplayName("§7Catalogue"); }).setOnClick(inventoryClickEvent -> new ShopCatalogueMenu(getOwner(), shop, itemIndex).open())); @@ -183,7 +183,7 @@ public class ShopMenu extends Menu { private void putOwnerItems(Map content) { - content.put(0, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bin_red").getBest(), itemMeta -> { + content.put(0, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BIN_RED.getBest(), itemMeta -> { itemMeta.setDisplayName("§c§lSupprimer le shop"); }).setOnClick(inventoryClickEvent -> new ConfirmMenu(getOwner(), this::accept, this::refuse, List.of(Component.text("§aSupprimer")), List.of(Component.text("§cAnnuler la suppression"))).open())); diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSalesMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSalesMenu.java.bak index 927f02f1a..4f2d258c9 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSalesMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSalesMenu.java.bak @@ -72,15 +72,15 @@ public class ShopSalesMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL.getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")); if ((getPage() == 0 && isLastPage()) || shop.getSales().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cRetour")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cRetour")) .setOnClick(inventoryClickEvent -> new ShopMenu(getOwner(), shop, itemIndex).open())); buttons.put(50, nextPageButton); } else { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); } diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSearchMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSearchMenu.java.bak index c58ceb39c..dc8f2502e 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSearchMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopSearchMenu.java.bak @@ -85,13 +85,13 @@ public class ShopSearchMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL.getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); - ItemBuilder searchButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_search").getBest().getType(), itemMeta -> + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE.getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder searchButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_SEARCH.getType(), itemMeta -> itemMeta.setDisplayName("Rechercher")); if ((getPage() != 0 && !isLastPage()) || !CompanyManager.getShops().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); buttons.put(45, searchButton.setOnClick(inventoryClick -> { diff --git a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopStocksMenu.java.bak b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopStocksMenu.java.bak index f208cbc9a..080579e83 100644 --- a/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopStocksMenu.java.bak +++ b/src/main/java/fr/openmc/core/disabled/corporation/menu/shop/ShopStocksMenu.java.bak @@ -88,15 +88,15 @@ public class ShopStocksMenu extends PaginatedMenu { @Override public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.setDisplayName("§7Fermer")) + buttons.put(49, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> itemMeta.setDisplayName("§7Fermer")) .setCloseButton()); - ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§aPage suivante")); + ItemBuilder nextPageButton = new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.setDisplayName("§aPage suivante")); if ((getPage() == 0 && isLastPage()) || shop.getSales().isEmpty()) { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cRetour")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cRetour")) .setOnClick(inventoryClickEvent -> new ShopMenu(getOwner(), shop, itemIndex).open())); buttons.put(50, nextPageButton); } else { - buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.setDisplayName("§cPage précédente")) + buttons.put(48, new ItemBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.setDisplayName("§cPage précédente")) .setPreviousPageButton()); buttons.put(50, nextPageButton.setNextPageButton()); } diff --git a/src/main/java/fr/openmc/core/features/adminshop/menus/AdminShopCategoryMenu.java b/src/main/java/fr/openmc/core/features/adminshop/menus/AdminShopCategoryMenu.java index 28440c4df..c92737781 100644 --- a/src/main/java/fr/openmc/core/features/adminshop/menus/AdminShopCategoryMenu.java +++ b/src/main/java/fr/openmc/core/features/adminshop/menus/AdminShopCategoryMenu.java @@ -87,7 +87,7 @@ else if (event.isRightClick() && item.getInitialSellPrice() > 0) } content.put(40, new ItemMenuBuilder(this, - OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), + OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, true)); return content; diff --git a/src/main/java/fr/openmc/core/features/adminshop/menus/ColorVariantsMenu.java b/src/main/java/fr/openmc/core/features/adminshop/menus/ColorVariantsMenu.java index c66dd9635..2bdb2f602 100644 --- a/src/main/java/fr/openmc/core/features/adminshop/menus/ColorVariantsMenu.java +++ b/src/main/java/fr/openmc/core/features/adminshop/menus/ColorVariantsMenu.java @@ -152,7 +152,7 @@ public void onInventoryClick(InventoryClickEvent event) {} } content.put(49, new ItemMenuBuilder(this, - OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), + OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, true)); return content; diff --git a/src/main/java/fr/openmc/core/features/adminshop/menus/ConfirmMenu.java b/src/main/java/fr/openmc/core/features/adminshop/menus/ConfirmMenu.java index f1fcdb09b..0b2cfdc16 100644 --- a/src/main/java/fr/openmc/core/features/adminshop/menus/ConfirmMenu.java +++ b/src/main/java/fr/openmc/core/features/adminshop/menus/ConfirmMenu.java @@ -9,6 +9,7 @@ import fr.openmc.core.features.adminshop.AdminShopManager; import fr.openmc.core.features.adminshop.ShopItem; import fr.openmc.core.features.economy.EconomyManager; +import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.TranslationManager; import net.kyori.adventure.text.Component; @@ -73,23 +74,21 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) {} Component.text(AdminShopManager.priceFormat.format(totalPrice)), Component.text(EconomyManager.getEconomyIcon()) ); - content.put(9, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), meta -> { - meta.displayName(TranslationManager.translation("messages.global.cancel")); - }, true)); + content.put(9, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, true)); - content.put(10, createQuantityButton("-64", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:64_btn").getBest(), event -> { + content.put(10, createQuantityButton("-64", OMCRegistry.CUSTOM_ITEMS.BTN_64, event -> { if (quantity > 64) quantity -= 64; else quantity = 1; this.open(); })); - content.put(11, createQuantityButton("-10", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:minus_btn").getBest(), event -> { + content.put(11, createQuantityButton("-10", OMCRegistry.CUSTOM_ITEMS.MINUS_BTN, event -> { if (quantity > 10) quantity -= 10; else quantity = 1; this.open(); })); - content.put(12, createQuantityButton("-1", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:1_btn").getBest(), event -> { + content.put(12, createQuantityButton("-1", OMCRegistry.CUSTOM_ITEMS.BTN_1, event -> { if (quantity > 1) quantity--; else quantity = 1; this.open(); @@ -119,13 +118,13 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) {} } })); - content.put(14, createQuantityButton("+1", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:1_btn").getBest(), event -> increaseQuantity(1))); + content.put(14, createQuantityButton("+1", OMCRegistry.CUSTOM_ITEMS.BTN_1, event -> increaseQuantity(1))); - content.put(15, createQuantityButton("+10", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:plus_btn").getBest(), event -> increaseQuantity(10))); + content.put(15, createQuantityButton("+10", OMCRegistry.CUSTOM_ITEMS.BTN_10, event -> increaseQuantity(10))); - content.put(16, createQuantityButton("+64", OMCRegistry.CUSTOM_ITEMS.get("omc_menus:64_btn").getBest(), event -> increaseQuantity(64))); + content.put(16, createQuantityButton("+64", OMCRegistry.CUSTOM_ITEMS.BTN_64, event -> increaseQuantity(64))); - content.put(17, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:accept_btn").getBest(), meta -> { + content.put(17, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ACCEPT_BTN, meta -> { meta.displayName(TranslationManager.translation("messages.global.accept")); }).setOnClick(event -> { getOwner().closeInventory(); @@ -158,6 +157,18 @@ private ItemMenuBuilder createQuantityButton(String text, ItemStack itemStack, C .setOnClick(action); } + /** + * Creates a quantity button with the specified text and item stack. + * + * @param text The text to display on the button. + * @param customItem The CustomItem to use for the button. + * @param action The action to perform when the button is clicked. + * @return The created item stack. + */ + private ItemMenuBuilder createQuantityButton(String text, CustomItem customItem, Consumer action) { + return this.createQuantityButton(text, customItem.getBest(), action); + } + /** * Counts the number of items of a specific material in a player's inventory. * diff --git a/src/main/java/fr/openmc/core/features/adminshop/menus/LeavesVariantsMenu.java b/src/main/java/fr/openmc/core/features/adminshop/menus/LeavesVariantsMenu.java index 436717f64..d79bdce3b 100644 --- a/src/main/java/fr/openmc/core/features/adminshop/menus/LeavesVariantsMenu.java +++ b/src/main/java/fr/openmc/core/features/adminshop/menus/LeavesVariantsMenu.java @@ -110,7 +110,7 @@ public void onInventoryClick(InventoryClickEvent event) {} } content.put(49, new ItemMenuBuilder(this, - OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), + OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, true)); return content; } diff --git a/src/main/java/fr/openmc/core/features/adminshop/menus/LogVariantsMenu.java b/src/main/java/fr/openmc/core/features/adminshop/menus/LogVariantsMenu.java index 3ff340e28..0fbd1c85a 100644 --- a/src/main/java/fr/openmc/core/features/adminshop/menus/LogVariantsMenu.java +++ b/src/main/java/fr/openmc/core/features/adminshop/menus/LogVariantsMenu.java @@ -109,7 +109,7 @@ public void onInventoryClick(InventoryClickEvent event) {} } content.put(49, new ItemMenuBuilder(this, - OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), + OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, true)); return content; diff --git a/src/main/java/fr/openmc/core/features/city/actions/CityCreateAction.java b/src/main/java/fr/openmc/core/features/city/actions/CityCreateAction.java index e77ed06fa..b307ddb87 100644 --- a/src/main/java/fr/openmc/core/features/city/actions/CityCreateAction.java +++ b/src/main/java/fr/openmc/core/features/city/actions/CityCreateAction.java @@ -12,7 +12,6 @@ import fr.openmc.core.features.city.view.CityViewManager; import fr.openmc.core.features.economy.EconomyManager; import fr.openmc.core.hooks.WorldGuardHook; -import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -69,12 +68,7 @@ public static void beginCreateCity(Player player, String cityName) { } private static ItemStack getMascotStick() { - ItemStack stick; - CustomItem mascotStick = OMCRegistry.CUSTOM_ITEMS.get("omc_items:mascot_stick"); - if (mascotStick != null) - stick = mascotStick.getBest(); - else - stick = new ItemStack(Material.STICK); + ItemStack stick = OMCRegistry.CUSTOM_ITEMS.MASCOT_STICK.getBest(); ItemMeta meta = stick.getItemMeta(); if (meta != null) { diff --git a/src/main/java/fr/openmc/core/features/city/actions/CityUnclaimAction.java b/src/main/java/fr/openmc/core/features/city/actions/CityUnclaimAction.java index e5c5501de..9fb981650 100644 --- a/src/main/java/fr/openmc/core/features/city/actions/CityUnclaimAction.java +++ b/src/main/java/fr/openmc/core/features/city/actions/CityUnclaimAction.java @@ -15,7 +15,7 @@ public class CityUnclaimAction { - private static final ItemStack ayweniteItemStack = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + private static final ItemStack ayweniteItemStack = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); public static int calculatePrice(int chunkCount) { return 5000 + ((chunkCount - 1) * 1000) / 3; diff --git a/src/main/java/fr/openmc/core/features/city/conditions/CityChestConditions.java b/src/main/java/fr/openmc/core/features/city/conditions/CityChestConditions.java index f28f57c89..1f7bbc0bd 100644 --- a/src/main/java/fr/openmc/core/features/city/conditions/CityChestConditions.java +++ b/src/main/java/fr/openmc/core/features/city/conditions/CityChestConditions.java @@ -15,8 +15,6 @@ import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import java.util.Objects; - /** * Le but de cette classe est de regrouper toutes les conditions necessaires * pour tout ce qui est autour du coffre de ville (utile pour faire une modif sur menu et commandes). @@ -98,7 +96,7 @@ public static boolean canCityChestUpgrade(City city, Player player) { } int aywenite = city.getChestPages() * UPGRADE_PER_AYWENITE; // fonction linéaire f(x)=ax ; a=UPGRADE_PER_MONEY - if (!ItemUtils.hasEnoughItems(player, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite")).getBest(), aywenite)) { + if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), aywenite)) { MessagesManager.sendMessage(player, TranslationManager.translation("feature.city.conditions.resource.not_enough_aywenite", Component.text(aywenite)), Prefix.CITY, MessageType.ERROR, false); return false; } diff --git a/src/main/java/fr/openmc/core/features/city/conditions/CityClaimCondition.java b/src/main/java/fr/openmc/core/features/city/conditions/CityClaimCondition.java index e5af9e6a7..5e99a4a3d 100644 --- a/src/main/java/fr/openmc/core/features/city/conditions/CityClaimCondition.java +++ b/src/main/java/fr/openmc/core/features/city/conditions/CityClaimCondition.java @@ -43,7 +43,7 @@ public static boolean canCityClaim(City city, Player player) { if (city.getFreeClaims() > 0) return true; int amount = CityClaimAction.calculateAywenite(city.getChunks().size()); - if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), amount)) { + if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), amount)) { MessagesManager.sendMessage( player, TranslationManager.translation("feature.city.conditions.resource.not_enough_aywenite", Component.text(amount)), diff --git a/src/main/java/fr/openmc/core/features/city/conditions/CityCreateConditions.java b/src/main/java/fr/openmc/core/features/city/conditions/CityCreateConditions.java index de4bc8c1f..a4c76a676 100644 --- a/src/main/java/fr/openmc/core/features/city/conditions/CityCreateConditions.java +++ b/src/main/java/fr/openmc/core/features/city/conditions/CityCreateConditions.java @@ -13,8 +13,6 @@ import net.kyori.adventure.text.Component; import org.bukkit.entity.Player; -import java.util.Objects; - /** * Le but de cette classe est de regrouper toutes les conditions necessaires * pour creer une ville (utile pour faire une modif sur menu et commandes). @@ -52,7 +50,7 @@ public static boolean canCityCreate(Player player, String cityName) { return false; } - if (!ItemUtils.hasEnoughItems(player, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite")).getBest(), AYWENITE_CREATE)) { + if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), AYWENITE_CREATE)) { MessagesManager.sendMessage(player, TranslationManager.translation("feature.city.conditions.resource.not_enough_aywenite", Component.text(AYWENITE_CREATE)), Prefix.CITY, MessageType.ERROR, false); return false; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityChestMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityChestMenu.java index 5776927dd..97878e1d2 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityChestMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityChestMenu.java @@ -106,18 +106,18 @@ public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, true).setOnClick(inventoryClickEvent -> - exit(city, getInventory()))); + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true) + .setOnClick(_ -> exit(city, getInventory()))); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { + map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.close")); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { exit(city, getInventory()); player.closeInventory(); })); if (hasPreviousPage()) { - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page")); }).setOnClick(inventoryClickEvent -> { if (hasPreviousPage()) { @@ -131,7 +131,7 @@ public Map getButtons() { })); } if (hasNextPage()) { - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.next_page")); }).setOnClick(inventoryClickEvent -> { if (hasNextPage()) { diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityChunkMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityChunkMenu.java index 71f26a4e4..381acedac 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityChunkMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityChunkMenu.java @@ -204,10 +204,7 @@ public List getTakableSlot() { private void addNavigationButtons(Map inventory) { if (playerCity != null) { - inventory.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }, true)); + inventory.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); if (hasFreeClaimAvailable) { inventory.put(49, new ItemMenuBuilder(this, Material.GOLD_BLOCK, itemMeta -> { diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityModifyMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityModifyMenu.java index a58a02e14..548f76cdb 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityModifyMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityModifyMenu.java @@ -166,10 +166,7 @@ public void onInventoryClick(InventoryClickEvent click) { inventory.put(15, deleteItemSupplier.get()); } - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityPermsMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityPermsMenu.java index 1829681dd..b047182aa 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityPermsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityPermsMenu.java @@ -104,17 +104,14 @@ public List getItems() { public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }, true)); + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page")); itemMeta.lore(TranslationManager.translationLore("messages.menus.previous_page_lore")); }).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.next_page")); itemMeta.lore(TranslationManager.translationLore("messages.menus.next_page_lore")); }).setNextPageButton()); diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityTransferMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityTransferMenu.java index 77e1876c8..1c85b961c 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityTransferMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityTransferMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.menu; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.CityPermission; @@ -91,15 +91,9 @@ public List getTakableSlot() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.close")); - }).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page")); - }).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.next_page")); - }).setNextPageButton()); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/CityTypeMenu.java b/src/main/java/fr/openmc/core/features/city/menu/CityTypeMenu.java index 67cd9e478..3dd49530c 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/CityTypeMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/CityTypeMenu.java @@ -88,9 +88,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { CityChangeAction.beginChangeCity(player, CityType.WAR); })); - map.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - }, true)); + map.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/InvitationsMenu.java b/src/main/java/fr/openmc/core/features/city/menu/InvitationsMenu.java index cc6fb475b..8e778f376 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/InvitationsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/InvitationsMenu.java @@ -2,10 +2,10 @@ import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.template.ConfirmMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.commands.CityInviteCommands; @@ -20,7 +20,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class InvitationsMenu extends PaginatedMenu { @@ -117,24 +120,11 @@ public int getSizeOfItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }, true)); - - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.close")); - }).setOnClick(inventoryClickEvent -> - getOwner().closeInventory() - )); - - map.put(48, - new ItemMenuBuilder(this, - Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, - new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); + + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/list/CityListDetailsMenu.java b/src/main/java/fr/openmc/core/features/city/menu/list/CityListDetailsMenu.java index 6afdcb32d..3bfcb9668 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/list/CityListDetailsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/list/CityListDetailsMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.menu.list; -import dev.lone.itemsadder.api.CustomStack; import fr.openmc.api.menulib.Menu; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.ItemUtils; +import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityPermission; import fr.openmc.core.features.city.CityType; @@ -175,8 +175,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(26, new ItemMenuBuilder(this, new ItemStack(city.getType().equals(CityType.WAR) ? Material.RED_BANNER : Material.GREEN_BANNER), itemMeta -> itemMeta.displayName(TranslationManager.translation("feature.city.menus.list.details.type", city.getType().getDisplayName())))); - map.put(18, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange").getItemStack(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + map.put(18, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, true)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/list/CityListMenu.java b/src/main/java/fr/openmc/core/features/city/menu/list/CityListMenu.java index ff72edda1..427f9b7af 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/list/CityListMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/list/CityListMenu.java @@ -1,11 +1,11 @@ package fr.openmc.core.features.city.menu.list; -import dev.lone.itemsadder.api.CustomStack; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.ItemUtils; import fr.openmc.api.menulib.utils.StaticSlots; +import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.CityPermission; @@ -160,10 +160,10 @@ public Map getButtons() { changeSortType(); new CityListMenu(getOwner(), sortType).open(); })); - map.put(48, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_next_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/list/CityPlayerListMenu.java b/src/main/java/fr/openmc/core/features/city/menu/list/CityPlayerListMenu.java index d7321ac0a..addbde1d6 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/list/CityPlayerListMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/list/CityPlayerListMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.menu.list; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.utils.bukkit.SkullUtils; import fr.openmc.core.utils.cache.CacheOfflinePlayer; @@ -76,13 +76,10 @@ public List getTakableSlot() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.menus.list.members.back_lore")); - }, true)); - map.put(49, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerGestionMenu.java b/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerGestionMenu.java index c16119329..bd409aa69 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerGestionMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerGestionMenu.java @@ -129,10 +129,7 @@ public void onInventoryClick(InventoryClickEvent click) { new CityPermsMenu(player, playerTarget.getUniqueId(), true).open() )); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.menus.members.manage.back_lore")); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerListMenu.java b/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerListMenu.java index 53542dbde..6cf9d3f1d 100644 --- a/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerListMenu.java +++ b/src/main/java/fr/openmc/core/features/city/menu/playerlist/CityPlayerListMenu.java @@ -3,6 +3,7 @@ import fr.openmc.api.input.dialog.DialogInput; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.template.ConfirmMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; @@ -154,27 +155,13 @@ public Map getButtons() { City playerCity = CityManager.getPlayerCity(player.getUniqueId()); Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }, true)); - - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.close")); - }).setOnClick(inventoryClickEvent -> - getOwner().closeInventory() - )); - - map.put(48, - new ItemMenuBuilder(this, - Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, - new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); - - - map.put(53, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_search")).getBest(), itemMeta -> { + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); + + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); + + map.put(53, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_SEARCH, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.menus.members.invite.title")); itemMeta.lore( TranslationManager.translationLore( diff --git a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankDepositMenu.java b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankDepositMenu.java index aaca77280..83009dd08 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankDepositMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankDepositMenu.java @@ -128,10 +128,7 @@ public void onInventoryClick(InventoryClickEvent click) { })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.bank.menu.back_lore")); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankMenu.java b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankMenu.java index 19de4c1a6..27107a855 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankMenu.java @@ -125,11 +125,7 @@ public void onInventoryClick(InventoryClickEvent click) { menu.open(); })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.bank.menu.back_lore")); - - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankWithdrawMenu.java b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankWithdrawMenu.java index d38ff6ea9..eecccdf65 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankWithdrawMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/bank/menu/CityBankWithdrawMenu.java @@ -127,10 +127,7 @@ public void onInventoryClick(InventoryClickEvent click) { })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.bank.menu.back_lore")); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotMenu.java index a123dbf2a..bb6b9bed6 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotMenu.java @@ -153,7 +153,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { movingMascots.add(cityUUID); - ItemStack mascotsMoveItem = OMCRegistry.CUSTOM_ITEMS.get("omc_items:mascot_stick").getBest(); + ItemStack mascotsMoveItem = OMCRegistry.CUSTOM_ITEMS.MASCOT_STICK.getBest(); ItemMeta meta = mascotsMoveItem.getItemMeta(); if (meta != null) { @@ -269,10 +269,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { player.closeInventory(); })); - map.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("messages.menus.back_lore")); - }, true)); + map.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); if (city.isImmune()) { Supplier immunityItemSupplier = () -> { diff --git a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsDeadMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsDeadMenu.java index 8cc7ffcad..f6412ea2a 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsDeadMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsDeadMenu.java @@ -97,10 +97,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { MenuUtils.runDynamicItem(player, this, 13, reduceItemSupplier) .runTaskTimer(OMCPlugin.getInstance(), 0L, 20L); - map.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.displayName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("messages.menus.back_lore")); - }, true)); + map.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsSkinMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsSkinMenu.java index f62349047..b326c7c45 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsSkinMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mascots/menu/MascotsSkinMenu.java @@ -77,10 +77,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { map.put(mascotType.getSlot(), createMascotButton(playerCity, mascotType)); } - map.put(18, new ItemMenuBuilder(this, Material.ARROW, meta -> { - meta.displayName(TranslationManager.translation("messages.menus.back")); - meta.lore(TranslationManager.translationLore("messages.menus.back_lore")); - }, true)); + map.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return map; } @@ -119,7 +116,7 @@ private ItemMenuBuilder createMascotButton(City city, MascotType type) { } if (!egg.equals(type.getSpawnEgg())) { int aywenite = type.getPrice(); - ItemStack ISAywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack ISAywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); if (ItemUtils.hasEnoughItems(getOwner(), ISAywenite, aywenite)) { changeMascotsSkin(mascots, type.getEntityType(), getOwner(), aywenite); getOwner().playSound(getOwner().getLocation(), selectSound, 1, 1); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/actions/MayorSetWarpAction.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/actions/MayorSetWarpAction.java index 46ed89e79..bfbaccf5c 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/actions/MayorSetWarpAction.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/actions/MayorSetWarpAction.java @@ -75,7 +75,7 @@ public static ItemStack getWarpWand() { List loreItemInterraction = List.of( TranslationManager.translation("feature.city.mayor.warp.wand.lore") ); - ItemStack item = OMCRegistry.CUSTOM_ITEMS.get("omc_items:warp_stick").getBest(); + ItemStack item = OMCRegistry.CUSTOM_ITEMS.WARP_STICK.getBest(); ItemMeta itemMeta = item.getItemMeta(); itemMeta.displayName(TranslationManager.translation("feature.city.mayor.warp.wand.name")); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/NPCManager.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/NPCManager.java index bef2eec2f..458a66ca9 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/NPCManager.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/managers/NPCManager.java @@ -82,10 +82,10 @@ public static void createNPCS(UUID cityUUID, Location locationMayor, Location lo String mayorDisplayName = "" + TranslationManager.translationString("feature.city.mayor.npc.display.mayor", Component.text(mayorName)) + ""; dataMayor.setDisplayName(mayorDisplayName); - dataMayor.addEquipment(NpcEquipmentSlot.HEAD, OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_helmet").getBest()); - dataMayor.addEquipment(NpcEquipmentSlot.CHEST, OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_chestplate").getBest()); - dataMayor.addEquipment(NpcEquipmentSlot.LEGS, OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_leggings").getBest()); - dataMayor.addEquipment(NpcEquipmentSlot.FEET, OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_boots").getBest()); + dataMayor.addEquipment(NpcEquipmentSlot.HEAD, OMCRegistry.CUSTOM_ITEMS.SUIT_HELMET.getBest()); + dataMayor.addEquipment(NpcEquipmentSlot.CHEST, OMCRegistry.CUSTOM_ITEMS.SUIT_CHESTPLATE.getBest()); + dataMayor.addEquipment(NpcEquipmentSlot.LEGS, OMCRegistry.CUSTOM_ITEMS.SUIT_LEGGINGS.getBest()); + dataMayor.addEquipment(NpcEquipmentSlot.FEET, OMCRegistry.CUSTOM_ITEMS.SUIT_BOOTS.getBest()); } else { dataMayor.setSkin("https://s.namemc.com/i/1971f3c39cb8e3ef.png"); String unknownDisplayName = "" + TranslationManager.translationString("feature.city.mayor.npc.display.unknown") + ""; diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorElectionMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorElectionMenu.java index c01895194..b5756bd6f 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorElectionMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorElectionMenu.java @@ -154,10 +154,7 @@ public void onClose(InventoryCloseEvent event) { } })); - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); - itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.common.back.lore")); - }, true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); List loreInfo = TranslationManager.translationLore("feature.city.mayor.menu.common.more_info.lore"); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorLawMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorLawMenu.java index 70886f231..b81cbf465 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorLawMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorLawMenu.java @@ -411,10 +411,7 @@ public void run() { .runTaskTimer(OMCPlugin.getInstance(), 0L, 20L); } - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); - itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.common.back.lore")); - }, true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); List loreInfo = TranslationManager.translationLore("feature.city.mayor.menu.common.more_info.lore"); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorMandateMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorMandateMenu.java index 43800da2e..741710546 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorMandateMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorMandateMenu.java @@ -158,10 +158,7 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk3); }).hide((perk3 != null) ? perk3.getToHide() : null)); - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); - itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.common.back.lore")); - }, true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); List loreInfo = TranslationManager.translationLore("feature.city.mayor.menu.common.more_info.lore"); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorVoteMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorVoteMenu.java index 53e326b81..785018e49 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorVoteMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MayorVoteMenu.java @@ -2,10 +2,10 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.sub.mayor.managers.MayorManager; @@ -165,15 +165,9 @@ private int getVotePercentage(int vote, int totalVotes) { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.vote.button.close")); - }).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.vote.button.prev")); - }).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.vote.button.next")); - }).setNextPageButton()); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); List loreInfo = TranslationManager.translationLore("feature.city.mayor.menu.common.more_info.lore"); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MoreInfoMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MoreInfoMenu.java index f07b9c2e0..1ec5ebad2 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MoreInfoMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/MoreInfoMenu.java @@ -75,7 +75,7 @@ public void onClose(InventoryCloseEvent event) { itemMeta.setEnchantmentGlintOverride(phase == 2); })); - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.common.back.name")), true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorCreateMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorCreateMenu.java index cbd845880..af0482c8c 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorCreateMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorCreateMenu.java @@ -10,6 +10,7 @@ import fr.openmc.core.features.city.sub.mayor.managers.MayorManager; import fr.openmc.core.features.city.sub.mayor.menu.MayorElectionMenu; import fr.openmc.core.features.city.sub.mayor.perks.Perks; +import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; @@ -93,14 +94,10 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk1); }) .hide((perk1 != null) ? perk1.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk1", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk1", perk1, perk2, perk3, type).open())); - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); - itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.create.back.election")); - }, true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); } else if (type == MenuType.CANDIDATE) { canConfirmPerk = perk2 != null && perk3 != null; @@ -120,9 +117,8 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk2); }) .hide((perk2 != null) ? perk2.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk2", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk2", perk1, perk2, perk3, type).open())); ItemStack iaPerk3 = (perk3 != null) ? perk3.getItemStack() : ItemStack.of(Material.DEAD_BRAIN_CORAL_BLOCK); Component namePerk3 = (perk3 != null) ? TranslationManager.translation(perk3.getNameKey()) : @@ -140,17 +136,14 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk3); }) .hide((perk3 != null) ? perk3.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk3", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk3", perk1, perk2, perk3, type).open())); inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.create.back.election")); - }).setOnClick(inventoryClickEvent -> { - MayorElectionMenu menu = new MayorElectionMenu(player); - menu.open(); - })); + }).setOnClick(_ -> + new MayorElectionMenu(player).open())); } else if (type == MenuType.OWNER) { canConfirmPerk = perk1 != null && perk2 != null && perk3 != null; @@ -170,9 +163,8 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk1); }) .hide((perk1 != null) ? perk1.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk1", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk1", perk1, perk2, perk3, type).open())); ItemStack iaPerk2 = (perk2 != null) ? perk2.getItemStack() : ItemStack.of(Material.DEAD_BRAIN_CORAL_BLOCK); Component namePerk2 = (perk2 != null) ? TranslationManager.translation(perk2.getNameKey()) : @@ -190,9 +182,8 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk2); }) .hide((perk2 != null) ? perk2.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk2", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk2", perk1, perk2, perk3, type).open())); ItemStack iaPerk3 = (perk3 != null) ? perk3.getItemStack() : ItemStack.of(Material.DEAD_BRAIN_CORAL_BLOCK); Component namePerk3 = (perk3 != null) ? TranslationManager.translation(perk3.getNameKey()) : @@ -210,38 +201,35 @@ public void onClose(InventoryCloseEvent event) { itemMeta.lore(lorePerk3); }) .hide((perk3 != null) ? perk3.getToHide() : null) - .setOnClick(inventoryClickEvent -> { - new PerkChoiceMenu(player, "perk3", perk1, perk2, perk3, type).open(); - })); + .setOnClick(_ -> + new PerkChoiceMenu(player, "perk3", perk1, perk2, perk3, type).open())); inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.create.back.city")); - }).setOnClick(inventoryClickEvent -> { - CityMenu menu = new CityMenu(player); - menu.open(); - })); + }).setOnClick(_ -> + new CityMenu(player).open())); } else { canConfirmPerk = false; } - Material matConfirm; + CustomItem ciConfirm; Component nameConfirm; List loreConfirm; if (canConfirmPerk) { - matConfirm = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:accept_btn").getBest().getType(); + ciConfirm = OMCRegistry.CUSTOM_ITEMS.ACCEPT_BTN; nameConfirm = TranslationManager.translation("feature.city.mayor.menu.create.confirm.name.ready").color(NamedTextColor.GREEN); loreConfirm = TranslationManager.translationLore("feature.city.mayor.menu.create.confirm.lore.ready"); } else { - matConfirm = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest().getType(); + ciConfirm = OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN; nameConfirm = TranslationManager.translation("feature.city.mayor.menu.create.confirm.name.blocked").color(NamedTextColor.RED); loreConfirm = TranslationManager.translationLore("feature.city.mayor.menu.create.confirm.lore.blocked"); } - inventory.put(52, new ItemMenuBuilder(this, matConfirm, itemMeta -> { + inventory.put(52, new ItemMenuBuilder(this, ciConfirm, itemMeta -> { itemMeta.itemName(nameConfirm); itemMeta.lore(loreConfirm); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { if (canConfirmPerk) { if (type == MenuType.OWNER_1) { MayorManager.put1Perk(CityManager.getPlayerCity(player.getUniqueId()), perk1); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorModifyMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorModifyMenu.java index f6e8b51be..aea75af2e 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorModifyMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/MayorModifyMenu.java @@ -11,7 +11,6 @@ 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.format.NamedTextColor; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.inventory.InventoryClickEvent; @@ -84,10 +83,7 @@ public void onClose(InventoryCloseEvent event) { new MayorColorMenu(player, null, null, null, "change", null).open(); })); - inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("feature.city.mayor.menu.common.back.name").color(NamedTextColor.GREEN)); - itemMeta.lore(TranslationManager.translationLore("feature.city.mayor.menu.modify.back.lore")); - }, true)); + inventory.put(46, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/PerkChoiceMenu.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/PerkChoiceMenu.java index a2ca9e52f..0f926cf85 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/PerkChoiceMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/menu/create/PerkChoiceMenu.java @@ -2,6 +2,7 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; @@ -189,18 +190,14 @@ public List getItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { + map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.perk_choice.button.back")); }).setOnClick(inventoryClickEvent -> { new MayorCreateMenu(getOwner(), perk1, perk2, perk3, type).open(); })); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.perk_choice.button.prev")); - }).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { - itemMeta.displayName(TranslationManager.translation("feature.city.mayor.menu.perk_choice.button.next")); - }).setNextPageButton()); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/Perks.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/Perks.java index f77ff7689..049b4853a 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/Perks.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/Perks.java @@ -2,6 +2,7 @@ import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.registries.DreamItemRegistry; +import fr.openmc.core.registry.items.CustomItem; import io.papermc.paper.datacomponent.DataComponentType; import io.papermc.paper.datacomponent.DataComponentTypes; import lombok.Getter; @@ -83,7 +84,7 @@ public enum Perks { 0, "feature.city.mayor.perk.ayweniter.name", "feature.city.mayor.perk.ayweniter.lore", - OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest() + OMCRegistry.CUSTOM_ITEMS.AYWENITE ), GPS_TRACKER( 9, @@ -166,7 +167,7 @@ public enum Perks { 0, "feature.city.mayor.perk.great_dream.name", "feature.city.mayor.perk.great_dream.lore", - DreamItemRegistry.getByName("somnifere").getBest() + DreamItemRegistry.SOMNIFERE ), CHAOS_DREAM( 18, @@ -175,7 +176,7 @@ public enum Perks { 24 * 60 * 60 * 1000L, // 1 jour "feature.city.mayor.perk.chaos_dream.name", "feature.city.mayor.perk.chaos_dream.lore", - DreamItemRegistry.getByName("singularity").getBest() + DreamItemRegistry.SINGULARITY ) ; @@ -198,4 +199,15 @@ public enum Perks { this.itemStack = itemStack; this.toHide = toHide; } + + Perks(int id, PerkType type, PerkCategory category, long cooldown, @NotNull String nameKey, String loreKey, CustomItem customItem, DataComponentType... toHide) { + this.id = id; + this.type = type; + this.category = category; + this.cooldown = cooldown; + this.nameKey = nameKey; + this.loreKey = loreKey; + this.itemStack = customItem.getBest(); + this.toHide = toHide; + } } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java index 45c1a47ad..32ef6bc04 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/basic/AyweniterPerk.java @@ -46,7 +46,7 @@ public void onBlockBreak(BlockBreakEvent event) { if (!PerkManager.hasPerk(playerCity.getMayor(), Perks.AYWENITER.getId())) return; if (block.getType() == Material.STONE) { - ItemStack ayweniteItem = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack ayweniteItem = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); ayweniteItem.setAmount(2); player.getInventory().addItem(ayweniteItem); player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 10.0F, 0.6F); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/IdyllicRain.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/IdyllicRain.java index 35b579567..f161d081c 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/IdyllicRain.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/IdyllicRain.java @@ -61,7 +61,7 @@ public void run() { Location dropLoc = new Location(world, x + 0.5, y, z + 0.5); - ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); ItemMeta meta = aywenite.getItemMeta(); meta.getPersistentDataContainer().set(cityAyweniteKey, PersistentDataType.STRING, city.getUniqueId().toString()); aywenite.setItemMeta(meta); @@ -98,7 +98,7 @@ public void onItemPickup(EntityPickupItemEvent event) { event.setCancelled(true); - ItemStack cleanAywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack cleanAywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); cleanAywenite.setAmount(item.getAmount()); event.getItem().remove(); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/ImpotCollection.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/ImpotCollection.java index eb6150ad5..3e832c0fc 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/ImpotCollection.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/ImpotCollection.java @@ -57,10 +57,10 @@ public static void spawnZombies(Player player, City city) { EntityEquipment equipment = zombie.getEquipment(); if (equipment != null) { - equipment.setHelmet(OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_helmet").getBest()); - equipment.setChestplate(OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_chestplate").getBest()); - equipment.setLeggings(OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_leggings").getBest()); - equipment.setBoots(OMCRegistry.CUSTOM_ITEMS.get("omc_items:suit_boots").getBest()); + equipment.setHelmet(OMCRegistry.CUSTOM_ITEMS.SUIT_HELMET.getBest()); + equipment.setChestplate(OMCRegistry.CUSTOM_ITEMS.SUIT_CHESTPLATE.getBest()); + equipment.setLeggings(OMCRegistry.CUSTOM_ITEMS.SUIT_LEGGINGS.getBest()); + equipment.setBoots(OMCRegistry.CUSTOM_ITEMS.SUIT_BOOTS.getBest()); } zombie.setShouldBurnInDay(false); diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/MineralRushPerk.java b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/MineralRushPerk.java index 6f8e6fbb3..fe32887c9 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/MineralRushPerk.java +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/event/MineralRushPerk.java @@ -119,6 +119,6 @@ public void onAyweniteBreak(CustomBlockBreakEvent event) { Block block = event.getBlock(); - block.getWorld().dropItemNaturally(block.getLocation(), OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest()); + block.getWorld().dropItemNaturally(block.getLocation(), OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest()); } } diff --git a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/readme.md b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/readme.md index 9c0f456c6..334fb2611 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/readme.md +++ b/src/main/java/fr/openmc/core/features/city/sub/mayor/perks/readme.md @@ -35,7 +35,7 @@ Il devra être un int, nom, un string, description, une liste de components itemstack, un itemstack : - ItemStack.of(Material) -- OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), un CustomItem d'ItemAdder +- OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), un CustomItem d'ItemAdder type de perk, PerkEvent donc soit un BASIC et EVENT Exemple d'une Réforme basique : @@ -92,7 +92,7 @@ public class AyweniterPerk implements Listener { if (block.getType() == Material.STONE) { if (random.nextDouble() < DROP_CHANCE) { - ItemStack ayweniteItem = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack ayweniteItem = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); ayweniteItem.setAmount(2); player.getInventory().addItem(ayweniteItem); player.playSound(player.getEyeLocation(), Sound.BLOCK_AMETHYST_BLOCK_RESONATE, 10.0F, 0.6F); diff --git a/src/main/java/fr/openmc/core/features/city/sub/milestone/CityLevels.java b/src/main/java/fr/openmc/core/features/city/sub/milestone/CityLevels.java index b825bfcb2..1753c8d3e 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/milestone/CityLevels.java +++ b/src/main/java/fr/openmc/core/features/city/sub/milestone/CityLevels.java @@ -14,6 +14,7 @@ import fr.openmc.core.features.city.sub.statistics.CityStatisticsManager; import fr.openmc.core.features.city.sub.war.WarManager; import fr.openmc.core.features.economy.EconomyManager; +import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.TranslationManager; import lombok.Getter; import net.kyori.adventure.text.Component; @@ -73,7 +74,7 @@ public enum CityLevels { ), new TemplateRequirement( city -> city.getLaw().getWarp() != null, - city -> OMCRegistry.CUSTOM_ITEMS.get("omc_items:warp_stick").getBest(), + city -> OMCRegistry.CUSTOM_ITEMS.WARP_STICK.getBest(), (city, ignore) -> TranslationManager.translation("feature.city.levels.requirements.setwarp") ), new ItemDepositRequirement(Material.GOLD_INGOT, 128) @@ -217,16 +218,16 @@ public enum CityLevels { ); } ), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), 128), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.AYWENITE, 128), new ItemDepositRequirement(Material.GRAY_WOOL, 32), new ItemDepositRequirement(Material.GLASS, 128), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:courgette").getBest(), 8), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.COURGETTE, 8), new EventTemplateRequirement( (city, scope) -> Objects.requireNonNull(CityStatisticsManager .getOrCreateStat(city.getUniqueId(), scope)) .asInt() >= 1, - city -> OMCRegistry.CUSTOM_ITEMS.get("omc_blocks:urne").getBest(), + city -> OMCRegistry.CUSTOM_ITEMS.URNE.getBest(), (city, level, scope) -> TranslationManager.translation("feature.city.levels.requirements.craft_urne"), "craft_urne", @@ -234,7 +235,7 @@ public enum CityLevels { (event, scope) -> { CraftItemEvent eventCraft = (CraftItemEvent) event; ItemStack item = eventCraft.getCurrentItem(); - if (item == null || !item.isSimilar(OMCRegistry.CUSTOM_ITEMS.get("omc_blocks:urne").getBest())) + if (item == null || !ItemUtils.isSimilar(item, OMCRegistry.CUSTOM_ITEMS.URNE.getBest())) return; Player player = (Player) eventCraft.getWhoClicked(); @@ -264,7 +265,7 @@ public enum CityLevels { List.of( new TemplateRequirement( city -> NPCManager.hasNPCS(city.getUniqueId()), - city -> OMCRegistry.CUSTOM_ITEMS.get("omc_blocks:urne").getBest(), + city -> OMCRegistry.CUSTOM_ITEMS.URNE.getBest(), (city, level) -> TranslationManager.translation("feature.city.levels.requirements.place_urne") ), @@ -315,7 +316,7 @@ public enum CityLevels { ); } ), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:the_mixture").getBest(), 32) + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.THE_MIXTURE, 32) ), List.of( FeaturesRewards.LEVEL_5, @@ -388,7 +389,7 @@ public enum CityLevels { new ItemDepositRequirement(Material.STONE_BRICKS, 400), new ItemDepositRequirement(Material.BLACK_CONCRETE, 184), new ItemDepositRequirement(Material.WHITE_CONCRETE, 64), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:courgette").getBest(), 98), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.COURGETTE, 98), new ItemDepositRequirement(Material.DIAMOND, 128) ), List.of( @@ -458,7 +459,7 @@ public enum CityLevels { Component.text(6) ) ), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), 400), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.AYWENITE, 400), new ItemDepositRequirement(Material.DIAMOND_SWORD, 10), new ItemDepositRequirement(Material.TNT, 64), new ItemDepositRequirement(Material.FLINT_AND_STEEL, 16), @@ -630,7 +631,7 @@ public enum CityLevels { new ItemDepositRequirement(Material.DIAMOND, 300), new ItemDepositRequirement(Material.CYAN_CONCRETE, 200), new ItemDepositRequirement(Material.DRIED_GHAST, 5), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:kebab").getBest(), 128) + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.KEBAB, 128) ), List.of( FeaturesRewards.LEVEL_9, @@ -704,8 +705,8 @@ public enum CityLevels { Component.text(9) ) ), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_blocks:aywenite_block").getBest(), 64), - new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.get("omc_contest:contest_shell").getBest(), 128), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.AYWENITE_BLOCK, 64), + new ItemDepositRequirement(OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL, 128), new ItemDepositRequirement(Material.SCULK, 1028) ), List.of( diff --git a/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/CityMilestoneMenu.java b/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/CityMilestoneMenu.java index c1c5b49a6..4aba05214 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/CityMilestoneMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/CityMilestoneMenu.java @@ -116,9 +116,7 @@ public void onInventoryClick(InventoryClickEvent click) { } } - inventory.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.itemName( - TranslationManager.translation("messages.menus.back") - ), true)); + inventory.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); inventory.put(49, new ItemMenuBuilder(this, Material.BARRIER, meta -> meta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); diff --git a/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/LevelMilestoneMenu.java b/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/LevelMilestoneMenu.java index 2f5bf339c..95d79a9c1 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/LevelMilestoneMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/milestone/menu/LevelMilestoneMenu.java @@ -126,16 +126,14 @@ public Map getButtons() { itemMeta.lore(loreRewards); })); - buttons.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - }, true)); + buttons.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); buttons.put(49, new ItemMenuBuilder(this, Material.BARRIER, meta -> meta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - buttons.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { + buttons.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page")); }).setPreviousPageButton()); - buttons.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { + buttons.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.next_page")); }).setNextPageButton()); diff --git a/src/main/java/fr/openmc/core/features/city/sub/milestone/requirements/ItemDepositRequirement.java b/src/main/java/fr/openmc/core/features/city/sub/milestone/requirements/ItemDepositRequirement.java index cee89c0da..78613e1b7 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/milestone/requirements/ItemDepositRequirement.java +++ b/src/main/java/fr/openmc/core/features/city/sub/milestone/requirements/ItemDepositRequirement.java @@ -5,6 +5,7 @@ import fr.openmc.core.features.city.sub.milestone.CityLevels; import fr.openmc.core.features.city.sub.milestone.CityRequirement; import fr.openmc.core.features.city.sub.statistics.CityStatisticsManager; +import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -57,6 +58,17 @@ public ItemDepositRequirement(ItemStack itemType, int amountRequired) { this.amountRequired = amountRequired; } + /** + * Crée une condition de dépôt en spécifiant directement un CustomItem. + * + * @param customItem l'CustomItem requis + * @param amountRequired le nombre d'items requis + */ + public ItemDepositRequirement(CustomItem customItem, int amountRequired) { + this.itemType = customItem.getBest(); + this.amountRequired = amountRequired; + } + /** * Vérifie si la condition de dépôt est satisfaite pour la ville. * diff --git a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankDetailsMenu.java b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankDetailsMenu.java index 864a2722f..8dc18e28b 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankDetailsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankDetailsMenu.java @@ -136,7 +136,7 @@ private Map createRank() { map.put(8, new ItemMenuBuilder(this, this.newRank.getIcon(), itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.icon.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.icon.lore.create")); - }).setOnClick(inventoryClickEvent -> new CityRankIconMenu(getOwner(), city, 0, oldRank, newRank, null).open()) + }).setOnClick(_ -> new CityRankIconMenu(getOwner(), city, 0, oldRank, newRank, null).open()) .hide(getDataComponentType())); map.put(13, new ItemMenuBuilder(this, Material.WRITABLE_BOOK, itemMeta -> { @@ -148,18 +148,18 @@ private Map createRank() { "feature.city.rank.menu.details.perms.lore.create", permValue.color(NamedTextColor.AQUA).decoration(TextDecoration.ITALIC, false) )); - }).setOnClick(inventoryClickEvent -> new CityRankPermsMenu(getOwner(), oldRank, newRank, true, 0).open())); + }).setOnClick(_ -> new CityRankPermsMenu(getOwner(), oldRank, newRank, true, 0).open())); - map.put(18, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), itemMeta -> { + map.put(18, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.cancel_create.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.cancel_create.lore")); - }).setOnClick(inventoryClickEvent -> getOwner().closeInventory())); + }).setOnClick(_ -> getOwner().closeInventory())); if (canManageRanks) { - map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:accept_btn").getBest(), itemMeta -> { + map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ACCEPT_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.create.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.create.lore")); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { city.createRank(newRank.validate(getOwner())); getOwner().closeInventory(); MessagesManager.sendMessage(getOwner(), TranslationManager.translation( @@ -226,7 +226,7 @@ private Map createRank() { map.put(4, new ItemMenuBuilder(this, Material.OAK_SIGN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.name.title")); itemMeta.lore(loreName); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { if (!canManageRanks) return; CityRankAction.renameRankFromMenu(getOwner(), oldRank, newRank); @@ -249,7 +249,7 @@ private Map createRank() { map.put(8, new ItemMenuBuilder(this, this.newRank.getIcon(), itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.icon.title")); itemMeta.lore(loreIcon); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { if (!canManageRanks) return; new CityRankIconMenu(getOwner(), city, 0, oldRank, newRank, null).open(); @@ -279,31 +279,31 @@ private Map createRank() { map.put(13, new ItemMenuBuilder(this, Material.WRITABLE_BOOK, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.perms.title")); itemMeta.lore(lorePerm); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { if (!canManageRanks) new CityRankPermsMenu(getOwner(), oldRank, newRank, false, 0).open(); else new CityRankPermsMenu(getOwner(), oldRank, newRank, true, 0).open(); })); - map.put(18, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:refuse_btn").getBest(), itemMeta -> { + map.put(18, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.REFUSE_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.cancel_edit.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.cancel_edit.lore")); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { new CityRanksMenu(getOwner(), city).open(); MessagesManager.sendMessage(getOwner(), TranslationManager.translation("feature.city.rank.update.cancelled"), Prefix.CITY, MessageType.SUCCESS, false); })); if (canManageRanks) { - map.put(22, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:minus_btn").getBest(), itemMeta -> { + map.put(22, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.MINUS_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.delete.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.delete.lore")); - }).setOnClick(inventoryClickEvent -> + }).setOnClick(_ -> CityRankAction.deleteRank(getOwner(), oldRank.getName()) )); - map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:accept_btn").getBest(), itemMeta -> { + map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ACCEPT_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.details.save.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.details.save.lore")); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { city.updateRank(this.oldRank, newRank.validate(getOwner())); new CityRanksMenu(getOwner(), city).open(); MessagesManager.sendMessage(getOwner(), TranslationManager.translation( diff --git a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankIconMenu.java b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankIconMenu.java index d5b6b4099..859aff5c8 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankIconMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankIconMenu.java @@ -1,6 +1,5 @@ package fr.openmc.core.features.city.sub.rank.menus; -import dev.lone.itemsadder.api.CustomStack; import fr.openmc.api.input.dialog.DialogInput; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.utils.InventorySize; @@ -101,21 +100,20 @@ public List getItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.BARRIER - , itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + map.put(45, new ItemMenuBuilder(this, Material.BARRIER, true)); if (hasPreviousPage()) - map.put(48, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setOnClick(inventoryClickEvent -> { + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setOnClick(inventoryClickEvent -> { new CityRankIconMenu(getOwner(), city, page - 1, oldRank, newRank, filter).open(); })); if (hasNextPage()) - map.put(50, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_next_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setOnClick(inventoryClickEvent -> { + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setOnClick(inventoryClickEvent -> { new CityRankIconMenu(getOwner(), city, page + 1, oldRank, newRank, filter).open(); })); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_search").getBest(), itemMeta -> { + map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_SEARCH, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.icon.search.title")); itemMeta.lore(TranslationManager.translationLore("feature.city.rank.menu.icon.search.lore")); }).setOnClick(event -> { diff --git a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankMemberMenu.java b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankMemberMenu.java index 8aa7dd301..3acb2bf29 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankMemberMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankMemberMenu.java @@ -1,9 +1,9 @@ package fr.openmc.core.features.city.sub.rank.menus; -import dev.lone.itemsadder.api.CustomStack; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; +import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityPermission; import fr.openmc.core.features.city.sub.rank.CityRankCondition; @@ -102,10 +102,10 @@ public List getItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(48, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_back_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, CustomStack.getInstance("_iainternal:icon_next_orange") - .getItemStack(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, + itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankPermsMenu.java b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankPermsMenu.java index 74ec44b09..1ece7c6d4 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankPermsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRankPermsMenu.java @@ -98,22 +98,22 @@ public List getItems() { public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> { + map.put(45, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.back")); itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }).setOnClick(inventoryClickEvent -> new CityRankDetailsMenu(getOwner(), city, oldRank, newRank).open())); + }).setOnClick(_ -> new CityRankDetailsMenu(getOwner(), city, oldRank, newRank).open())); if (hasPreviousPage()) { - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> { + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page")); itemMeta.lore(List.of(TranslationManager.translation("messages.menus.previous_page_lore"))); - }).setOnClick(inventoryClickEvent -> new CityRankPermsMenu(getOwner(), oldRank, newRank, canEdit, page - 1).open())); + }).setOnClick(_ -> new CityRankPermsMenu(getOwner(), oldRank, newRank, canEdit, page - 1).open())); } if (hasNextPage()) { - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> { + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.next_page")); itemMeta.lore(List.of(TranslationManager.translation("messages.menus.next_page_lore"))); - }).setOnClick(inventoryClickEvent -> new CityRankPermsMenu(getOwner(), oldRank, newRank, canEdit, page + 1).open())); + }).setOnClick(_ -> new CityRankPermsMenu(getOwner(), oldRank, newRank, canEdit, page + 1).open())); } if (canEdit) { diff --git a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRanksMenu.java b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRanksMenu.java index 285bc4a9c..602b80b15 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRanksMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/rank/menus/CityRanksMenu.java @@ -93,7 +93,7 @@ public void onClose(InventoryCloseEvent event) { ).color(NamedTextColor.YELLOW).decorate(TextDecoration.BOLD) )); } - ).setOnClick(inventoryClickEvent -> new CityRankDetailsMenu(player, city, rank).open()) + ).setOnClick(_ -> new CityRankDetailsMenu(player, city, rank).open()) .hide(getDataComponentType())); if (i >= 17) break; i++; @@ -104,7 +104,7 @@ public void onClose(InventoryCloseEvent event) { itemMeta -> { itemMeta.displayName(TranslationManager.translation("messages.menus.back")); itemMeta.lore(List.of(TranslationManager.translation("messages.menus.back_lore"))); - }).setOnClick(inventoryClickEvent -> new CityMenu(getOwner()).open())); + }).setOnClick(_ -> new CityMenu(getOwner()).open())); if (canAssignRanks) { @@ -116,7 +116,7 @@ public void onClose(InventoryCloseEvent event) { itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.list.assign.title")); itemMeta.lore(loreAssignRanks); - }).setOnClick(inventoryClickEvent -> { + }).setOnClick(_ -> { if (city.getRanks().isEmpty()) return; new CityRankMemberMenu(player, city).open(); @@ -127,11 +127,11 @@ public void onClose(InventoryCloseEvent event) { if (canManageRanks) { List loreCreateRank = TranslationManager.translationLore("feature.city.rank.menu.list.create.lore"); - map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:plus_btn").getBest(), + map.put(26, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.PLUS_BTN, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.rank.menu.list.create.title")); itemMeta.lore(loreCreateRank); - }).setOnClick(inventoryClickEvent -> CityRankAction.beginCreateRank(player)) + }).setOnClick(_ -> CityRankAction.beginCreateRank(player)) ); } return map; diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/MoreInfoMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/MoreInfoMenu.java index ab7f78f9e..7a7022f7c 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/MoreInfoMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/MoreInfoMenu.java @@ -85,7 +85,7 @@ public void onInventoryClick(InventoryClickEvent click) { itemMeta.lore(lore2); })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/MainWarMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/MainWarMenu.java index ad61f9785..2aada9ea4 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/MainWarMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/MainWarMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.sub.war.menu.main; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityManager; import fr.openmc.core.features.city.CityPermission; @@ -164,9 +164,9 @@ public List getTakableSlot() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); List loreInfo = TranslationManager.translationLore("feature.city.war.menu.more_info.lore"); diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarCityDetailsMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarCityDetailsMenu.java index efbb644ed..44ffff6c6 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarCityDetailsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarCityDetailsMenu.java @@ -151,10 +151,7 @@ public void onInventoryClick(InventoryClickEvent inventoryClickEvent) { city.getType().getDisplayName() ).color(NamedTextColor.GRAY)))); - map.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("messages.menus.back_lore")); - }, true)); + map.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarPlayerListMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarPlayerListMenu.java index 9b8cc7263..680a76837 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarPlayerListMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/main/WarPlayerListMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.sub.war.menu.main; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityPermission; import fr.openmc.core.features.city.sub.mayor.managers.MayorManager; @@ -96,13 +96,10 @@ public List getTakableSlot() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.city.war.menu.players.back_lore")); - }, true)); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(45, new ItemMenuBuilder(this, Material.ARROW, true)); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseParticipantsMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseParticipantsMenu.java index d8ac26451..94bfa54db 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseParticipantsMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseParticipantsMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.sub.war.menu.selection; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.CityPermission; import fr.openmc.core.features.city.sub.mayor.managers.MayorManager; @@ -137,17 +137,9 @@ public Map getButtons() { Map map = new HashMap<>(); Player player = getOwner(); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), meta -> { - meta.displayName(TranslationManager.translation("messages.menus.previous_page")); - }).setPreviousPageButton()); - - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), meta -> { - meta.displayName(TranslationManager.translation("messages.menus.close")); - }).setCloseButton()); - - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), meta -> { - meta.displayName(TranslationManager.translation("messages.menus.next_page")); - }).setNextPageButton()); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); map.put(53, new ItemMenuBuilder(this, selected.size() == count ? Material.LIME_CONCRETE : Material.RED_CONCRETE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.city.war.menu.participants.confirm.title") diff --git a/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseSizeMenu.java b/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseSizeMenu.java index f86c1f94d..abe59e440 100644 --- a/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseSizeMenu.java +++ b/src/main/java/fr/openmc/core/features/city/sub/war/menu/selection/WarChooseSizeMenu.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.city.sub.war.menu.selection; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.city.City; import fr.openmc.core.features.city.sub.war.actions.WarActions; import fr.openmc.core.features.city.sub.war.menu.MoreInfoMenu; @@ -19,7 +19,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class WarChooseSizeMenu extends PaginatedMenu { @@ -86,10 +89,9 @@ public List getTakableSlot() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); - + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); List loreInfo = TranslationManager.translationLore("feature.city.war.menu.more_info.lore"); map.put(53, new ItemMenuBuilder(this, Material.BOOK, itemMeta -> { diff --git a/src/main/java/fr/openmc/core/features/credits/Credits.java b/src/main/java/fr/openmc/core/features/credits/Credits.java index a3a3fa95d..12396bd39 100644 --- a/src/main/java/fr/openmc/core/features/credits/Credits.java +++ b/src/main/java/fr/openmc/core/features/credits/Credits.java @@ -9,6 +9,7 @@ import fr.openmc.core.features.city.sub.mascots.MascotsManager; import fr.openmc.core.features.displays.holograms.HologramLoader; import fr.openmc.core.features.dream.DreamManager; +import fr.openmc.core.features.dream.registries.DreamItemRegistry; import fr.openmc.core.features.economy.EconomyManager; import fr.openmc.core.features.events.contents.weeklyevents.WeeklyEventsManager; import fr.openmc.core.features.events.contents.weeklyevents.contents.contest.managers.ContestManager; @@ -23,6 +24,7 @@ import fr.openmc.core.features.settings.PlayerSettingsManager; import fr.openmc.core.features.tickets.TicketManager; import fr.openmc.core.features.tpa.TPAManager; +import fr.openmc.core.registry.items.CustomItem; import lombok.Getter; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; @@ -36,27 +38,27 @@ public enum Credits { ADMINSHOP(Material.GOLD_INGOT, "feature.credits.feature.adminshop", AdminShopManager.class), ANIMATIONS(Material.AMETHYST_BLOCK, "feature.credits.feature.animations", AnimationsManager.class), CUBE(Material.LAPIS_BLOCK, "feature.credits.feature.cube", Set.of("iambibi_")), - CITY(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_chateau").getBest(), "feature.credits.feature.city", CityManager.class), + CITY(OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_AXENQ, "feature.credits.feature.city", CityManager.class), DREAM(Material.SCULK, "feature.credits.feature.dream", DreamManager.class), - DREAM_MILESTONE(OMCRegistry.CUSTOM_ITEMS.get("omc_dream:singularity").getBest(), "feature.credits.feature.dream_milestone", Set.of("gab400", "Rylo42 (histoire et dialogues)")), + DREAM_MILESTONE(DreamItemRegistry.SINGULARITY, "feature.credits.feature.dream_milestone", Set.of("gab400", "Rylo42 (histoire et dialogues)")), MASCOTS(Material.ZOMBIE_SPAWN_EGG, "feature.credits.feature.mascots", MascotsManager.class), - MAYOR(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bank").getBest(), "feature.credits.feature.mayor", Set.of("iambibi_"), Set.of("Gexary")), + MAYOR(OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BANK, "feature.credits.feature.mayor", Set.of("iambibi_"), Set.of("Gexary")), CITY_MILESTONE(Material.NETHER_STAR, "feature.credits.feature.city_milestone", Set.of("iambibi_")), WAR(Material.IRON_SWORD, "feature.credits.feature.war", Set.of("iambibi_")), NOTATION(Material.PAPER, "feature.credits.feature.notation", Set.of("iambibi_")), RANK(Material.VAULT, "feature.credits.feature.rank", Set.of("gab400")), - CONTEST(OMCRegistry.CUSTOM_ITEMS.get("omc_contest:contest_shell").getBest(), "feature.credits.feature.contest", ContestManager.class), + CONTEST(OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL, "feature.credits.feature.contest", ContestManager.class), WEEKLY_EVENTS(Material.FIREWORK_ROCKET, "feature.credits.feature.weekly_events", WeeklyEventsManager.class), HOLOGRAMS(Material.OAK_HANGING_SIGN, "feature.credits.feature.holograms", HologramLoader.class), ECONOMY(Material.GOLD_BLOCK, "feature.credits.feature.economy", EconomyManager.class), FRIENDS(Material.EMERALD_BLOCK, "feature.credits.feature.friends", FriendManager.class), - HOMES(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_maison").getBest(), "feature.credits.feature.homes", HomesManager.class), + HOMES(OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_MAISON, "feature.credits.feature.homes", HomesManager.class), LEADERBOARD(Material.ANCIENT_DEBRIS, "feature.credits.feature.leaderboard", LeaderboardManager.class), MAILBOX(Material.PAPER, "feature.credits.feature.mailbox", MailboxManager.class), - MAINMENU(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_information").getBest(), "feature.credits.feature.mainmenu", MainMenu.class), + MAINMENU(OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_INFORMATION, "feature.credits.feature.mainmenu", MainMenu.class), MILESTONES(Material.SEA_LANTERN, "feature.credits.feature.milestones", MilestonesManager.class), PRIVATEMESSAGE(Material.ZOMBIE_HEAD, "feature.credits.feature.privatemessage", PrivateMessageManager.class), - QUEST(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_chateau").getBest(), "feature.credits.feature.quest", QuestsManager.class), + QUEST(OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_CHATEAU, "feature.credits.feature.quest", QuestsManager.class), SETTINGS(Material.REDSTONE_TORCH, "feature.credits.feature.settings", PlayerSettingsManager.class), TICKETS(Material.BOOK, "feature.credits.feature.tickets", TicketManager.class), TPA(Material.ENDER_PEARL, "feature.credits.feature.tpa", TPAManager.class), @@ -110,6 +112,21 @@ public enum Credits { this.builders = contributors[2]; } + /** + * Constructeur qui récupère automatiquement les contributeurs de la classe Feature via annotation. + * @param customItem Icône du crédit (CustomItem) + * @param featureKey La translation key de la feature + * @param featureClass Classe Feature (ex: AdminShopManager.class) + */ + Credits(CustomItem customItem, String featureKey, Class featureClass) { + this.icon = customItem.getBest(); + this.featureKey = featureKey; + var contributors = getContributorsFromClass(featureClass); + this.developpers = contributors[0]; + this.graphists = contributors[1]; + this.builders = contributors[2]; + } + Credits(Material icon, String featureKey, Set developpers) { this.icon = ItemStack.of(icon); this.developpers = developpers; @@ -126,6 +143,22 @@ public enum Credits { this.builders = Set.of(); } + Credits(CustomItem customItem, String featureKey, Set developpers) { + this.icon = customItem.getBest(); + this.developpers = developpers; + this.featureKey = featureKey; + this.graphists = Set.of(); + this.builders = Set.of(); + } + + Credits(CustomItem customItem, String featureKey, Set developpers, Set graphists) { + this.icon = customItem.getBest(); + this.featureKey = featureKey; + this.developpers = developpers; + this.graphists = graphists; + this.builders = Set.of(); + } + Credits(ItemStack icon, String featureKey, Set developpers, Set graphists) { this.icon = icon; this.featureKey = featureKey; @@ -142,6 +175,14 @@ public enum Credits { this.builders = Set.of(); } + Credits(CustomItem customItem, String featureKey, Set developpers, Set graphists, Set builders) { + this.icon = customItem.getBest(); + this.featureKey = featureKey; + this.developpers = developpers; + this.graphists = graphists; + this.builders = builders; + } + Credits(ItemStack icon, String featureKey, Set developpers, Set graphists, Set builders) { this.icon = icon; this.featureKey = featureKey; diff --git a/src/main/java/fr/openmc/core/features/credits/CreditsMenu.java b/src/main/java/fr/openmc/core/features/credits/CreditsMenu.java index 481272f42..498a70129 100644 --- a/src/main/java/fr/openmc/core/features/credits/CreditsMenu.java +++ b/src/main/java/fr/openmc/core/features/credits/CreditsMenu.java @@ -18,7 +18,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class CreditsMenu extends PaginatedMenu { @@ -87,8 +90,8 @@ public int getSizeOfItems() { public Map getButtons() { Map map = new HashMap<>(); - map.put(48, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange")).getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); + map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_NEXT_ORANGE, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); map.put(49, new ItemMenuBuilder(this, Material.BARRIER, meta -> { meta.displayName(TranslationManager.translation("feature.credits.menu.close")); }).setOnClick(e -> getOwner().closeInventory())); diff --git a/src/main/java/fr/openmc/core/features/dream/DreamDimensionManager.java b/src/main/java/fr/openmc/core/features/dream/DreamDimensionManager.java index d71ec72e5..02c8bb437 100644 --- a/src/main/java/fr/openmc/core/features/dream/DreamDimensionManager.java +++ b/src/main/java/fr/openmc/core/features/dream/DreamDimensionManager.java @@ -63,6 +63,8 @@ private static void setupDimension() { // ** SET WORLD BORDER AND TIME ** DREAM_WORLD.getWorldBorder().setSize(10000); DREAM_WORLD.setTime(18000); + + OMCLogger.infoFormatted("Dimension des rêves setup (gamerules, worldborder, time)"); } } @@ -90,7 +92,7 @@ public static void checkSeed() { if (saved == -1) { saveSeed(current); - seedChanged = false; + seedChanged = true; return; } diff --git a/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerObtainOrb.java b/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerObtainOrb.java index 90d7ed91f..e87f980b0 100644 --- a/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerObtainOrb.java +++ b/src/main/java/fr/openmc/core/features/dream/listeners/dream/PlayerObtainOrb.java @@ -40,7 +40,7 @@ public void onCraft(CraftItemEvent event) { if (dreamItem == null) return; if (!(event.getWhoClicked() instanceof Player player)) return; - if (!dreamItem.getId().equals("omc_dream:domination_orb")) return; + if (!dreamItem.getId().equals(DreamItemRegistry.DOMINATION_ORB.getId())) return; setProgressionOrb(player, SCULK_PLAINS_ORB, DreamBiome.SOUL_FOREST); @@ -54,7 +54,7 @@ public void onAltarCraft(AltarCraftingEvent event) { DreamItem item = event.getCraftedItem(); if (item == null) return; - if (!item.getId().equals("omc_dream:ame_orb")) return; + if (!item.getId().equals(DreamItemRegistry.SOUL_ORB.getId())) return; Player player = event.getPlayer(); @@ -73,7 +73,7 @@ public void onCloudOrbDispense(EntityPickupItemEvent event) { DreamItem dreamItem = DreamItemRegistry.getByItemStack(dispensed); if (dreamItem == null) return; - if (!dreamItem.getId().equals("omc_dream:cloud_orb")) return; + if (!dreamItem.getId().equals(DreamItemRegistry.CLOUD_ORB.getId())) return; setProgressionOrb(player, CLOUD_CASTLE_ORB, DreamBiome.MUD_BEACH); @@ -90,7 +90,7 @@ public void onMetalDetectorLoot(MetalDetectorLootEvent event) { DreamItem dreamItem = DreamItemRegistry.getByItemStack(item); if (dreamItem == null) continue; - if (!dreamItem.getId().equals("omc_dream:mud_orb")) continue; + if (!dreamItem.getId().equals(DreamItemRegistry.MUD_ORB.getId())) continue; setProgressionOrb(player, MUD_BEACH_ORB, DreamBiome.GLACITE_GROTTO); diff --git a/src/main/java/fr/openmc/core/features/dream/listeners/registry/DreamMobDamageListener.java b/src/main/java/fr/openmc/core/features/dream/listeners/registry/DreamMobDamageListener.java index d61fe1d11..f4c9dcfce 100644 --- a/src/main/java/fr/openmc/core/features/dream/listeners/registry/DreamMobDamageListener.java +++ b/src/main/java/fr/openmc/core/features/dream/listeners/registry/DreamMobDamageListener.java @@ -42,9 +42,9 @@ public void onPlayerDamage(EntityDamageByEntityEvent event) { if (!(damager instanceof LivingEntity livingEntity)) return; if (!CustomMobRegistry.isCustomMob(livingEntity)) return; - CustomMob customMob = OMCRegistry.CUSTOM_MOBS.getMob(livingEntity); + CustomMob customMob = OMCRegistry.CUSTOM_MOBS.getMob(livingEntity); if (customMob == null) return; - if (!(customMob instanceof DreamMob dreamMob)) return; + if (!(customMob instanceof DreamMob dreamMob)) return; event.setCancelled(true); if (MilestoneDialog.isInMilestoneDialog(p)) return; diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java index 70bebd142..b9db78c6b 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarManager.java @@ -89,7 +89,7 @@ public static void tryRitual(Player player, Location altarLoc) { if (recipe == null) return; - DreamItem soulOrb = DreamItemRegistry.getByName("soul"); + DreamItem soulOrb = DreamItemRegistry.SOUL; if (soulOrb == null) { MessagesManager.sendMessage(player, Component.text("Erreur : omc_dream:soul pas trouvé"), Prefix.DREAM, MessageType.ERROR, false); diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarRecipes.java b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarRecipes.java index 683a25424..02b4670de 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarRecipes.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/altar/AltarRecipes.java @@ -9,33 +9,33 @@ public enum AltarRecipes { SOUL_ORB( - DreamItemRegistry.getByName("domination_orb"), - DreamItemRegistry.getByName("ame_orb"), + DreamItemRegistry.DOMINATION_ORB, + DreamItemRegistry.SOUL_ORB, 20 ), SOUL_HELMET( - DreamItemRegistry.getByName("old_creaking_helmet"), - DreamItemRegistry.getByName("soul_helmet"), + DreamItemRegistry.OLD_CREAKING_HELMET, + DreamItemRegistry.SOUL_HELMET, 10 ), SOUL_CHESTPLATE( - DreamItemRegistry.getByName("old_creaking_chestplate"), - DreamItemRegistry.getByName("soul_chestplate"), + DreamItemRegistry.OLD_CREAKING_CHESTPLATE, + DreamItemRegistry.SOUL_CHESTPLATE, 10 ), SOUL_LEGGINGS( - DreamItemRegistry.getByName("old_creaking_leggings"), - DreamItemRegistry.getByName("soul_leggings"), + DreamItemRegistry.OLD_CREAKING_LEGGINGS, + DreamItemRegistry.SOUL_LEGGINGS, 10 ), SOUL_BOOTS( - DreamItemRegistry.getByName("old_creaking_boots"), - DreamItemRegistry.getByName("soul_boots"), + DreamItemRegistry.OLD_CREAKING_BOOTS, + DreamItemRegistry.SOUL_BOOTS, 10 ), SOUL_AXE( - DreamItemRegistry.getByName("old_creaking_axe"), - DreamItemRegistry.getByName("soul_axe"), + DreamItemRegistry.OLD_CREAKING_AXE, + DreamItemRegistry.SOUL_AXE, 15 ), ; diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java index ae7101d17..35ee802fc 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/blocksdrops/DreamBlocksDropsManager.java @@ -2,6 +2,7 @@ import fr.openmc.core.OMCPlugin; import fr.openmc.core.features.dream.registries.DreamItemRegistry; +import fr.openmc.core.registry.items.CustomItem; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; @@ -14,20 +15,20 @@ public class DreamBlocksDropsManager { public static void init() { OMCPlugin.registerEvents(new ChangeBlockDropsListener()); - registerCustomDrop(Material.SCULK, DreamItemRegistry.getByName("corrupted_sculk").getBest()); - registerCustomDrop(Material.PALE_OAK_WOOD, DreamItemRegistry.getByName("old_pale_oak").getBest()); - registerCustomDrop(Material.ACACIA_WOOD, DreamItemRegistry.getByName("old_pale_oak").getBest()); - registerCustomDrop(Material.CREAKING_HEART, DreamItemRegistry.getByName("creaking_heart").getBest()); - registerCustomDrop(Material.BLUE_ICE, DreamItemRegistry.getByName("glacite").getBest()); - registerCustomDrop(Material.DEEPSLATE_COAL_ORE, DreamItemRegistry.getByName("coal_burn").getBest()); - registerCustomDrop(Material.DEEPSLATE, DreamItemRegistry.getByName("hard_stone").getBest()); - registerCustomDrop(Material.SMOOTH_BASALT, DreamItemRegistry.getByName("hard_stone").getBest()); - registerCustomDrop(Material.CRAFTING_TABLE, DreamItemRegistry.getByName("crafting_table").getBest()); - registerCustomDrop(Material.CAMPFIRE, DreamItemRegistry.getByName("eternal_campfire").getBest()); + registerCustomDrop(Material.SCULK, DreamItemRegistry.CORRUPTED_SCULK); + registerCustomDrop(Material.PALE_OAK_WOOD, DreamItemRegistry.OLD_PALE_OAK_WOOD); + registerCustomDrop(Material.ACACIA_WOOD, DreamItemRegistry.OLD_PALE_OAK_WOOD); + registerCustomDrop(Material.CREAKING_HEART, DreamItemRegistry.CREAKING_HEART); + registerCustomDrop(Material.BLUE_ICE, DreamItemRegistry.GLACITE); + registerCustomDrop(Material.DEEPSLATE_COAL_ORE, DreamItemRegistry.BURN_COAL); + registerCustomDrop(Material.DEEPSLATE, DreamItemRegistry.HARD_STONE); + registerCustomDrop(Material.SMOOTH_BASALT, DreamItemRegistry.HARD_STONE); + registerCustomDrop(Material.CRAFTING_TABLE, DreamItemRegistry.CRAFTING_TABLE); + registerCustomDrop(Material.CAMPFIRE, DreamItemRegistry.ETERNAL_CAMPFIRE); } - public static void registerCustomDrop(Material mat, ItemStack item) { - customDrops.put(mat, item); + public static void registerCustomDrop(Material mat, CustomItem item) { + customDrops.put(mat, item.getBest()); } public static ItemStack getCustomDrop(Material mat) { diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/BossCloudSpawner.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/BossCloudSpawner.java index ee8a60f7c..959de194a 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/BossCloudSpawner.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/BossCloudSpawner.java @@ -1,8 +1,8 @@ package fr.openmc.core.features.dream.mecanism.cloudcastle; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.DreamUtils; +import fr.openmc.core.features.dream.registries.DreamMobsRegistry; import fr.openmc.core.features.dream.registries.mobs.Breezy; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -29,7 +29,7 @@ public static void replaceBlockWithBossCloudSpawner(Block block) { if (block.getState() instanceof TrialSpawner spawner) { TrialSpawnerConfiguration normal = spawner.getNormalConfiguration(); - normal.setSpawnedEntity(OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:breezy").getMobSnapshot()); + normal.setSpawnedEntity(DreamMobsRegistry.BREEZY.getMobSnapshot()); NamespacedKey lootKey = new NamespacedKey("openmc", "cloud_castle/boss_spawner"); LootTable lootTable = Bukkit.getLootTable(lootKey); diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/CloudVault.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/CloudVault.java index 6973fd271..20799e897 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/CloudVault.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/CloudVault.java @@ -1,10 +1,10 @@ package fr.openmc.core.features.dream.mecanism.cloudcastle; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.DreamUtils; import fr.openmc.core.features.dream.mecanism.rng.DreamRngLootEvent; import fr.openmc.core.features.dream.registries.DreamItemRegistry; +import fr.openmc.core.features.dream.registries.DreamLootTableRegistry; import fr.openmc.core.registry.loottable.CustomLootTable; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -19,15 +19,14 @@ import java.util.List; public class CloudVault implements Listener { - private final CustomLootTable CLOUD_VAULT_LOOT_TABLE = OMCRegistry.CUSTOM_LOOT_TABLES.get("omc_dream:cloud_vault"); + private final CustomLootTable CLOUD_VAULT_LOOT_TABLE = DreamLootTableRegistry.CLOUD_VAULT; public static void replaceBlockWithVault(Block block) { block.setType(Material.VAULT); if (block.getState() instanceof Vault vault) { - vault.setKeyItem(DreamItemRegistry.getByName("cloud_key").getBest()); - - vault.setDisplayedItem(DreamItemRegistry.getByName("cloud_key").getBest()); + vault.setKeyItem(DreamItemRegistry.CLOUD_KEY.getBest()); + vault.setDisplayedItem(DreamItemRegistry.CLOUD_KEY.getBest()); vault.update(); } } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/PhantomCloudSpawner.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/PhantomCloudSpawner.java index 6f8e7740b..5063e58a5 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/PhantomCloudSpawner.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/PhantomCloudSpawner.java @@ -1,6 +1,6 @@ package fr.openmc.core.features.dream.mecanism.cloudcastle; -import fr.openmc.core.OMCRegistry; +import fr.openmc.core.features.dream.registries.DreamMobsRegistry; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -20,7 +20,7 @@ public static void replaceBlockWithMobCloudSpawner(Block block) { if (block.getState() instanceof TrialSpawner spawner) { TrialSpawnerConfiguration normal = spawner.getNormalConfiguration(); - normal.setSpawnedEntity(OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:dream_phantom").getMobSnapshot(block.getLocation())); + normal.setSpawnedEntity(DreamMobsRegistry.DREAM_PHANTOM.getMobSnapshot(block.getLocation())); NamespacedKey lootKey = new NamespacedKey("openmc", "cloud_castle/mob_spawner"); LootTable lootTable = Bukkit.getLootTable(lootKey); diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/StrayCloudSpawner.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/StrayCloudSpawner.java index ed96074e9..6ac66f147 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/StrayCloudSpawner.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudcastle/StrayCloudSpawner.java @@ -1,7 +1,7 @@ package fr.openmc.core.features.dream.mecanism.cloudcastle; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.bootstrap.integration.OMCLogger; +import fr.openmc.core.features.dream.registries.DreamMobsRegistry; import fr.openmc.core.registry.mobs.CustomMob; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -22,13 +22,7 @@ public static void replaceBlockWithMobCloudSpawner(Block block) { if (block.getState() instanceof TrialSpawner spawner) { TrialSpawnerConfiguration normal = spawner.getNormalConfiguration(); - CustomMob mob = OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:dream_stray"); - - if (mob == null) { - OMCLogger.warn("Mob 'omc_dream:dream_stray' not found in registry"); - return; - } - + CustomMob mob = DreamMobsRegistry.DREAM_STRAY.getMob(); EntitySnapshot snapshot = mob.getMobSnapshot(); if (snapshot == null) { diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java index 93c9473bc..4d17a794e 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/cloudfishing/CloudFishingManager.java @@ -1,7 +1,7 @@ package fr.openmc.core.features.dream.mecanism.cloudfishing; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.OMCRegistry; +import fr.openmc.core.features.dream.registries.DreamLootTableRegistry; import fr.openmc.core.registry.loottable.CustomLootTable; import fr.openmc.core.utils.bukkit.ParticleUtils; import lombok.Getter; @@ -23,7 +23,7 @@ public class CloudFishingManager { private static final HashMap hookedPlayers = new HashMap<>(); public static final double Y_CLOUD_FISHING = 120 - 5; // CloudChunk.MIN_HEIGHT_CLOUD - 5 - public static final CustomLootTable FISHING_LOOT_TABLE = OMCRegistry.CUSTOM_LOOT_TABLES.get("omc_dream:cloud_fishing"); + public static final CustomLootTable FISHING_LOOT_TABLE = DreamLootTableRegistry.CLOUD_FISHING; public static void init() { OMCPlugin.registerEvents( diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java b/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java index 8dcc61786..0e67fc13d 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/metaldetector/MetalDetectorManager.java @@ -1,7 +1,7 @@ package fr.openmc.core.features.dream.mecanism.metaldetector; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.OMCRegistry; +import fr.openmc.core.features.dream.registries.DreamLootTableRegistry; import fr.openmc.core.registry.loottable.CustomLootTable; import java.util.HashMap; @@ -11,7 +11,7 @@ public class MetalDetectorManager { public static final Map hiddenChests = new HashMap<>(); - public static final CustomLootTable METAL_DETECTOR_LOOT_TABLE = OMCRegistry.CUSTOM_LOOT_TABLES.get("omc_dream:metal_detector"); + public static final CustomLootTable METAL_DETECTOR_LOOT_TABLE = DreamLootTableRegistry.METAL_DETECTOR; public static void init() { OMCPlugin.registerEvents( diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/PlayerCloneNpc.java b/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/PlayerCloneNpc.java index 3e773a229..efb50f8e0 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/PlayerCloneNpc.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/sfx/PlayerCloneNpc.java @@ -4,8 +4,10 @@ import de.oliver.fancynpcs.api.Npc; import de.oliver.fancynpcs.api.NpcData; import de.oliver.fancynpcs.api.NpcManager; +import de.oliver.fancynpcs.api.skins.SkinLoadException; import de.oliver.fancynpcs.api.utils.NpcEquipmentSlot; import fr.openmc.core.OMCPlugin; +import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.hooks.FancyNpcsHook; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -75,7 +77,11 @@ public static void createCloneNpc(Player player, Location sleepingLocation, Pose data.setDisplayName(""); // * Player clone specific attributes - data.setSkin(player.getName()); + try { + data.setSkin(player.getName()); + } catch (SkinLoadException e) { + OMCLogger.error("Erreur de chargement du skin pour le joueur {}", player.getName()); + } data.addAttribute(FancyNpcsPlugin.get().getAttributeManager().getAttributeByName(EntityType.PLAYER, "pose"), pose.name().toLowerCase()); // * Set equipement diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityCraftListener.java b/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityCraftListener.java index a5ea0b18b..f205b7eb2 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityCraftListener.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityCraftListener.java @@ -26,7 +26,7 @@ public void onCraft(CraftItemEvent event) { if (dreamItem == null) return; if (!(event.getWhoClicked() instanceof Player player)) return; - if (!dreamItem.getId().equals("omc_dream:singularity")) return; + if (!dreamItem.getId().equals(DreamItemRegistry.SINGULARITY.getId())) return; MailboxManager.sendItems(player, player, new ItemStack[] { dreamItem.getBest() }); diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityMenu.java b/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityMenu.java index 0b1d805e4..96cc0aacc 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityMenu.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/singularity/SingularityMenu.java @@ -105,8 +105,8 @@ public void onInventoryClick(InventoryClickEvent event) { DreamItem cursorDream = DreamItemRegistry.getByItemStack(cursor); DreamItem currentDream = DreamItemRegistry.getByItemStack(current); - if ((cursorDream != null && cursorDream.getId().equals("omc_dream:singularity")) - || (currentDream != null && currentDream.getId().equals("omc_dream:singularity"))) { + if ((cursorDream != null && cursorDream.getId().equals(DreamItemRegistry.SINGULARITY.getId())) + || (currentDream != null && currentDream.getId().equals(DreamItemRegistry.SINGULARITY.getId()))) { event.setCancelled(true); return; } diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTrade.java b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTrade.java index c5b632205..2172af599 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTrade.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTrade.java @@ -4,37 +4,36 @@ import fr.openmc.core.features.dream.models.registry.items.DreamItem; import fr.openmc.core.features.dream.registries.DreamItemRegistry; import lombok.Getter; -import net.kyori.adventure.key.Key; import net.kyori.adventure.text.Component; @Getter public enum GlaciteTrade { ORB_GLACITE( - DreamItemRegistry.getByName("glacite_orb"), + DreamItemRegistry.GLACITE_ORB, 200, 15, Component.text("§bOrbe de Glacite") ), SOULBOUND_BOOK( - (DreamItem) OMCRegistry.CUSTOM_ENCHANTS.get(Key.key("omc_dream:soulbound")).getEnchantedBookItem(2), + (DreamItem) OMCRegistry.CUSTOM_ENCHANTS.SOULBOUND.getEnchantedBookItem(2), 150, 5, Component.text("§bLivre d'enchantement : Soulbound II") ), SOMNIFERE( - DreamItemRegistry.getByName("somnifere"), + DreamItemRegistry.SOMNIFERE, 20, 0, Component.text("§bSomnifère") ), ETERNAL_CAMPFIRE( - DreamItemRegistry.getByName("eternal_campfire"), + DreamItemRegistry.ETERNAL_CAMPFIRE, 0, 2, Component.text("§bFeu de camp éternel") ), EWENITE( - DreamItemRegistry.getByName("ewenite"), + DreamItemRegistry.EWENITE, 80, 0, Component.text("§bEwenite") diff --git a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTradeMenu.java b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTradeMenu.java index 941b10ddd..d264ec7ff 100644 --- a/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTradeMenu.java +++ b/src/main/java/fr/openmc/core/features/dream/mecanism/tradernpc/GlaciteTradeMenu.java @@ -84,7 +84,7 @@ public void onInventoryClick(InventoryClickEvent click) { meta.itemName(Component.text("1 min de Temps", NamedTextColor.GREEN)); meta.lore(loreTime); }).setOnClick(event -> { - ItemStack eweniteItem = DreamItemRegistry.getByName("ewenite").getBest(); + ItemStack eweniteItem = DreamItemRegistry.EWENITE.getBest(); int ewenite = ItemUtils.countItems(player, eweniteItem); if (ewenite < 1) { @@ -115,8 +115,8 @@ public List getTakableSlot() { } private void handleTrade(Player player, GlaciteTrade trade) { - ItemStack glaciteItem = DreamItemRegistry.getByName("glacite").getBest(); - ItemStack eweniteItem = DreamItemRegistry.getByName("ewenite").getBest(); + ItemStack glaciteItem = DreamItemRegistry.GLACITE.getBest(); + ItemStack eweniteItem = DreamItemRegistry.EWENITE.getBest(); int glacite = ItemUtils.countItems(player, glaciteItem); int ewenite = ItemUtils.countItems(player, eweniteItem); diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/AltarQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/AltarQuest.java index 7770d8e9a..82eaffbc6 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/AltarQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/AltarQuest.java @@ -17,7 +17,6 @@ import org.bukkit.event.Listener; import java.util.List; -import java.util.Objects; public class AltarQuest extends MilestoneQuest implements Listener { public AltarQuest() { @@ -39,7 +38,7 @@ public AltarQuest() { "§6Comment puis-je en trouver, et comment les reconnaître ?", "§3Voyageur : Regarde autour de l'autel, vers les §darbres§3. Les âmes se baladent à l'extérieur du bâtiment.", "§3Voyageur : Tout comme l'armure \"Creaking\", il est possible d'avoir l'armure des §d\"Âmes\"§3. Celle-ci te confèrera §d" + - ((DreamEquipableItem) Objects.requireNonNull(DreamItemRegistry.getByName("omc_dream:soul_chestplate"))).getAdditionalMaxTime() + + ((DreamEquipableItem) DreamItemRegistry.SOUL_CHESTPLATE).getAdditionalMaxTime() + " secondes §3supplémentaires par pièces d'armure équipées.", "§3Voyageur : Tu peux également transformer ta hache à l'autel avec quelques âmes supplémentaires." ) diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftDominationOrbQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftDominationOrbQuest.java index 75bd3cb70..b3c728b63 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftDominationOrbQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftDominationOrbQuest.java @@ -25,7 +25,7 @@ public CraftDominationOrbQuest() { "§fFabriquer l'§dOrbe de Domination", "§8§o1 sur 5 pour les dominer tous !" ), - DreamItemRegistry.getByName("omc_dream:domination_orb").getBest(), + DreamItemRegistry.DOMINATION_ORB, MilestoneType.DREAM, DreamSteps.CRAFT_DOMINATION_ORB, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftEternalFireQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftEternalFireQuest.java index 262f8212c..607d6b668 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftEternalFireQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftEternalFireQuest.java @@ -26,7 +26,7 @@ public CraftEternalFireQuest() { "§fFabriquer le §dfeu éternel", "§8§oVa-t-on retrouver des dinosaures fossilisés ou Sid ?" ), - DreamItemRegistry.getByName("omc_dream:eternal_campfire").getBest(), + DreamItemRegistry.ETERNAL_CAMPFIRE, MilestoneType.DREAM, DreamSteps.CRAFT_ETERNAL_FIRE, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftSingularityQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftSingularityQuest.java index ba1b79e78..33710c1c8 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftSingularityQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CraftSingularityQuest.java @@ -17,7 +17,6 @@ import org.bukkit.inventory.ItemStack; import java.util.List; -import java.util.Objects; public class CraftSingularityQuest extends MilestoneQuest implements Listener { @@ -28,7 +27,7 @@ public CraftSingularityQuest() { "§fCrafter la §dSingularité", "§8§oLes orbes n'auraient-ils pas une utilité finale ?" ), - DreamItemRegistry.getByName("omc_dream:singularity").getBest(), + DreamItemRegistry.SINGULARITY, MilestoneType.DREAM, DreamSteps.CRAFT_SINGULARITY, new QuestTier(1), @@ -48,7 +47,7 @@ public CraftSingularityQuest() { "§3Voyageur : Quoi qu'il en soit, tu vas pouvoir §drécupérer les enchantements §3de cette dimension grâce à la singularité et même l'§darmure §3si tu le souhaites.", "§3Voyageur : La singularité n'est pas assez puissante pour moi, mais largement assez pour des nouvelles armes ou armures.", "§3Voyageur : Tout comme les orbes précédents, tu as la possibilité de te fabriquer une nouvelle armure. Celle-ci en revanche va nécessiter de refaire " + - "l'ensemble des orbes, mais ça en vaut le coup, car elle rajoute §d" + ((DreamEquipableItem) Objects.requireNonNull(DreamItemRegistry.getByName("omc_dream:dream_chestplate"))).getAdditionalMaxTime() + "l'ensemble des orbes, mais ça en vaut le coup, car elle rajoute §d" + ((DreamEquipableItem) DreamItemRegistry.DREAM_CHESTPLATE).getAdditionalMaxTime() + " secondes §3de plus par pièce portée, mais aussi des effets.", "§6... Merci !", "§3Voyageur : Non ! C'est moi qui te remercie. Car un jour, quelqu'un que je respectais comme personne m'a dit : \"Remercie la personne que tu as aidé, " + diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CrystallizedPickaxeQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CrystallizedPickaxeQuest.java index 0ec1016d8..a8e37e7fd 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/CrystallizedPickaxeQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/CrystallizedPickaxeQuest.java @@ -36,7 +36,7 @@ public CrystallizedPickaxeQuest() { "§fObtenir la §dPioche Cristallisée", "§8§oParfois, il faut savoir se creuser la tête" ), - DreamItemRegistry.getByName("omc_dream:crystallized_pickaxe").getBest(), + DreamItemRegistry.CRYSTALIZED_PICKAXE, MilestoneType.DREAM, DreamSteps.CRYSTALLIZED_PICKAXE, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/EweniteQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/EweniteQuest.java index e5a8bae25..c4424baed 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/EweniteQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/EweniteQuest.java @@ -27,7 +27,7 @@ public EweniteQuest() { "§8§oUn nouveau minerai à exploiter.", "§8§oBizarre, ce nom m'est familier." ), - DreamItemRegistry.getByName("omc_dream:ewenite").getBest(), + DreamItemRegistry.EWENITE, MilestoneType.DREAM, DreamSteps.EWENITE, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/GlaciteOrbQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/GlaciteOrbQuest.java index e4344d3a6..ecb733e08 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/GlaciteOrbQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/GlaciteOrbQuest.java @@ -23,7 +23,7 @@ public GlaciteOrbQuest() { "§fEchanger l'§dOrbe de Glace", "§8§oDernière ligne droite pour les collecter toutes." ), - DreamItemRegistry.getByName("omc_dream:glacite_orb").getBest(), + DreamItemRegistry.GLACITE_ORB, MilestoneType.DREAM, DreamSteps.GLACITE_ORB, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/KillBreezyQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/KillBreezyQuest.java index e5eca753e..021a25aaa 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/KillBreezyQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/KillBreezyQuest.java @@ -19,7 +19,6 @@ import org.bukkit.inventory.ItemStack; import java.util.List; -import java.util.Objects; public class KillBreezyQuest extends MilestoneQuest implements Listener { public KillBreezyQuest() { @@ -41,7 +40,7 @@ public KillBreezyQuest() { "§3Voyageur : Les explications arriveront en temps et en heures. Pour le moment, redescends sur terre, et dirige-toi vers les §dplages§3. " + "J'aimerais pouvoir dire de sable fin...", "§3Voyageur : Mais avant de partir, tu peux récupérer dans les coffres du château l'§dArmure des Nuages§3, qui te donnera §d" + - ((DreamEquipableItem) Objects.requireNonNull(DreamItemRegistry.getByName("omc_dream:cloud_chestplate"))).getAdditionalMaxTime() + + ((DreamEquipableItem) DreamItemRegistry.CLOUD_CHESTPLATE).getAdditionalMaxTime() + " secondes §3de temps supplémentaire par pièces d'armure. Tu peux également récupérer une §dcanne à pêche des nuages§3, et un §dlivre enchanté§3.", "§6Une canne à pêche ? Mais pour pêcher quoi ? Des gouttelettes de nuage ?!", "§3Voyageur : Exactement ! Celle-ci te permettra de pêcher dans les nuages comme si c'était un lac. Tu pourras notamment récupérer des " + diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/MetalDetectorQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/MetalDetectorQuest.java index aa459efca..5dbff7c3e 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/MetalDetectorQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/MetalDetectorQuest.java @@ -26,7 +26,7 @@ public MetalDetectorQuest() { "§fRécupérer le §ddétecteur à métaux", "§8§oPourquoi les têtards sont aussi gros ?" ), - DreamItemRegistry.getByName("omc_dream:metal_detector").getBest(), + DreamItemRegistry.METAL_DETECTOR, MilestoneType.DREAM, DreamSteps.METAL_DETECTOR, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/MudOrbQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/MudOrbQuest.java index 053698525..8d1114154 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/MudOrbQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/MudOrbQuest.java @@ -27,7 +27,7 @@ public MudOrbQuest() { "§8§oPossible que les gens perdent tout de même", "§8§odes choses. Ah tiens, 6 blocks vers la droite." ), - DreamItemRegistry.getByName("omc_dream:mud_orb").getBest(), + DreamItemRegistry.MUD_ORB, MilestoneType.DREAM, DreamSteps.MUD_ORB, new QuestTier(1), @@ -40,7 +40,7 @@ public MudOrbQuest() { "un autre §dlivre enchanté§3, ou encore une §dpioche §3qui te sera utile pour la suite... Je vais d'ailleurs check si tu n'en as pas déjà une." ), player -> { - if (player.getInventory().contains(DreamItemRegistry.getByName("omc_dream:crystallized_pickaxe").getBest())) + if (player.getInventory().contains(DreamItemRegistry.CRYSTALIZED_PICKAXE.getBest())) DreamSteps.CRYSTALLIZED_PICKAXE.getQuest().incrementProgressInDream(player.getUniqueId()); } ); diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/OldAxeQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/OldAxeQuest.java index 79f2f200e..6c7bcb6fb 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/OldAxeQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/OldAxeQuest.java @@ -16,7 +16,6 @@ import org.bukkit.inventory.ItemStack; import java.util.List; -import java.util.Objects; public class OldAxeQuest extends MilestoneQuest implements Listener { @@ -27,7 +26,7 @@ public OldAxeQuest() { "§fFabriquer une §dVieille hache du Creaking", "§8§oNotre meilleur ami dans ce monde !" ), - DreamItemRegistry.getByName("omc_dream:old_creaking_axe").getBest(), + DreamItemRegistry.OLD_CREAKING_AXE, MilestoneType.DREAM, DreamSteps.OLD_AXE, new QuestTier(1), @@ -37,7 +36,7 @@ public OldAxeQuest() { "§3Voyageur : Je t'expliquerai lorsque tu l'auras. Elle va être facile à récupérer avec la hache.", "§6Ai-je besoin d'autre chose ?", "§3Voyageur : Ce n'est pas obligatoire, mais elle te permettrait de rester plus longtemps dans ce monde. Il existe l'armure §d\"Creaking\" §3que tu peux fabriquer. " + - "Cela te confèrera §d" + ((DreamEquipableItem) Objects.requireNonNull(DreamItemRegistry.getByName("omc_dream:old_creaking_chestplate"))).getAdditionalMaxTime() + " secondes §3supplémentaires " + + "Cela te confèrera §d" + ((DreamEquipableItem) DreamItemRegistry.OLD_CREAKING_CHESTPLATE).getAdditionalMaxTime() + " secondes §3supplémentaires " + "par pièces d'armure équipées." ) ); diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulOrbQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulOrbQuest.java index b4d83b9b1..f94b54606 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulOrbQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulOrbQuest.java @@ -25,7 +25,7 @@ public SoulOrbQuest() { "§8§oÂmes dans la poche, permettez-moi, par votre pouvoir,", "§8§od'obtenir votre orbe avec le sacrifice de l'Orbe de Domination." ), - DreamItemRegistry.getByName("omc_dream:ame_orb").getBest(), + DreamItemRegistry.SOUL_ORB, MilestoneType.DREAM, DreamSteps.SOUL_ORB, new QuestTier(1), diff --git a/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulsQuest.java b/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulsQuest.java index b97ee9184..b4b713525 100644 --- a/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulsQuest.java +++ b/src/main/java/fr/openmc/core/features/dream/milestone/quests/SoulsQuest.java @@ -29,7 +29,7 @@ public SoulsQuest() { "§8§oIl me semble avoir vu des créatures", "§8§ovolantes rôder vers les grands arbres sombres." ), - DreamItemRegistry.getByName("omc_dream:soul").getBest(), + DreamItemRegistry.SOUL, MilestoneType.DREAM, DreamSteps.SOULS, new QuestTier(SOULS), diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java index a044597e2..57c1ac892 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamItemRegistry.java @@ -44,85 +44,92 @@ import java.util.*; public class DreamItemRegistry { + public static final DreamItem DOMINATION_ORB = create(new DominationOrb()); + public static final DreamItem SOUL_ORB = create(new SoulOrb()); + public static final DreamItem MUD_ORB = create(new MudOrb()); + public static final DreamItem CLOUD_ORB = create(new CloudOrb()); + public static final DreamItem GLACITE_ORB = create(new GlaciteOrb()); + public static final DreamItem SINGULARITY = create(new Singularity()); + + public static final DreamItem CORRUPTED_STRING = create(new CorruptedString()); + public static final DreamItem CREAKING_HEART = create(new CreakingHeart()); + public static final DreamItem SOUL = create(new Soul()); + public static final DreamItem CLOUD_KEY = create(new CloudKey()); + + public static final DreamItem CORRUPTED_SCULK = create(new CorruptedSculk()); + public static final DreamItem OLD_PALE_OAK_WOOD = create(new OldPaleOakWood()); + public static final DreamItem GLACITE = create(new Glacite()); + public static final DreamItem BURN_COAL = create(new BurnCoal()); + public static final DreamItem HARD_STONE = create(new HardStone()); + public static final DreamItem CRAFTING_TABLE = create(new CraftingTable()); + public static final DreamItem ETERNAL_CAMPFIRE = create(new EternalCampFire()); + public static final DreamItem EWENITE = create(new Ewenite()); + + public static final DreamItem SOMNIFERE = create(new Somnifere()); + public static final DreamItem CHIPS_AYWEN = create(new ChipsAywen()); + public static final DreamItem CHIPS_DIHYDROGENE = create(new ChipsDihydrogene()); + public static final DreamItem CHIPS_JIMMY = create(new ChipsJimmy()); + public static final DreamItem CHIPS_LAIT_2_MARGOUTA = create(new ChipsLait2Margouta()); + public static final DreamItem CHIPS_NATURE = create(new ChipsNature()); + public static final DreamItem CHIPS_SANS_PLOMB = create(new ChipsSansPlomb()); + public static final DreamItem CHIPS_TERRE = create(new ChipsTerre()); + public static final DreamItem COCKED_POISSONION = create(new CokkedPoissonion()); + public static final DreamItem POISSONION = create(new Poissonion()); + public static final DreamItem MOON_FISH = create(new MoonFish()); + public static final DreamItem SUN_FISH = create(new SunFish()); + public static final DreamItem DOCKER_FISH = create(new DockerFish()); + + public static final DreamItem OLD_CREAKING_HELMET = create(new OldCreakingHelmet()); + public static final DreamItem OLD_CREAKING_CHESTPLATE = create(new OldCreakingChestplate()); + public static final DreamItem OLD_CREAKING_LEGGINGS = create(new OldCreakingLeggings()); + public static final DreamItem OLD_CREAKING_BOOTS = create(new OldCreakingBoots()); + + public static final DreamItem SOUL_HELMET = create(new SoulHelmet()); + public static final DreamItem SOUL_CHESTPLATE = create(new SoulChestplate()); + public static final DreamItem SOUL_LEGGINGS = create(new SoulLeggings()); + public static final DreamItem SOUL_BOOTS = create(new SoulBoots()); + + public static final DreamItem CLOUD_HELMET = create(new CloudHelmet()); + public static final DreamItem CLOUD_CHESTPLATE = create(new CloudChestplate()); + public static final DreamItem CLOUD_LEGGINGS = create(new CloudLeggings()); + public static final DreamItem CLOUD_BOOTS = create(new CloudBoots()); + + public static final DreamItem COLD_HELMET = create(new ColdHelmet()); + public static final DreamItem COLD_CHESTPLATE = create(new ColdChestplate()); + public static final DreamItem COLD_LEGGINGS = create(new ColdLeggings()); + public static final DreamItem COLD_BOOTS = create(new ColdBoots()); + + public static final DreamItem DREAM_HELMET = create(new DreamHelmet()); + public static final DreamItem DREAM_CHESTPLATE = create(new DreamChestplate()); + public static final DreamItem DREAM_LEGGINGS = create(new DreamLeggings()); + public static final DreamItem DREAM_BOOTS = create(new DreamBoots()); + + public static final DreamItem PYJAMA_HELMET = create(new PyjamaHelmet()); + public static final DreamItem PYJAMA_CHESTPLATE = create(new PyjamaChestplate()); + public static final DreamItem PYJAMA_LEGGINGS = create(new PyjamaLeggings()); + public static final DreamItem PYJAMA_BOOTS = create(new PyjamaBoots()); + + public static final DreamItem OLD_CREAKING_AXE = create(new OldCreakingAxe()); + public static final DreamItem SOUL_AXE = create(new SoulAxe()); + public static final DreamItem CLOUD_FISHING_ROD = create(new CloudFishingRod()); + public static final DreamItem METEO_WAND = create(new MeteoWand()); + public static final DreamItem METAL_DETECTOR = create(new MetalDetector()); + public static final DreamItem CRYSTALIZED_PICKAXE = create(new CrystalizedPickaxe()); + public static final DreamItem MECHANIC_PICKAXE = create(new MecanicPickaxe()); + // * Registre des DreamItems accessible durant le bootstrap - public static Set DREAM_ITEM_REGISTRY = new HashSet<>(List.of( - new DominationOrb(), - new SoulOrb(), - new MudOrb(), - new CloudOrb(), - new GlaciteOrb(), - new Singularity(), - - new CorruptedString(), - new CreakingHeart(), - new Soul(), - new CloudKey(), - - new CorruptedSculk(), - new OldPaleOakWood(), - new Glacite(), - new BurnCoal(), - new HardStone(), - new CraftingTable(), - new EternalCampFire(), - new Ewenite(), - - new Somnifere(), - new ChipsAywen(), - new ChipsDihydrogene(), - new ChipsJimmy(), - new ChipsLait2Margouta(), - new ChipsNature(), - new ChipsSansPlomb(), - new ChipsTerre(), - new CokkedPoissonion(), - new Poissonion(), - new MoonFish(), - new SunFish(), - new DockerFish(), - - new OldCreakingHelmet(), - new OldCreakingChestplate(), - new OldCreakingLeggings(), - new OldCreakingBoots(), - - new SoulHelmet(), - new SoulChestplate(), - new SoulLeggings(), - new SoulBoots(), - - new CloudHelmet(), - new CloudChestplate(), - new CloudLeggings(), - new CloudBoots(), - - new ColdHelmet(), - new ColdChestplate(), - new ColdLeggings(), - new ColdBoots(), - - new DreamHelmet(), - new DreamChestplate(), - new DreamLeggings(), - new DreamBoots(), - - new PyjamaHelmet(), - new PyjamaChestplate(), - new PyjamaLeggings(), - new PyjamaBoots(), - - new OldCreakingAxe(), - new SoulAxe(), - new CloudFishingRod(), - new MeteoWand(), - new MetalDetector(), - new CrystalizedPickaxe(), - new MecanicPickaxe() - )); + public static Set DREAM_ITEM_REGISTRY; // * Registre des DreamItems accesible via leur id, tres utilisé durant le bootstrap private static Map DREAM_ITEM_BY_NAME_REGISTRY; + private static DreamItem create(DreamItem item) { + if (DREAM_ITEM_REGISTRY == null) + DREAM_ITEM_REGISTRY = new HashSet<>(); + + DREAM_ITEM_REGISTRY.add(item); + return item; + } /** * Charge la classe durant le runtime */ @@ -156,9 +163,9 @@ public static Map getBootstrapRegistry() { public static DreamItem getByName(String name) { if (!name.startsWith("omc_dream:")) name = "omc_dream:" + name; - CustomItem ci = OMCRegistry.CUSTOM_ITEMS.get(name); - if (ci == null) return null; - if (!(ci instanceof DreamItem di)) return null; + Optional ci = OMCRegistry.CUSTOM_ITEMS.get(name); + if (ci.isEmpty()) return null; + if (!(ci.get() instanceof DreamItem di)) return null; return di; } @@ -166,10 +173,10 @@ public static DreamItem getByName(String name) { @Nullable public static DreamItem getByItemStack(ItemStack stack) { if (stack == null) return null; - CustomItem ci = OMCRegistry.CUSTOM_ITEMS.get(stack); + Optional ci = OMCRegistry.CUSTOM_ITEMS.get(stack); - if (ci == null) return null; - if (!(ci instanceof DreamItem di)) return null; + if (ci.isEmpty()) return null; + if (!(ci.get() instanceof DreamItem di)) return null; return di; } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamLootTableRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamLootTableRegistry.java index df4a0b312..a8e76653d 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamLootTableRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamLootTableRegistry.java @@ -4,13 +4,27 @@ import fr.openmc.core.features.dream.registries.loottable.CloudFishingLootTable; import fr.openmc.core.features.dream.registries.loottable.CloudVaultLootTable; import fr.openmc.core.features.dream.registries.loottable.MetalDetectorLootTable; +import fr.openmc.core.registry.loottable.CustomLootTable; + +import java.util.HashSet; +import java.util.Set; public class DreamLootTableRegistry { + public static final CustomLootTable CLOUD_FISHING = create(new CloudFishingLootTable()); + public static final CustomLootTable CLOUD_VAULT = create(new CloudVaultLootTable()); + public static final CustomLootTable METAL_DETECTOR = create(new MetalDetectorLootTable()); + + public static Set LOOT_TABLE_REGISTRY; + + private static CustomLootTable create(CustomLootTable item) { + if (LOOT_TABLE_REGISTRY == null) + LOOT_TABLE_REGISTRY = new HashSet<>(); + + LOOT_TABLE_REGISTRY.add(item); + return item; + } + public static void init() { - OMCRegistry.CUSTOM_LOOT_TABLES.register( - new CloudFishingLootTable(), - new MetalDetectorLootTable(), - new CloudVaultLootTable() - ); + OMCRegistry.CUSTOM_LOOT_TABLES.register(LOOT_TABLE_REGISTRY); } } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java b/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java index d42178b32..1cdce0ba5 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/DreamMobsRegistry.java @@ -10,6 +10,9 @@ import fr.openmc.core.registry.mobs.CustomMobEntry; import fr.openmc.core.registry.mobs.listeners.CustomMobDeathListener; +import java.util.HashSet; +import java.util.Set; + /** * Gestionnaire de l'apparition des mobs dans la Dimension des Rêves. * @@ -18,6 +21,55 @@ */ public class DreamMobsRegistry { + public static final CustomMobEntry DREAM_STRAY = create(new CustomMobEntry( + "omc_dream:dream_stray", + DreamStray::new + )); + + public static final CustomMobEntry DREAM_CREAKING = create(new CustomMobEntry( + "omc_dream:dream_creaking", + DreamCreaking::new + )); + + public static final CustomMobEntry DREAM_SPIDER = create(new CustomMobEntry( + "omc_dream:dream_spider", + DreamSpider::new + )); + + public static final CustomMobEntry SOUL = create(new CustomMobEntry( + "omc_dream:soul", + Soul::new + )); + + public static final CustomMobEntry BREEZY = create(new CustomMobEntry( + "omc_dream:breezy", + Breezy::new + )); + + public static final CustomMobEntry DREAM_PHANTOM = create(new CustomMobEntry( + "omc_dream:dream_phantom", + DreamPhantom::new + )); + + public static final CustomMobEntry CORRUPTED_TADPOLE = create(new CustomMobEntry( + "omc_dream:corrupted_tadpole", + CorruptedTadpole::new + )); + + public static final CustomMobEntry CRAZY_FROG = create(new CustomMobEntry( + "omc_dream:crazy_frog", + CrazyFrog::new + )); + + public static Set DREAM_MOB_REGISTRY; + + private static CustomMobEntry create(CustomMobEntry entry) { + if (DREAM_MOB_REGISTRY == null) + DREAM_MOB_REGISTRY = new HashSet<>(); + + DREAM_MOB_REGISTRY.add(entry); + return entry; + } public static void init() { OMCPlugin.registerEvents( new PlainsMobSpawningListener(), @@ -27,39 +79,6 @@ public static void init() { new DreamMobDamageListener() ); - OMCRegistry.CUSTOM_MOBS.register( - new CustomMobEntry( - "omc_dream:dream_stray", - DreamStray::new - ), - new CustomMobEntry( - "omc_dream:dream_creaking", - DreamCreaking::new - ), - new CustomMobEntry( - "omc_dream:dream_spider", - DreamSpider::new - ), - new CustomMobEntry( - "omc_dream:soul", - Soul::new - ), - new CustomMobEntry( - "omc_dream:breezy", - Breezy::new - ), - new CustomMobEntry( - "omc_dream:dream_phantom", - DreamPhantom::new - ), - new CustomMobEntry( - "omc_dream:corrupted_tadpole", - CorruptedTadpole::new - ), - new CustomMobEntry( - "omc_dream:crazy_frog", - CrazyFrog::new - ) - ); + OMCRegistry.CUSTOM_MOBS.register(DREAM_MOB_REGISTRY); } } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/DreamSleeper.java b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/DreamSleeper.java index 787a1300b..d72b99c88 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/DreamSleeper.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/DreamSleeper.java @@ -1,7 +1,6 @@ package fr.openmc.core.features.dream.registries.enchantements; import fr.openmc.core.OMCPlugin; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.models.registry.DreamEnchantment; import io.papermc.paper.registry.data.EnchantmentRegistryEntry; import io.papermc.paper.registry.keys.tags.ItemTypeTagKeys; @@ -66,7 +65,7 @@ public void onAttack(EntityDamageByEntityEvent event) { if (!(event.getDamager() instanceof Player player)) return; if (!(event.getEntity() instanceof LivingEntity living)) return; - Enchantment enchant = OMCRegistry.CUSTOM_ENCHANTS.get(this.getKey()).getEnchantment(); + Enchantment enchant = this.getEnchantment(); if (enchant == null) return; ItemStack item = player.getInventory().getItemInMainHand(); diff --git a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Experientastic.java b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Experientastic.java index 2b8eea470..7c5c40ed5 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Experientastic.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Experientastic.java @@ -1,6 +1,5 @@ package fr.openmc.core.features.dream.registries.enchantements; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.models.registry.DreamEnchantment; import io.papermc.paper.registry.data.EnchantmentRegistryEntry; import io.papermc.paper.registry.keys.tags.ItemTypeTagKeys; @@ -63,7 +62,7 @@ public void onAttack(EntityDeathEvent event) { Player player = event.getEntity().getKiller(); if (player == null) return; - Enchantment enchant = OMCRegistry.CUSTOM_ENCHANTS.get(this.getKey()).getEnchantment(); + Enchantment enchant = this.getEnchantment(); if (enchant == null) return; ItemStack item = player.getInventory().getItemInMainHand(); diff --git a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Soulbound.java b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Soulbound.java index 2d0e4df65..752a45c4e 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Soulbound.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/enchantements/Soulbound.java @@ -1,7 +1,6 @@ package fr.openmc.core.features.dream.registries.enchantements; import fr.openmc.api.cooldown.DynamicCooldownManager; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.models.registry.DreamEnchantment; import fr.openmc.core.utils.text.DateUtils; import fr.openmc.core.utils.text.messages.MessageType; @@ -75,7 +74,7 @@ public void onDeath(PlayerDeathEvent event) { Player player = event.getPlayer(); UUID uuid = player.getUniqueId(); - Enchantment enchant = OMCRegistry.CUSTOM_ENCHANTS.get(this.getKey()).getEnchantment(); + Enchantment enchant = this.getEnchantment(); if (enchant == null) return; int maxSoulboundLevel = 0; diff --git a/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudFishingLootTable.java b/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudFishingLootTable.java index bec2f612a..dab19af94 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudFishingLootTable.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudFishingLootTable.java @@ -14,37 +14,37 @@ public class CloudFishingLootTable extends CustomLootTable { public Set getLoots() { return Set.of( new CustomLoot( - DreamItemRegistry.getByName("meteo_wand"), + DreamItemRegistry.METEO_WAND, 0.05, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("poissonion"), + DreamItemRegistry.POISSONION, 0.5, 1, 2 ), new CustomLoot( - DreamItemRegistry.getByName("moon_fish"), + DreamItemRegistry.MOON_FISH, 0.5, 1, 2 ), new CustomLoot( - DreamItemRegistry.getByName("sun_fish"), + DreamItemRegistry.SUN_FISH, 0.5, 1, 2 ), new CustomLoot( - DreamItemRegistry.getByName("dockerfish"), + DreamItemRegistry.DOCKER_FISH, 0.1, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("somnifere"), + DreamItemRegistry.SOMNIFERE, 0.4, 1, 1 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudVaultLootTable.java b/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudVaultLootTable.java index 758e90565..8467d7eb8 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudVaultLootTable.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/loottable/CloudVaultLootTable.java @@ -4,7 +4,6 @@ import fr.openmc.core.features.dream.registries.DreamItemRegistry; import fr.openmc.core.registry.loottable.CustomLoot; import fr.openmc.core.registry.loottable.CustomLootTable; -import net.kyori.adventure.key.Key; import java.util.Set; @@ -16,45 +15,43 @@ public class CloudVaultLootTable extends CustomLootTable { public Set getLoots() { return Set.of( new CustomLoot( - DreamItemRegistry.getByName("cloud_helmet"), + DreamItemRegistry.CLOUD_HELMET, 0.125, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("cloud_chestplate"), + DreamItemRegistry.CLOUD_CHESTPLATE, 0.125, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("cloud_leggings"), + DreamItemRegistry.CLOUD_LEGGINGS, 0.125, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("cloud_boots"), + DreamItemRegistry.CLOUD_BOOTS, 0.125, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("somnifere"), + DreamItemRegistry.SOMNIFERE, 0.45, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("cloud_fishing_rod"), + DreamItemRegistry.CLOUD_FISHING_ROD, 0.08, 1, 1 ), new CustomLoot( - OMCRegistry.CUSTOM_ENCHANTS.get( - Key.key("omc_dream:dream_sleeper") - ).getEnchantedBookItem(2).getBest(), + OMCRegistry.CUSTOM_ENCHANTS.DREAM_SLEEPER.getEnchantedBookItem(2).getBest(), 0.10, 1, 1 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/loottable/MetalDetectorLootTable.java b/src/main/java/fr/openmc/core/features/dream/registries/loottable/MetalDetectorLootTable.java index 41f406f72..c2f5f26b4 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/loottable/MetalDetectorLootTable.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/loottable/MetalDetectorLootTable.java @@ -4,7 +4,6 @@ import fr.openmc.core.features.dream.registries.DreamItemRegistry; import fr.openmc.core.registry.loottable.CustomLoot; import fr.openmc.core.registry.loottable.CustomLootTable; -import net.kyori.adventure.key.Key; import java.util.Set; @@ -16,67 +15,67 @@ public class MetalDetectorLootTable extends CustomLootTable { public Set getLoots() { return Set.of( new CustomLoot( - DreamItemRegistry.getByName("chips_dihydrogene"), + DreamItemRegistry.CHIPS_DIHYDROGENE, 0.4, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_jimmy"), + DreamItemRegistry.CHIPS_JIMMY, 0.2, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_terre"), + DreamItemRegistry.CHIPS_TERRE, 0.4, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_sans_plomb"), + DreamItemRegistry.CHIPS_SANS_PLOMB, 0.4, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_nature"), + DreamItemRegistry.CHIPS_NATURE, 0.4, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_aywen"), + DreamItemRegistry.CHIPS_AYWEN, 0.1, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("chips_lait_2_margouta"), + DreamItemRegistry.CHIPS_LAIT_2_MARGOUTA, 0.005, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("somnifere"), + DreamItemRegistry.SOMNIFERE, 0.4, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("mud_orb"), + DreamItemRegistry.MUD_ORB, 0.05, 1, 1 ), new CustomLoot( - OMCRegistry.CUSTOM_ENCHANTS.get(Key.key("omc_dream:experientastic")).getEnchantedBookItem(1), + OMCRegistry.CUSTOM_ENCHANTS.EXPERIENTASTIC.getEnchantedBookItem(1), 0.03, 1, 1 ), new CustomLoot( - DreamItemRegistry.getByName("crystallized_pickaxe"), + DreamItemRegistry.CRYSTALIZED_PICKAXE, 0.1, 1, 1 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/CorruptedTadpole.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/CorruptedTadpole.java index 98e2923cb..23a923489 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/CorruptedTadpole.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/CorruptedTadpole.java @@ -1,7 +1,7 @@ package fr.openmc.core.features.dream.registries.mobs; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.models.registry.DreamMob; +import fr.openmc.core.features.dream.registries.DreamMobsRegistry; import fr.openmc.core.registry.mobs.CustomMob; import fr.openmc.core.utils.RandomUtils; import org.bukkit.Location; @@ -28,7 +28,7 @@ public Tadpole spawn(Location location) { @Override public void onDeath(CustomMob thisMob, EntityDeathEvent event) { - CustomMob crazyFrog = OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:crazy_frog"); + CustomMob crazyFrog = DreamMobsRegistry.CRAZY_FROG.getMob(); if (crazyFrog == null) return; crazyFrog.spawn(event.getEntity().getLocation()); } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/CrazyFrog.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/CrazyFrog.java index 70dedb983..af1d99b52 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/CrazyFrog.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/CrazyFrog.java @@ -20,7 +20,7 @@ public CrazyFrog(String id) { RandomUtils.randomBetween(0.2, 0.4), RandomUtils.randomBetween(3, 2.3), List.of(new CustomLoot( - DreamItemRegistry.getByName("metal_detector"), + DreamItemRegistry.METAL_DETECTOR, 0.5, 1, 1 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamSpider.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamSpider.java index 64fbe1051..dd8e8387c 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamSpider.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamSpider.java @@ -20,7 +20,7 @@ public DreamSpider(String id) { RandomUtils.randomBetween(0.2, 0.3), RandomUtils.randomBetween(1.5, 2.0), List.of(new CustomLoot( - DreamItemRegistry.getByName("corrupted_string"), + DreamItemRegistry.CORRUPTED_STRING, 0.80, 1, 3 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamStray.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamStray.java index 96b5ed667..1a2a00387 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamStray.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/DreamStray.java @@ -35,7 +35,7 @@ public EntitySnapshot getMobSnapshot() { stray.setGlowing(true); EntityEquipment equipment = stray.getEquipment(); if (stray.canUseEquipmentSlot(EquipmentSlot.FEET)) { - equipment.setBoots(DreamItemRegistry.getByName("cloud_boots").getBest()); + equipment.setBoots(DreamItemRegistry.CLOUD_BOOTS.getBest()); equipment.setBootsDropChance(0.0f); } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/Soul.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/Soul.java index 5fea87d63..5c6ddb389 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/Soul.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/Soul.java @@ -93,7 +93,7 @@ public Vex spawn(Location location) { } private final List loots = List.of(new CustomLoot( - DreamItemRegistry.getByName("soul"), + DreamItemRegistry.SOUL, 0.70, 1, 2 diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/MudBeachMobSpawningListener.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/MudBeachMobSpawningListener.java index 3aaecd227..c395129cf 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/MudBeachMobSpawningListener.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/MudBeachMobSpawningListener.java @@ -1,8 +1,8 @@ package fr.openmc.core.features.dream.registries.mobs.listeners; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.DreamUtils; import fr.openmc.core.features.dream.registries.DreamBiome; +import fr.openmc.core.features.dream.registries.DreamMobsRegistry; import fr.openmc.core.registry.mobs.CustomMobRegistry; import org.bukkit.Location; import org.bukkit.World; @@ -43,7 +43,7 @@ void onCreatureSpawn(CreatureSpawnEvent e) { double choice = Math.random(); if (choice < CORRUPTED_TADPOLE_PROBABILITY) { - OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:corrupted_tadpole").spawn(spawningLoc); + DreamMobsRegistry.CORRUPTED_TADPOLE.spawn(spawningLoc); e.setCancelled(true); } } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/PlainsMobSpawningListener.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/PlainsMobSpawningListener.java index 3002b00c8..e4aa6a932 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/PlainsMobSpawningListener.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/PlainsMobSpawningListener.java @@ -1,6 +1,5 @@ package fr.openmc.core.features.dream.registries.mobs.listeners; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.DreamUtils; import fr.openmc.core.features.dream.registries.DreamBiome; import fr.openmc.core.features.dream.registries.DreamMobsRegistry; @@ -44,13 +43,13 @@ void onCreatureSpawn(CreatureSpawnEvent e) { if (e.getEntity().getType().equals(EntityType.CREAKING)) { e.setCancelled(false); - OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:dream_creaking").apply(e.getEntity()); + DreamMobsRegistry.DREAM_CREAKING.apply(e.getEntity()); return; } double choice = Math.random(); if (choice < DREAM_SPIDER_PROBABILITY) { - OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:dream_spider").spawn(spawningLoc); + DreamMobsRegistry.DREAM_SPIDER.spawn(spawningLoc); e.setCancelled(true); } } diff --git a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/SoulForestMobSpawningListener.java b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/SoulForestMobSpawningListener.java index 9958d3a02..d28e38059 100644 --- a/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/SoulForestMobSpawningListener.java +++ b/src/main/java/fr/openmc/core/features/dream/registries/mobs/listeners/SoulForestMobSpawningListener.java @@ -1,6 +1,5 @@ package fr.openmc.core.features.dream.registries.mobs.listeners; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.dream.DreamUtils; import fr.openmc.core.features.dream.registries.DreamBiome; import fr.openmc.core.features.dream.registries.DreamMobsRegistry; @@ -41,7 +40,7 @@ void onCreatureSpawn(CreatureSpawnEvent e) { double choice = Math.random(); if (choice < SOUL_PROBABILITY) { - OMCRegistry.CUSTOM_MOBS.getMob("omc_dream:soul").spawn(spawningLoc); + DreamMobsRegistry.SOUL.spawn(spawningLoc); e.setCancelled(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 01cc3adf3..e1f487a5b 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 @@ -100,10 +100,7 @@ public void onInventoryClick(InventoryClickEvent click) { ); })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.economy.bank.back.lore")); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } 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 fda2e7f3a..22eb007be 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 @@ -101,10 +101,7 @@ public void onInventoryClick(InventoryClickEvent click) { }); })); - inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> { - itemMeta.itemName(TranslationManager.translation("messages.menus.back")); - itemMeta.lore(TranslationManager.translationLore("feature.economy.bank.back.lore")); - }, true)); + inventory.put(18, new ItemMenuBuilder(this, Material.ARROW, 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 abbeac8c4..8c30cfcf9 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 @@ -1,10 +1,10 @@ package fr.openmc.core.features.economy.menu; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.economy.Transaction; import fr.openmc.core.features.economy.TransactionsManager; import fr.openmc.core.utils.cache.CacheOfflinePlayer; @@ -80,9 +80,9 @@ public List getItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(49, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); - map.put(48, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.previous_page"))).setPreviousPageButton()); - map.put(50, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_next_orange").getBest(), itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.next_page"))).setNextPageButton()); + map.put(49, ItemMenuTemplate.BTN_CANCEL.apply(this)); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_ORANGE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_ORANGE.apply(this)); return map; } 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 9df1c238a..92d34abdc 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 @@ -1,10 +1,10 @@ package fr.openmc.core.features.events.commands.calendar; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; -import fr.openmc.core.OMCRegistry; 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; @@ -71,9 +71,7 @@ public int getSizeOfItems() { @Override public Map getButtons() { Map map = new HashMap<>(); - map.put(33, new ItemMenuBuilder(this, - OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel").getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.close"))).setCloseButton()); + map.put(33, ItemMenuTemplate.BTN_CANCEL.apply(this)); return map; } 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 05eb5eefa..0216a1658 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,7 +20,6 @@ import fr.openmc.core.features.events.contents.halloween.models.HalloweenData; 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; @@ -132,7 +131,7 @@ public static void endEvent() { List rewards = new ArrayList<>(); - final ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + final ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); aywenite.setAmount(64); switch (rank) { case 1 -> { diff --git a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/Contest.java b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/Contest.java index 36bb03f5b..59e8de7b6 100644 --- a/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/Contest.java +++ b/src/main/java/fr/openmc/core/features/events/contents/weeklyevents/contents/contest/Contest.java @@ -28,7 +28,7 @@ public List getDescription() { @Override public ItemStack getIcon() { - return OMCRegistry.CUSTOM_ITEMS.get("omc_contest:contest_shell").getBest(); + return OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL.getBest(); } @Override 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 a2dbe32c9..8ff1758a6 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 @@ -501,7 +501,7 @@ public static void initPhase3() { bookPlayer.setItemMeta(bookMetaPlayer); - ItemStack ayweniteItemStack = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack ayweniteItemStack = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); ayweniteItemStack.setAmount(aywenite); itemListRewards.add(bookPlayer); itemListRewards.add(ayweniteItemStack); 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 417f074bc..27e9c915c 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 @@ -1,6 +1,5 @@ package fr.openmc.core.features.events.contents.weeklyevents.contents.contest.menu; -import dev.lone.itemsadder.api.CustomStack; import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.Menu; import fr.openmc.api.menulib.utils.InventorySize; @@ -83,15 +82,12 @@ public void onInventoryClick(InventoryClickEvent click) { Component.text(ContestPlayerManager.getGoalPointsToRankUp(getOwner())).color(campColor) ); - String namespaceShellContest = "omc_contest:contest_shell"; - ItemStack shellContest = OMCRegistry.CUSTOM_ITEMS.get(namespaceShellContest).getBest(); - inventory.put(8, new ItemMenuBuilder(this, Material.GOLD_BLOCK, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.events.contest.contribution.title.name")); itemMeta.lore(loreRang); })); - inventory.put(11, new ItemMenuBuilder(this, shellContest, itemMeta -> { + inventory.put(11, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.events.contest.trade.main.name")); itemMeta.lore(loreTrade); }).setOnClick(inventoryClickEvent -> new TradeMenu(getOwner()).open())); @@ -109,7 +105,7 @@ public void onInventoryClick(InventoryClickEvent click) { } try { - ItemStack shellContestItem = CustomStack.getInstance(namespaceShellContest).getItemStack(); + ItemStack shellContestItem = OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL.getBest(); int shellCount = Arrays.stream(player.getInventory().getContents()).filter(is -> is != null && isSimilar(shellContestItem, is)).mapToInt(ItemStack::getAmount).sum(); if (ItemUtils.hasEnoughItems(player, shellContestItem, shellCount)) { 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 113dffa02..39cf21e54 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 @@ -78,7 +78,7 @@ public void onInventoryClick(InventoryClickEvent click) { itemMeta.lore(lore2); })); - inventory.put(35, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + inventory.put(35, new ItemMenuBuilder(this, Material.ARROW, 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 99ea263c2..8472b30dd 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 @@ -1,6 +1,5 @@ package fr.openmc.core.features.events.contents.weeklyevents.contents.contest.menu; -import dev.lone.itemsadder.api.CustomStack; import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.Menu; import fr.openmc.api.menulib.utils.InventorySize; @@ -65,7 +64,7 @@ public void onInventoryClick(InventoryClickEvent click) { String campName = ContestPlayerManager.getPlayerCampName(player); NamedTextColor campColor = ContestManager.dataPlayer.get(player.getUniqueId()).getColor(); - ItemStack shellContest = OMCRegistry.CUSTOM_ITEMS.get(SHELL_NAMESPACE).getBest(); + ItemStack shellContest = OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL.getBest(); List loreInfo = TranslationManager.translationLore("feature.events.contest.trade.info.lore"); @@ -120,7 +119,7 @@ public void onInventoryClick(InventoryClickEvent click) { ); } - inventory.put(27, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + inventory.put(27, new ItemMenuBuilder(this, Material.ARROW, true)); inventory.put(35, new ItemMenuBuilder(this, Material.EMERALD, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.events.contest.vote.info.name")); @@ -200,7 +199,7 @@ private void handleBulkTrade(Player player, ItemStack item, int amount, int amou * @param amount le nombre total de coquillages à attribuer */ private void giveShells(Player player, int amount) { - ItemStack baseShell = CustomStack.getInstance(SHELL_NAMESPACE).getItemStack(); + ItemStack baseShell = OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL.getBest(); List stacks = ItemUtils.splitAmountIntoStack(baseShell, amount); List leftovers = new ArrayList<>(); for (ItemStack stack : stacks) { 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 089fc092a..72f766927 100644 --- a/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java +++ b/src/main/java/fr/openmc/core/features/homes/HomeUpgradeManager.java @@ -57,7 +57,7 @@ public static void upgradeHome(Player player) { return; } - if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), ayweniteAmount)) { + if (!ItemUtils.hasEnoughItems(player, OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), ayweniteAmount)) { MessagesManager.sendMessage( player, TranslationManager.translation( diff --git a/src/main/java/fr/openmc/core/features/homes/icons/HomeIcon.java b/src/main/java/fr/openmc/core/features/homes/icons/HomeIcon.java index d1c47feb6..1a1405f60 100644 --- a/src/main/java/fr/openmc/core/features/homes/icons/HomeIcon.java +++ b/src/main/java/fr/openmc/core/features/homes/icons/HomeIcon.java @@ -6,7 +6,6 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -51,7 +50,7 @@ public ItemStack getItemStack() { switch (type) { case CUSTOM: try { - return Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get(materialOrCustomId)).getBest(); + return OMCRegistry.CUSTOM_ITEMS.getOrThrow(materialOrCustomId).getBest(); } catch (Exception e) { return new ItemStack(Material.GRASS_BLOCK); } 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 9c3b10264..19bf5121f 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 @@ -3,6 +3,7 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.input.dialog.DialogInput; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.core.OMCPlugin; @@ -10,7 +11,6 @@ import fr.openmc.core.features.homes.icons.HomeIcon; import fr.openmc.core.features.homes.icons.HomeIconCacheManager; import fr.openmc.core.features.homes.models.Home; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -99,12 +99,11 @@ public List getTakableSlot() { public Map getButtons() { Map map = new HashMap<>(); - map.put(45, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_back_orange").getBest(), - itemMeta -> itemMeta.displayName(TranslationManager.translation("messages.menus.back")), true)); + map.put(45, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.ICON_BACK_ORANGE, true)); - map.put(48, new ItemMenuBuilder(this, MailboxMenuManager.previousPageBtn()).setPreviousPageButton()); - map.put(49, MailboxMenuManager.cancelBtn(this).setCloseButton()); - map.put(50, new ItemMenuBuilder(this, MailboxMenuManager.nextPageBtn()).setNextPageButton()); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + map.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); // Search button map.put(51, new ItemMenuBuilder(this, Material.OAK_SIGN, meta -> { 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 d25b7ab38..061cda28d 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 @@ -3,6 +3,7 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.input.dialog.DialogInput; import fr.openmc.api.menulib.Menu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.ItemUtils; @@ -10,7 +11,6 @@ import fr.openmc.core.features.homes.HomesManager; import fr.openmc.core.features.homes.models.Home; import fr.openmc.core.features.homes.utils.HomeUtil; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; @@ -26,7 +26,6 @@ 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; @@ -87,13 +86,13 @@ public String getTexture() { HomesManager.renameHome(home, input); }))); - content.put(24, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bin_red")).getBest(), itemMeta -> { + content.put(24, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BIN_RED, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.homes.config.delete.name")); itemMeta.lore(TranslationManager.translationLore("feature.homes.config.delete.lore")); }).setOnClick(_ -> new HomeDeleteConfirmMenu(getOwner(), home).open())); - content.put(36, new ItemMenuBuilder(this, MailboxMenuManager.previousPageBtn(), true)); - content.put(44, MailboxMenuManager.cancelBtn(this).setCloseButton()); + content.put(36, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this).setBackButton()); + content.put(44, ItemMenuTemplate.BTN_CLOSE.apply(this)); return content; } 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 bacd1ca91..2aff7e379 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 @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; public class HomeDeleteConfirmMenu extends Menu { @@ -55,7 +54,7 @@ public String getTexture() { content.put(2, new ItemMenuBuilder( this, - OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bin_red").getBest(), + OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BIN_RED, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.homes.delete.confirm.name")); itemMeta.lore(TranslationManager.translationLore("feature.homes.delete.confirm.lore")); @@ -87,9 +86,7 @@ public String getTexture() { content.put(6, new ItemMenuBuilder( this, - Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bin")).getBest(), - itemMeta -> - itemMeta.displayName(TranslationManager.translation("feature.homes.delete.cancel.name")), true) + OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BIN, 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 bad98648f..2546ea36c 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 @@ -2,6 +2,7 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.ItemUtils; @@ -12,7 +13,6 @@ import fr.openmc.core.features.homes.icons.HomeIcon; import fr.openmc.core.features.homes.icons.HomeIconRegistry; import fr.openmc.core.features.homes.models.Home; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; import fr.openmc.core.utils.text.messages.Prefix; @@ -30,7 +30,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class HomeMenu extends PaginatedMenu { @@ -146,15 +149,15 @@ public Map getButtons() { Map map = new HashMap<>(); if(!wasTarget) { - map.put(53, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_upgrade")).getBest(), itemMeta -> { + map.put(53, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_UPGRADE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.homes.menu.upgrade.name")); itemMeta.lore(TranslationManager.translationLore("feature.homes.menu.upgrade.lore")); }).setOnClick(event -> new HomeUpgradeMenu(getOwner()).open())); } - map.put(48, new ItemMenuBuilder(this, MailboxMenuManager.previousPageBtn()).setPreviousPageButton()); - map.put(49, MailboxMenuManager.cancelBtn(this).setCloseButton()); - map.put(50, new ItemMenuBuilder(this, MailboxMenuManager.nextPageBtn()).setNextPageButton()); + map.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + map.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + map.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); return map; } 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 7d0e1ac3c..4ca85e450 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 @@ -21,7 +21,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Objects; public class HomeUpgradeMenu extends Menu { @@ -47,7 +46,7 @@ public String getTexture() { HomeLimits nextUpgrade = HomeUpgradeManager.getNextUpgrade(HomeUpgradeManager.getCurrentUpgrade(getOwner())); - items.put(4, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_upgrade")).getBest(), itemMeta -> { + items.put(4, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_UPGRADE, itemMeta -> { itemMeta.displayName(TranslationManager.translation("feature.homes.upgrade.item.name")); if (nextUpgrade == null) { itemMeta.lore(TranslationManager.translationLore( diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/HomeMailbox.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/HomeMailbox.java index 2b150987f..123cbaf47 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/HomeMailbox.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/HomeMailbox.java @@ -44,7 +44,7 @@ public HomeMailbox(Player player) { public @NotNull Map getContent() { Map content = new HashMap<>(); - content.put(3, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_hourglass").getBest(), meta -> { + content.put(3, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.MAILBOX_HOURGLASS, meta -> { meta.displayName(Component .text("En attente", NamedTextColor.DARK_AQUA, TextDecoration.BOLD) .decoration(TextDecoration.ITALIC, false) @@ -58,7 +58,7 @@ public HomeMailbox(Player player) { ); }).setOnClick(e -> new PlayerMailbox(getOwner()).open())); - content.put(5, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_send").getBest(), meta -> { + content.put(5, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.MAILBOX_SEND, meta -> { meta.displayName(Component .text("Envoyer", NamedTextColor.DARK_AQUA, TextDecoration.BOLD) .decoration(TextDecoration.ITALIC, false) diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/PendingMailbox.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/PendingMailbox.java index af79caa18..67959052b 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/PendingMailbox.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/PendingMailbox.java @@ -2,6 +2,7 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; @@ -72,8 +73,10 @@ public List getItems() { public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(45, MailboxMenuManager.homeBtn(this)); - buttons.putAll(MailboxMenuManager.getPaginatedButtons(this)); + buttons.put(45, ItemMenuTemplate.BTN_MAILBOX_HOME.apply(this)); + buttons.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + buttons.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + buttons.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); return buttons; } diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayerMailbox.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayerMailbox.java index 06bca6540..6271c2181 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayerMailbox.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayerMailbox.java @@ -2,12 +2,12 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; import fr.openmc.core.features.mailboxes.MailboxManager; import fr.openmc.core.features.mailboxes.menu.letter.LetterMenu; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import net.kyori.adventure.text.Component; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -64,8 +64,10 @@ public List getItems() { public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(45, MailboxMenuManager.homeBtn(this)); - buttons.putAll(MailboxMenuManager.getPaginatedButtons(this)); + buttons.put(45, ItemMenuTemplate.BTN_MAILBOX_HOME.apply(this)); + buttons.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + buttons.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + buttons.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); return buttons; } diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayersList.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayersList.java index a9c1ec479..81a9bebc7 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayersList.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/PlayersList.java @@ -3,12 +3,12 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.StaticSlots; import fr.openmc.core.features.mailboxes.MailboxManager; import fr.openmc.core.features.mailboxes.menu.letter.SendingLetter; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.utils.bukkit.ItemUtils; import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; @@ -67,8 +67,10 @@ public List getItems() { public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(45, MailboxMenuManager.homeBtn(this)); - buttons.putAll(MailboxMenuManager.getPaginatedButtons(this)); + buttons.put(45, ItemMenuTemplate.BTN_MAILBOX_HOME.apply(this)); + buttons.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + buttons.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + buttons.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); return buttons; } diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java index 2a1d131a9..1e5bfb1d2 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/LetterMenu.java @@ -2,9 +2,11 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.Menu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.core.OMCPlugin; +import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.mailboxes.Letter; import fr.openmc.core.features.mailboxes.MailboxManager; import fr.openmc.core.features.mailboxes.events.ClaimLetterEvent; @@ -16,6 +18,7 @@ import fr.openmc.core.utils.text.messages.Prefix; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.format.TextDecoration; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Player; @@ -28,7 +31,6 @@ import java.util.List; import java.util.Map; -import static fr.openmc.core.features.mailboxes.utils.MailboxMenuManager.*; import static fr.openmc.core.utils.text.InputUtils.pluralize; public class LetterMenu extends Menu { @@ -146,11 +148,22 @@ public void onClose(InventoryCloseEvent event) {} for (int i = 0; i < items.length; i++) content.put(i + 9, new ItemMenuBuilder(this, items[i])); - content.put(45, homeBtn(this)); - content.put(48, acceptBtn(this).setOnClick(e -> accept())); + content.put(45, ItemMenuTemplate.BTN_MAILBOX_HOME.apply(this)); + content.put(48, ItemMenuTemplate.BTN_MAILBOX_ACCEPT.apply(this) + .setOnClick(_ -> accept())); content.put(49, new ItemMenuBuilder(this, letterHead)); - content.put(50, refuseBtn(this).setOnClick(e -> MailboxMenuManager.sendConfirmMenuToCancelLetter(getOwner(), letter))); - content.put(53, cancelBtn(this).setOnClick(e -> cancel())); + content.put(50, ItemMenuTemplate.btn( + this, + "✘", + "Refuser", + List.of( + Component.text("Si vous faites cela, les items seront supprimés", + NamedTextColor.RED, TextDecoration.BOLD) + .decoration(TextDecoration.ITALIC, false)), + OMCRegistry.CUSTOM_ITEMS.MAILBOX_REFUSE_BTN, NamedTextColor.DARK_RED, true) + .setOnClick(e -> MailboxMenuManager.sendConfirmMenuToCancelLetter(getOwner(), letter))); + content.put(53, ItemMenuTemplate.BTN_CLOSE.apply(this) + .setOnClick(_ -> cancel())); return content; } diff --git a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/SendingLetter.java b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/SendingLetter.java index 792928d7a..69894a0a6 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/SendingLetter.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/menu/letter/SendingLetter.java @@ -2,12 +2,12 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.Menu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.api.menulib.utils.MenuUtils; import fr.openmc.core.OMCPlugin; import fr.openmc.core.features.mailboxes.MailboxManager; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -120,10 +120,10 @@ public void onClose(InventoryCloseEvent e) { items.put(slot, new ItemMenuBuilder(this, ItemUtils.getInvisibleItem())); } - items.put(49, new ItemMenuBuilder(this, getHead(receiver)).setOnClick(e -> {})); - items.put(45, new ItemMenuBuilder(this, MailboxMenuManager.homeBtn(this))); - items.put(48, new ItemMenuBuilder(this, MailboxMenuManager.sendBtn(this)).setOnClick(e -> sendLetter(e.getInventory()))); - items.put(50, new ItemMenuBuilder(this, MailboxMenuManager.cancelBtn(this)).setOnClick(e -> getOwner().closeInventory())); + items.put(49, new ItemMenuBuilder(this, getHead(receiver))); + items.put(45, ItemMenuTemplate.BTN_MAILBOX_HOME.apply(this)); + items.put(48, ItemMenuTemplate.BTN_MAILBOX_SEND.apply(this).setOnClick(e -> sendLetter(e.getInventory()))); + items.put(50, ItemMenuTemplate.BTN_CLOSE.apply(this).setOnClick(_ -> getOwner().closeInventory())); return items; } diff --git a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java index 1eb0554be..db7d73250 100644 --- a/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java +++ b/src/main/java/fr/openmc/core/features/mailboxes/utils/MailboxMenuManager.java @@ -1,105 +1,20 @@ package fr.openmc.core.features.mailboxes.utils; -import fr.openmc.api.menulib.Menu; import fr.openmc.api.menulib.template.ConfirmMenu; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.core.OMCRegistry; import fr.openmc.core.features.mailboxes.Letter; -import fr.openmc.core.features.mailboxes.menu.HomeMailbox; import fr.openmc.core.features.mailboxes.menu.PendingMailbox; 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 net.kyori.adventure.text.format.NamedTextColor; -import net.kyori.adventure.text.format.TextDecoration; -import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; -import java.util.HashMap; import java.util.List; public class MailboxMenuManager { - public static ItemMenuBuilder getBtn(Menu menu, String symbol, String name, String customModelName, NamedTextColor color, boolean bold) { - Component itemName = Component.text("[", NamedTextColor.DARK_GRAY) - .append(Component.text(symbol, color)) - .append(Component.text("]", NamedTextColor.DARK_GRAY)) - .append(Component.text(" " + name, color)); - return new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.get(customModelName).getBest(), meta -> { - meta.displayName(itemName.decorate(TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false).decoration(TextDecoration.BOLD, bold)); - meta.setMaxStackSize(1); - }); - } - - public static ItemMenuBuilder cancelBtn(Menu menu) { - return getBtn(menu, "✘", "Annuler", "omc_menus:mailbox_cancel_btn", NamedTextColor.DARK_RED, true); - } - - public static ItemStack nextPageBtn() { - Component name = Component.text("Page suivante ➡", NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false); - ItemStack item = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_arrow_right").getBest(); - ItemMeta meta = item.getItemMeta(); - meta.displayName(name); - meta.setMaxStackSize(1); - item.setItemMeta(meta); - return item; - } - - public static ItemStack previousPageBtn() { - Component name = Component.text("⬅ Page précédente", NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false); - ItemStack item = OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_arrow_left").getBest(); - ItemMeta meta = item.getItemMeta(); - meta.displayName(name); - meta.setMaxStackSize(1); - item.setItemMeta(meta); - return item; - } - - public static ItemMenuBuilder acceptBtn(Menu menu) { - return getBtn(menu, "✔", "Accepter", "omc_menus:mailbox_accept_btn", NamedTextColor.DARK_GREEN, true); - } - - public static ItemMenuBuilder sendBtn(Menu menu) { - return getBtn(menu, "✉", "Envoyer", "omc_menus:mailbox_send", NamedTextColor.DARK_AQUA, true); - } - - public static ItemMenuBuilder refuseBtn(Menu menu) { - ItemMenuBuilder item = getBtn(menu, "✘", "Refuser", "omc_menus:mailbox_refuse_btn", NamedTextColor.DARK_RED, true); - item.editMeta( - meta -> meta.lore(List.of(Component.text("Si vous faites cela, les items seront supprimés", NamedTextColor.RED, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false))) - ); - return item; - } - - public static ItemMenuBuilder homeBtn(Menu menu) { - ItemStack item = new ItemStack(Material.CHEST); - ItemMeta meta = item.getItemMeta(); - meta.displayName(Component.text("⬅ Home", NamedTextColor.GOLD, TextDecoration.BOLD).decoration(TextDecoration.ITALIC, false)); - meta.setMaxStackSize(1); - item.setItemMeta(meta); - return new ItemMenuBuilder(menu, item).setOnClick(e -> new HomeMailbox(menu.getOwner()).open()); - } - - public static HashMap getPaginatedButtons(Menu menu) { - HashMap buttons = new HashMap<>(); - - buttons.put(48, new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_arrow_left").getBest(), meta -> { - meta.displayName(Component.text("§6§l⬅ Page précédente")); - }).setPreviousPageButton()); - - buttons.put(49, new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_cancel_btn").getBest(), meta -> { - meta.displayName(Component.text("§8§l[§c§l✖§8§l] §c§lFermer")); - }).setCloseButton()); - - buttons.put(50, new ItemMenuBuilder(menu, OMCRegistry.CUSTOM_ITEMS.get("omc_menus:mailbox_arrow_right").getBest(), meta -> { - meta.displayName(Component.text("§6§lPage suivante ➡")); - }).setNextPageButton()); - - return buttons; - } - public static void sendConfirmMenuToCancelLetter(Player player, Letter letter) { new ConfirmMenu(player, () -> { diff --git a/src/main/java/fr/openmc/core/features/milestones/menus/MainMilestonesMenu.java b/src/main/java/fr/openmc/core/features/milestones/menus/MainMilestonesMenu.java index b3d6af946..df62220f0 100644 --- a/src/main/java/fr/openmc/core/features/milestones/menus/MainMilestonesMenu.java +++ b/src/main/java/fr/openmc/core/features/milestones/menus/MainMilestonesMenu.java @@ -101,7 +101,7 @@ public void onInventoryClick(InventoryClickEvent click) { inventory.put(16, new ItemMenuBuilder(this, Material.BARREL, itemMeta -> itemMeta.displayName(Component.text(" §ks §cComming soon §ke")))); - inventory.put(35, new ItemMenuBuilder(this, Material.ARROW, itemMeta -> itemMeta.displayName(Component.text("§r§aRetour")), true)); + inventory.put(35, new ItemMenuBuilder(this, Material.ARROW, true)); return inventory; } diff --git a/src/main/java/fr/openmc/core/features/milestones/quests/MilestoneQuest.java b/src/main/java/fr/openmc/core/features/milestones/quests/MilestoneQuest.java index 9bf83afcf..860bba379 100644 --- a/src/main/java/fr/openmc/core/features/milestones/quests/MilestoneQuest.java +++ b/src/main/java/fr/openmc/core/features/milestones/quests/MilestoneQuest.java @@ -6,6 +6,7 @@ import fr.openmc.core.features.quests.objects.Quest; import fr.openmc.core.features.quests.objects.QuestTier; import fr.openmc.core.features.quests.rewards.QuestMethodsReward; +import fr.openmc.core.registry.items.CustomItem; import lombok.Getter; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -23,6 +24,19 @@ public class MilestoneQuest extends Quest { protected final Consumer actionsAfterDialog; protected List dialogs; + /** + * Constructeur de MilestoneQuest + * @param name le nom de la quete + * @param baseDescription la description de base de la quete + * @param icon l'icone de la quete (Material) + * @param type le type de milestone + * @param step l'enum lié a l'étape + * @param quest les tiers afin de valider la quete + */ + public MilestoneQuest(String name, List baseDescription, Material icon, MilestoneType type, Enum step, QuestTier quest) { + this(name, baseDescription, new ItemStack(icon), type, step, quest); + } + /** * Constructeur initial de MilestoneQuest * @param name le nom de la quete @@ -43,16 +57,22 @@ public MilestoneQuest(String name, List baseDescription, ItemStack icon, } /** - * Constructeur de MilestoneQuest + * Constructeur initial de MilestoneQuest * @param name le nom de la quete * @param baseDescription la description de base de la quete - * @param icon l'icone de la quete (Material) + * @param customItem l'icone de la quete (item stack) * @param type le type de milestone * @param step l'enum lié a l'étape * @param quest les tiers afin de valider la quete */ - public MilestoneQuest(String name, List baseDescription, Material icon, MilestoneType type, Enum step, QuestTier quest) { - this(name, baseDescription, new ItemStack(icon), type, step, quest); + public MilestoneQuest(String name, List baseDescription, CustomItem customItem, MilestoneType type, Enum step, QuestTier quest) { + super(name, baseDescription, customItem.getBest()); + this.type = type; + this.step = step; + this.addTier(quest.addReward( + new QuestMethodsReward(player -> MilestoneUtils.completeStep(type, player, step)) + )); + this.actionsAfterDialog = null; } /** @@ -83,6 +103,20 @@ public MilestoneQuest(String name, List baseDescription, ItemStack icon, this(name, baseDescription, new ItemStack(icon), type, step, quest, dialogs, null); } + /** + * Constructeur de MilestoneQuest + * @param name le nom de la quete + * @param baseDescription la description de base de la quete + * @param customItem l'icone de la quete (CustomItem) + * @param type le type de milestone + * @param step l'enum lié a l'étape + * @param quest les tiers afin de valider la quete + * @param dialogs les dialogues à afficher lors de la validation de la quête + */ + public MilestoneQuest(String name, List baseDescription, CustomItem customItem, MilestoneType type, Enum step, QuestTier quest, List dialogs) { + this(name, baseDescription, customItem.getBest(), type, step, quest, dialogs, null); + } + /** * Constructeur de MilestoneQuest * @param name le nom de la quete @@ -122,6 +156,30 @@ public MilestoneQuest(String name, List baseDescription, ItemStack icon, this.actionsAfterDialog = actionsAfterDialog; } + /** + * Constructeur de MilestoneQuest + * @param name le nom de la quete + * @param baseDescription la description de base de la quete + * @param customItem l'icone de la quete (CustomItem) + * @param type le type de milestone + * @param step l'enum lié a l'étape + * @param quest les tiers afin de valider la quete + * @param dialogs les dialogues à afficher lors de la validation de la quête + * @param actionsAfterDialog les actions à effectuer après la fin du dialogue + */ + public MilestoneQuest(String name, List baseDescription, CustomItem customItem, MilestoneType type, Enum step, QuestTier quest, List dialogs, Consumer actionsAfterDialog) { + super(name, baseDescription, customItem.getBest()); + this.type = type; + this.step = step; + this.dialogs = dialogs; + this.addTier(quest.addRewards( + new QuestMethodsReward(player -> MilestoneUtils.completeStep(type, player, step)), + new QuestDialogReward(step, dialogs) + ) + ); + this.actionsAfterDialog = actionsAfterDialog; + } + /** * Increment the progress for the quest for a player authorizing Dream world * diff --git a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/BreakAyweniteQuest.java b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/BreakAyweniteQuest.java index 2285b4bbb..00f9029f8 100644 --- a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/BreakAyweniteQuest.java +++ b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/BreakAyweniteQuest.java @@ -31,7 +31,7 @@ public BreakAyweniteQuest() { "§fLe nouveau minerai de la §dV2, trouvable dans les grottes", "§fIl vous sera §dutile §fdans de nombreuses fonctionnalités" ), - OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), + OMCRegistry.CUSTOM_ITEMS.AYWENITE, MilestoneType.TUTORIAL, TutorialSteps.BREAK_AYWENITE, new QuestTier( diff --git a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeCreateQuest.java b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeCreateQuest.java index e2a018543..480808f30 100644 --- a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeCreateQuest.java +++ b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeCreateQuest.java @@ -35,7 +35,7 @@ public HomeCreateQuest() { new QuestTier( 1, new QuestMoneyReward(HomeLimits.LIMIT_1.getPrice()), - new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), HomeLimits.LIMIT_1.getAyweniteCost()), + new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), HomeLimits.LIMIT_1.getAyweniteCost()), new QuestTextReward( "Bien joué ! Vous avez fini l'§6étape " + (TutorialSteps.HOME_CREATE.ordinal() + 1) + " §f! Les homes sont souvent utilisés pour pas perdre votre base ! Vous êtes limité à avoir que 1 home au début. Il va falloir penser à les améliorer...", Prefix.MILLESTONE, diff --git a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeUpgradeQuest.java b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeUpgradeQuest.java index 7ae3fb12c..4133be061 100644 --- a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeUpgradeQuest.java +++ b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/HomeUpgradeQuest.java @@ -27,7 +27,7 @@ public HomeUpgradeQuest() { "§fpour pouvoir améliorer votre limite de homes", "§8§oCela vous permettra d'avoir plus de homes !" ), - OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_upgrade").getBest(), + OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_UPGRADE, MilestoneType.TUTORIAL, TutorialSteps.HOME_UPGRADE, new QuestTier( diff --git a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/OpenContestMenuQuest.java b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/OpenContestMenuQuest.java index 8becec55a..ed89fa244 100644 --- a/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/OpenContestMenuQuest.java +++ b/src/main/java/fr/openmc/core/features/milestones/tutorial/quests/OpenContestMenuQuest.java @@ -34,7 +34,7 @@ public OpenContestMenuQuest() { "§fTapez §d/contest §fou bien aller dans le §dmenu principal (/menu) §fpour pouvoir ouvrir le menu", "§8§oUne méthode compétitive pour gagner des grosses récompenses !" ), - OMCRegistry.CUSTOM_ITEMS.get("omc_contest:contest_shell").getBest(), + OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL, MilestoneType.TUTORIAL, TutorialSteps.OPEN_CONTEST, new QuestTier( @@ -45,7 +45,7 @@ public OpenContestMenuQuest() { Prefix.MILLESTONE, MessageType.SUCCESS ), - new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(), 30), + new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(), 30), new QuestMethodsReward( player -> { List items = new ArrayList<>(); @@ -60,7 +60,7 @@ public OpenContestMenuQuest() { ); if (!limitDate.isBefore(today)) { - ItemStack aywenPlush = OMCRegistry.CUSTOM_ITEMS.get("omc_plush:peluche_awyen").getBest(); + ItemStack aywenPlush = OMCRegistry.CUSTOM_ITEMS.PELUCHE_AWYEN.getBest(); items.add(aywenPlush); } } diff --git a/src/main/java/fr/openmc/core/features/quests/menus/QuestsMenu.java b/src/main/java/fr/openmc/core/features/quests/menus/QuestsMenu.java index 569df74c6..46f78625b 100644 --- a/src/main/java/fr/openmc/core/features/quests/menus/QuestsMenu.java +++ b/src/main/java/fr/openmc/core/features/quests/menus/QuestsMenu.java @@ -116,13 +116,13 @@ public void onInventoryClick(InventoryClickEvent event) { } if (this.currentPage > 0) { - content.put(19, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_quests:quests_left_arrow")).getBest(), meta -> + content.put(19, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.QUESTS_LEFT_ARROW, meta -> meta.displayName(Component.text("Page précédente").decoration(TextDecoration.ITALIC, false)) )); } if (this.currentPage < this.totalPages - 1) { - content.put(25, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_quests:quests_right_arrow")).getBest(), meta -> + content.put(25, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.QUESTS_RIGHT_ARROW, meta -> meta.displayName(Component.text("Page suivante").decoration(TextDecoration.ITALIC, false)) )); } diff --git a/src/main/java/fr/openmc/core/features/quests/objects/Quest.java b/src/main/java/fr/openmc/core/features/quests/objects/Quest.java index 076897a9e..8031f92a4 100644 --- a/src/main/java/fr/openmc/core/features/quests/objects/Quest.java +++ b/src/main/java/fr/openmc/core/features/quests/objects/Quest.java @@ -5,6 +5,7 @@ import fr.openmc.core.features.quests.events.QuestCompleteEvent; import fr.openmc.core.features.quests.rewards.QuestItemReward; import fr.openmc.core.features.quests.rewards.QuestReward; +import fr.openmc.core.registry.items.CustomItem; import fr.openmc.core.utils.bukkit.ItemUtils; import fr.openmc.core.utils.text.messages.MessageType; import fr.openmc.core.utils.text.messages.MessagesManager; @@ -58,6 +59,21 @@ public Quest(String name, List baseDescription, ItemStack icon) { this.isLargeActionBar = false; } + /** + * Constructor for Quest. + * + * @param name The name of the quest + * @param baseDescription The base description of the quest + * @param icon The icon representing the quest - CustomItem + */ + public Quest(String name, List baseDescription, CustomItem icon) { + this.name = name; + this.baseDescription = baseDescription; + this.additionalLore = List.of(); + this.icon = icon.getBest(); + this.isLargeActionBar = false; + } + /** * Constructor for Quest. * diff --git a/src/main/java/fr/openmc/core/features/quests/quests/ConsumeKebabQuest.java b/src/main/java/fr/openmc/core/features/quests/quests/ConsumeKebabQuest.java index ff2571a70..b3b64bac5 100644 --- a/src/main/java/fr/openmc/core/features/quests/quests/ConsumeKebabQuest.java +++ b/src/main/java/fr/openmc/core/features/quests/quests/ConsumeKebabQuest.java @@ -15,7 +15,7 @@ public class ConsumeKebabQuest extends Quest implements Listener { public ConsumeKebabQuest() { - super("Miam miam", List.of("Manger {target} kebab{s}"), OMCRegistry.CUSTOM_ITEMS.get("omc_foods:kebab").getBest()); + super("Miam miam", List.of("Manger {target} kebab{s}"), OMCRegistry.CUSTOM_ITEMS.KEBAB); this.addTiers( new QuestTier(10, new QuestMoneyReward(30)), @@ -28,7 +28,7 @@ public ConsumeKebabQuest() { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerConsume(PlayerItemConsumeEvent event) { ItemStack item = event.getItem(); - if (item.isSimilar(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:kebab").getBest())) { + if (item.isSimilar(OMCRegistry.CUSTOM_ITEMS.KEBAB.getBest())) { this.incrementProgress(event.getPlayer().getUniqueId()); } } diff --git a/src/main/java/fr/openmc/core/features/quests/quests/CraftTheMixtureQuest.java b/src/main/java/fr/openmc/core/features/quests/quests/CraftTheMixtureQuest.java index cfccf12f0..0fb0851eb 100644 --- a/src/main/java/fr/openmc/core/features/quests/quests/CraftTheMixtureQuest.java +++ b/src/main/java/fr/openmc/core/features/quests/quests/CraftTheMixtureQuest.java @@ -21,11 +21,11 @@ public CraftTheMixtureQuest() { super( "The Mixture", List.of("Fabriquer {target} The Mixture{s}"), - OMCRegistry.CUSTOM_ITEMS.get("omc_foods:the_mixture").getBest() + OMCRegistry.CUSTOM_ITEMS.THE_MIXTURE ); this.addTiers( - new QuestTier(1, new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:the_mixture").getBest(), 16)), + new QuestTier(1, new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.THE_MIXTURE.getBest(), 16)), new QuestTier(32, new QuestMoneyReward(100)), new QuestTier(128, new QuestMoneyReward(300)), new QuestTier(512, new QuestMoneyReward(700)) @@ -35,7 +35,7 @@ public CraftTheMixtureQuest() { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerCraft(CraftItemEvent event) { ItemStack item = event.getCurrentItem(); - if (item == null || !item.isSimilar(OMCRegistry.CUSTOM_ITEMS.get("omc_foods:the_mixture").getBest())) + if (item == null || !item.isSimilar(OMCRegistry.CUSTOM_ITEMS.THE_MIXTURE.getBest())) return; // Le joueur ne craft pas plus d'un kebab diff --git a/src/main/java/fr/openmc/core/features/quests/quests/MineAyweniteQuest.java b/src/main/java/fr/openmc/core/features/quests/quests/MineAyweniteQuest.java index 565db8c3b..154537a08 100644 --- a/src/main/java/fr/openmc/core/features/quests/quests/MineAyweniteQuest.java +++ b/src/main/java/fr/openmc/core/features/quests/quests/MineAyweniteQuest.java @@ -20,7 +20,7 @@ public class MineAyweniteQuest extends Quest implements Listener { public MineAyweniteQuest() { - super("Ohhh... c'est précieux ça ?", List.of("Miner {target} Aywenite{s}"), OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest()); + super("Ohhh... c'est précieux ça ?", List.of("Miner {target} Aywenite{s}"), OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest()); this.addTiers( new QuestTier(1, new QuestMoneyReward(20)), diff --git a/src/main/java/fr/openmc/core/features/quests/quests/WinContestQuest.java b/src/main/java/fr/openmc/core/features/quests/quests/WinContestQuest.java index b3a5ac600..2b74a6cd7 100644 --- a/src/main/java/fr/openmc/core/features/quests/quests/WinContestQuest.java +++ b/src/main/java/fr/openmc/core/features/quests/quests/WinContestQuest.java @@ -21,7 +21,7 @@ public WinContestQuest() { Material.NAUTILUS_SHELL ); - this.addTier(new QuestTier(1, new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.get("omc_contest:contest_shell").getBest(), 5))); + this.addTier(new QuestTier(1, new QuestItemReward(OMCRegistry.CUSTOM_ITEMS.CONTEST_SHELL, 5))); } @EventHandler diff --git a/src/main/java/fr/openmc/core/features/quests/rewards/QuestItemReward.java b/src/main/java/fr/openmc/core/features/quests/rewards/QuestItemReward.java index 2b2399824..13b62e345 100644 --- a/src/main/java/fr/openmc/core/features/quests/rewards/QuestItemReward.java +++ b/src/main/java/fr/openmc/core/features/quests/rewards/QuestItemReward.java @@ -1,5 +1,6 @@ package fr.openmc.core.features.quests.rewards; +import fr.openmc.core.registry.items.CustomItem; import lombok.Getter; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -26,11 +27,22 @@ public QuestItemReward(Material material, int amount) { /** * Create a new QuestItemReward. * - * @param material The material of the item. + * @param itemStack The material of the item. + * @param amount The amount of the item. + */ + public QuestItemReward(ItemStack itemStack, int amount) { + this.itemStack = itemStack; + this.amount = amount; + } + + /** + * Create a new QuestItemReward. + * + * @param customItem The material of the item. * @param amount The amount of the item. */ - public QuestItemReward(ItemStack material, int amount) { - this.itemStack = material; + public QuestItemReward(CustomItem customItem, int amount) { + this.itemStack = customItem.getBest(); this.amount = amount; } diff --git a/src/main/java/fr/openmc/core/features/settings/menu/PlayerSettingsMenu.java b/src/main/java/fr/openmc/core/features/settings/menu/PlayerSettingsMenu.java index dff8d5fb8..24977ad84 100644 --- a/src/main/java/fr/openmc/core/features/settings/menu/PlayerSettingsMenu.java +++ b/src/main/java/fr/openmc/core/features/settings/menu/PlayerSettingsMenu.java @@ -3,10 +3,10 @@ import dev.lone.itemsadder.api.FontImages.FontImageWrapper; import fr.openmc.api.menulib.PaginatedMenu; import fr.openmc.api.menulib.template.ConfirmMenu; +import fr.openmc.api.menulib.template.ItemMenuTemplate; import fr.openmc.api.menulib.utils.InventorySize; import fr.openmc.api.menulib.utils.ItemMenuBuilder; import fr.openmc.core.OMCRegistry; -import fr.openmc.core.features.mailboxes.utils.MailboxMenuManager; import fr.openmc.core.features.settings.PlayerSettings; import fr.openmc.core.features.settings.PlayerSettingsManager; import fr.openmc.core.features.settings.SettingType; @@ -25,7 +25,10 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.IntStream; public class PlayerSettingsMenu extends PaginatedMenu { @@ -61,33 +64,33 @@ public int getSizeOfItems() { public Map getButtons() { Map buttons = new HashMap<>(); - buttons.put(45, new ItemMenuBuilder(this, Objects.requireNonNull(OMCRegistry.CUSTOM_ITEMS.get("omc_homes:omc_homes_icon_bin_red")).getBest(), meta -> { + buttons.put(45, new ItemMenuBuilder(this, OMCRegistry.CUSTOM_ITEMS.HOMES_ICON_BIN_RED, meta -> { meta.displayName(Component.text("§cRéinitialiser les paramètres", NamedTextColor.RED) .decoration(TextDecoration.ITALIC, false)); - }).setOnClick(event -> { - new ConfirmMenu(getOwner(), () -> { - settings.resetAllSettings(); - this.refresh(); - MessagesManager.sendMessage(getOwner(), - Component.text("Tous les paramètres ont été réinitialisés.", NamedTextColor.GREEN) - .decoration(TextDecoration.ITALIC, false), - Prefix.SETTINGS, MessageType.SUCCESS, true); - }, - this::open, - List.of( - Component.text("Êtes-vous sûr de vouloir réinitialiser tous les paramètres ?", - NamedTextColor.RED).decoration(TextDecoration.ITALIC, false), - Component.text("Cette action est irréversible.", NamedTextColor.YELLOW) - .decoration(TextDecoration.ITALIC, false)), - List.of( - Component.text("Cliquez pour annuler", NamedTextColor.GRAY) - .decoration(TextDecoration.ITALIC, false)) - ).open(); - })); - - buttons.put(48, new ItemMenuBuilder(this, MailboxMenuManager.previousPageBtn()).setPreviousPageButton()); - buttons.put(49, MailboxMenuManager.cancelBtn(this).setCloseButton()); - buttons.put(50, new ItemMenuBuilder(this, MailboxMenuManager.nextPageBtn()).setNextPageButton()); + }).setOnClick(_ -> + new ConfirmMenu(getOwner(), () -> { + settings.resetAllSettings(); + this.refresh(); + MessagesManager.sendMessage(getOwner(), + Component.text("Tous les paramètres ont été réinitialisés.", NamedTextColor.GREEN) + .decoration(TextDecoration.ITALIC, false), + Prefix.SETTINGS, MessageType.SUCCESS, true); + }, + this::open, + List.of( + Component.text("Êtes-vous sûr de vouloir réinitialiser tous les paramètres ?", + NamedTextColor.RED).decoration(TextDecoration.ITALIC, false), + Component.text("Cette action est irréversible.", NamedTextColor.YELLOW) + .decoration(TextDecoration.ITALIC, false)), + List.of( + Component.text("Cliquez pour annuler", NamedTextColor.GRAY) + .decoration(TextDecoration.ITALIC, false)) + ).open() + )); + + buttons.put(48, ItemMenuTemplate.BTN_PREVIOUS_PAGE_WHITE.apply(this)); + buttons.put(49, ItemMenuTemplate.BTN_CLOSE.apply(this)); + buttons.put(50, ItemMenuTemplate.BTN_NEXT_PAGE_WHITE.apply(this)); return buttons; } diff --git a/src/main/java/fr/openmc/core/features/tickets/TicketListener.java b/src/main/java/fr/openmc/core/features/tickets/TicketListener.java index e7fb6c3bc..5e0ff2854 100644 --- a/src/main/java/fr/openmc/core/features/tickets/TicketListener.java +++ b/src/main/java/fr/openmc/core/features/tickets/TicketListener.java @@ -38,8 +38,8 @@ public void onGetRewardLootBox(LootboxRewardEvent event) { String pelushKey = "omc_plush:peluche_seinyy"; boolean hasLootPelucheSeinyy = event.getLoot().items().stream() - .filter(loot -> OMCRegistry.CUSTOM_ITEMS.get(loot) != null) - .anyMatch(loot -> OMCRegistry.CUSTOM_ITEMS.get(loot).getId().equals(pelushKey)); + .filter(loot -> OMCRegistry.CUSTOM_ITEMS.get(loot).isPresent()) + .anyMatch(loot -> OMCRegistry.CUSTOM_ITEMS.getOrThrow(loot).getId().equals(pelushKey)); Player player = event.getPlayer(); PlayerStats ps = TicketManager.getPlayerStats(player.getUniqueId()); diff --git a/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsMenu.java b/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsMenu.java index c9c59975b..ede9dbdd8 100644 --- a/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsMenu.java +++ b/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsMenu.java @@ -102,7 +102,7 @@ public String getTexture() { } if (TicketManager.useTicket(getOwner().getUniqueId())) { - OMCRegistry.CUSTOM_LOOTBOXES.get("omc:machine_ball").open(getOwner()); + OMCRegistry.CUSTOM_LOOTBOXES.MACHINE_BALL.open(getOwner()); } } )); diff --git a/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsOpenMenu.java b/src/main/java/fr/openmc/core/features/tickets/menus/MachineBallsOpenMenu.java new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/fr/openmc/core/listeners/BlockBreakListener.java b/src/main/java/fr/openmc/core/listeners/BlockBreakListener.java index 80ae99862..db8692f48 100644 --- a/src/main/java/fr/openmc/core/listeners/BlockBreakListener.java +++ b/src/main/java/fr/openmc/core/listeners/BlockBreakListener.java @@ -10,6 +10,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.inventory.ItemStack; +import java.util.Optional; + public class BlockBreakListener implements Listener { @EventHandler @@ -21,10 +23,10 @@ public void onBlockBreak(BlockBreakEvent event) { ProtectionsManager.verify(player, event, event.getBlock().getLocation()); ItemStack itemInHand = player.getInventory().getItemInMainHand(); - CustomItem item = OMCRegistry.CUSTOM_ITEMS.get(itemInHand); - if (item == null) return; + Optional item = OMCRegistry.CUSTOM_ITEMS.get(itemInHand); + if (item.isEmpty()) return; - if (item instanceof BlockBreakableItem breakableItem) breakableItem.onBlockBreak(player, event); + if (item.get() instanceof BlockBreakableItem breakableItem) breakableItem.onBlockBreak(player, event); } } diff --git a/src/main/java/fr/openmc/core/listeners/EquipableItemListener.java b/src/main/java/fr/openmc/core/listeners/EquipableItemListener.java index 01eda1174..008eabe60 100644 --- a/src/main/java/fr/openmc/core/listeners/EquipableItemListener.java +++ b/src/main/java/fr/openmc/core/listeners/EquipableItemListener.java @@ -50,8 +50,8 @@ public void onQuit(PlayerQuitEvent event) { for (ItemStack piece : player.getInventory().getArmorContents()) { if (piece == null || piece.getType().isAir()) continue; - CustomItem customItem = OMCRegistry.CUSTOM_ITEMS.get(piece); - if (customItem instanceof EquipableItem equipable) { + Optional customItem = OMCRegistry.CUSTOM_ITEMS.get(piece); + if (customItem.isPresent() && customItem.get() instanceof EquipableItem equipable) { equipable.removeEffects(player); } } @@ -87,8 +87,8 @@ private void recalc(Player player, ItemStack oldPiece) { if (oldPiece != null && !oldPiece.getType().isAir()) { - CustomItem customItem = OMCRegistry.CUSTOM_ITEMS.get(oldPiece); - if (customItem instanceof EquipableItem equipable) { + Optional customItem = OMCRegistry.CUSTOM_ITEMS.get(oldPiece); + if (customItem.isPresent() && customItem.get() instanceof EquipableItem equipable) { equipable.removeEffects(player); } } @@ -99,8 +99,9 @@ private void recalc(Player player, ItemStack oldPiece) { if (piece == null || piece.getType().isAir()) continue; - CustomItem customItem = OMCRegistry.CUSTOM_ITEMS.get(piece); - if (!(customItem instanceof EquipableItem equipable)) continue; + Optional customItem = OMCRegistry.CUSTOM_ITEMS.get(piece); + if (customItem.isEmpty()) continue; + if (!(customItem.get() instanceof EquipableItem equipable)) continue; for (var entry : equipable.getEffects().entrySet()) { PotionEffectType type = entry.getKey(); diff --git a/src/main/java/fr/openmc/core/listeners/InteractListener.java b/src/main/java/fr/openmc/core/listeners/InteractListener.java index 7619b9615..c28899705 100644 --- a/src/main/java/fr/openmc/core/listeners/InteractListener.java +++ b/src/main/java/fr/openmc/core/listeners/InteractListener.java @@ -11,6 +11,8 @@ import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import java.util.Optional; + public class InteractListener implements Listener { @EventHandler(priority = EventPriority.LOWEST) @@ -18,11 +20,11 @@ void onInteract(PlayerInteractEvent event) { Player player = event.getPlayer(); ItemStack itemInHand = player.getInventory().getItemInMainHand(); - CustomItem item = OMCRegistry.CUSTOM_ITEMS.get(itemInHand); + Optional item = OMCRegistry.CUSTOM_ITEMS.get(itemInHand); - if (item == null) return; + if (item.isEmpty()) return; - if (item instanceof UsableItem usable) { + if (item.get() instanceof UsableItem usable) { Action action = event.getAction(); if (player.isSneaking()) usable.onSneakClick(player, event); diff --git a/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java b/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java index dd29def36..bdf5dfafc 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java +++ b/src/main/java/fr/openmc/core/registry/ambient/CustomAmbientRegistry.java @@ -13,6 +13,10 @@ public class CustomAmbientRegistry extends Registry implements KeyedRegistry { private final OMCDatapack ambientDatapack = new OMCDatapack("openmc", "omc_ambient"); + // ** REGISTER AMBIENT ** + public final CustomAmbient DARK = register(new DarkAmbient()); + public final CustomAmbient HELL = register(new HellAmbient()); + @Override public String key(CustomAmbient registryObject) { return registryObject.getId(); @@ -20,11 +24,6 @@ public String key(CustomAmbient registryObject) { @Override public void bootstrap(BootstrapContext context) throws IOException { - register( - new DarkAmbient(), - new HellAmbient() - ); - for (CustomAmbient ambient : values()) { ambientDatapack.addInjector(ambient.toDimensionTypeInjector()); } diff --git a/src/main/java/fr/openmc/core/registry/ambient/commands/CustomAmbientCommands.java b/src/main/java/fr/openmc/core/registry/ambient/commands/CustomAmbientCommands.java index 71c919445..55601e684 100644 --- a/src/main/java/fr/openmc/core/registry/ambient/commands/CustomAmbientCommands.java +++ b/src/main/java/fr/openmc/core/registry/ambient/commands/CustomAmbientCommands.java @@ -15,6 +15,8 @@ import revxrsal.commands.annotation.SuggestWith; import revxrsal.commands.bukkit.annotation.CommandPermission; +import java.util.Optional; + @Command({"ambient", "customambient"}) @CommandPermission("omc.admins.commands.customambient") public class CustomAmbientCommands { @@ -24,14 +26,14 @@ public void applyAmbient( Player toPlayer, @SuggestWith(CustomAmbientAutoComplete.class) String id ) { - CustomAmbient ambient = OMCRegistry.CUSTOM_AMBIENTS.get(id); + Optional ambient = OMCRegistry.CUSTOM_AMBIENTS.get(id); - if (ambient == null) { + if (ambient.isEmpty()) { MessagesManager.sendMessage(player, TranslationManager.translation("command.registry.custom_ambient.apply.null"), Prefix.STAFF, MessageType.ERROR, true); return; } - ambient.apply(toPlayer); + ambient.get().apply(toPlayer); MessagesManager.sendMessage(player, TranslationManager.translation("command.registry.custom_ambient.apply.success", Component.text(id).color(NamedTextColor.YELLOW), Component.text(toPlayer.getName()).color(NamedTextColor.YELLOW) @@ -50,7 +52,7 @@ public void resetAmbient( String idAmbient = CustomAmbient.ACTIVE_AMBIENTS.get(toPlayer.getUniqueId()); - OMCRegistry.CUSTOM_AMBIENTS.get(idAmbient).reset(toPlayer); + OMCRegistry.CUSTOM_AMBIENTS.getOrThrow(idAmbient).reset(toPlayer); MessagesManager.sendMessage(player, TranslationManager.translation("command.registry.custom_ambient.reset.success", Component.text(toPlayer.getName()).color(NamedTextColor.YELLOW) ), Prefix.STAFF, MessageType.ERROR, true); diff --git a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java index fe98ee9b2..b632fdb78 100644 --- a/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java +++ b/src/main/java/fr/openmc/core/registry/enchantments/CustomEnchantmentRegistry.java @@ -25,14 +25,13 @@ public Key key(CustomEnchantment registryObject) { return registryObject.getKey(); } + // ** REGISTER ENCHANTMENT ** + public final CustomEnchantment SOULBOUND = register(new Soulbound()); + public final CustomEnchantment EXPERIENTASTIC = register(new Experientastic()); + public final CustomEnchantment DREAM_SLEEPER = register(new DreamSleeper()); + @Override public void bootstrap(BootstrapContext context) { - register( - new Soulbound(), - new Experientastic(), - new DreamSleeper() - ); - context.getLifecycleManager().registerEventHandler(RegistryEvents.ENCHANTMENT.compose() .newHandler(this::loadEnchantmentInBootstrap)); diff --git a/src/main/java/fr/openmc/core/registry/items/CustomItem.java b/src/main/java/fr/openmc/core/registry/items/CustomItem.java index e514711e6..a3565f424 100644 --- a/src/main/java/fr/openmc/core/registry/items/CustomItem.java +++ b/src/main/java/fr/openmc/core/registry/items/CustomItem.java @@ -7,6 +7,8 @@ import lombok.Getter; import org.bukkit.inventory.ItemStack; +import java.util.Optional; + public abstract class CustomItem { @Getter private final String id; @@ -38,10 +40,10 @@ public ItemStack getItemsAdder() { @Override public boolean equals(Object object) { if (object instanceof ItemStack anotherItem) { - CustomItem citem = OMCRegistry.CUSTOM_ITEMS.get(anotherItem); + Optional citem = OMCRegistry.CUSTOM_ITEMS.get(anotherItem); - if (citem == null) return false; - return citem.getId().equals(this.getId()); + if (citem.isEmpty()) return false; + return citem.get().getId().equals(this.getId()); } if (object instanceof String otherObjectName) { diff --git a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java index a49ffd7dc..84dd8d737 100644 --- a/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java +++ b/src/main/java/fr/openmc/core/registry/items/CustomItemRegistry.java @@ -16,106 +16,105 @@ import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; +import java.util.Optional; + public class CustomItemRegistry extends Registry implements KeyedRegistry { public static final NamespacedKey CUSTOM_ITEM_KEY = new NamespacedKey("openmc", "custom_item"); - @Override - public String key(CustomItem registryObject) { - return registryObject.getId(); - } + /* Buttons */ + public final CustomItem ICON_CANCEL = register("_iainternal:icon_cancel", Material.DARK_OAK_DOOR, "Fermer"); + public final CustomItem ICON_BACK_ORANGE = register("_iainternal:icon_back_orange", Material.ARROW, "Page précédente"); + public final CustomItem ICON_NEXT_ORANGE = register("_iainternal:icon_next_orange", Material.ARROW, "Page suivante"); + public final CustomItem ICON_SEARCH = register("_iainternal:icon_search", Material.SPYGLASS, "Rechercher"); + public final CustomItem ACCEPT_BTN = register("omc_menus:accept_btn", Material.GREEN_CONCRETE, "Accepter"); + public final CustomItem REFUSE_BTN = register("omc_menus:refuse_btn", Material.RED_CONCRETE, "Refuser"); + public final CustomItem QUESTS_RIGHT_ARROW = register("omc_quests:quests_right_arrow", Material.ARROW, "Suivant"); + public final CustomItem QUESTS_LEFT_ARROW = register("omc_quests:quests_left_arrow", Material.ARROW, "Précédent"); + public final CustomItem BTN_1 = register("omc_menus:1_btn", Material.PAPER); + public final CustomItem BTN_10 = register("omc_menus:10_btn", Material.PAPER); + public final CustomItem BTN_64 = register("omc_menus:64_btn", Material.PAPER); + public final CustomItem MINUS_BTN = register("omc_menus:minus_btn", Material.PAPER); + public final CustomItem PLUS_BTN = register("omc_menus:plus_btn", Material.PAPER); + public final CustomItem MAILBOX_ACCEPT_BTN = register("omc_menus:mailbox_accept_btn", Material.PAPER); + public final CustomItem MAILBOX_REFUSE_BTN = register("omc_menus:mailbox_refuse_btn", Material.PAPER); + public final CustomItem MAILBOX_CANCEL_BTN = register("omc_menus:mailbox_cancel_btn", Material.PAPER); + public final CustomItem MAILBOX_ARROW_LEFT = register("omc_menus:mailbox_arrow_left", Material.PAPER); + public final CustomItem MAILBOX_ARROW_RIGHT = register("omc_menus:mailbox_arrow_right", Material.PAPER); + public final CustomItem MAILBOX_SEND = register("omc_menus:mailbox_send", Material.PAPER); + public final CustomItem MAILBOX_HOURGLASS = register("omc_menus:mailbox_hourglass", Material.PAPER); + + /* Items */ + public final CustomItem CONTEST_SHELL = register("omc_contest:contest_shell", Material.NAUTILUS_SHELL); + public final CustomItem AYWENITE = register("omc_items:aywenite", Material.AMETHYST_SHARD); + public final CustomItem KEBAB = register("omc_foods:kebab", Material.COOKED_BEEF); + public final CustomItem THE_MIXTURE = register("omc_foods:the_mixture", Material.HONEY_BOTTLE); + public final CustomItem COURGETTE = register("omc_foods:courgette", Material.SEA_PICKLE); + public final CustomItem MASCOT_STICK = register("omc_items:mascot_stick", Material.STICK); + public final CustomItem WARP_STICK = register("omc_items:warp_stick", Material.STICK); + public final CustomItem AYWEN_CAP = register(new AywenCap("omc_items:aywen_cap")); + public final CustomItem SUIT_HELMET = register("omc_items:suit_helmet", Material.IRON_HELMET); + public final CustomItem SUIT_CHESTPLATE = register("omc_items:suit_chestplate", Material.IRON_CHESTPLATE); + public final CustomItem SUIT_LEGGINGS = register("omc_items:suit_leggings", Material.IRON_LEGGINGS); + public final CustomItem SUIT_BOOTS = register("omc_items:suit_boots", Material.IRON_BOOTS); + public final CustomItem COMPANY_BOX = register("omc_company:company_box", Material.CHEST); + public final CustomItem HOMES_ICON_BIN_RED = register("omc_homes:omc_homes_icon_bin_red", Material.CHEST); + public final CustomItem HOMES_ICON_BIN = register("omc_homes:omc_homes_icon_bin", Material.CHEST); + public final CustomItem HOMES_ICON_INFORMATION = register("omc_homes:omc_homes_icon_information", Material.CHEST); + public final CustomItem HOMES_ICON_UPGRADE = register("omc_homes:omc_homes_icon_upgrade", Material.CHEST); + + /* Blocs */ + public final CustomItem AYWENITE_BLOCK = register("omc_blocks:aywenite_block", Material.AMETHYST_BLOCK); + public final CustomItem PELUCHE_SEINYY = register("omc_plush:peluche_seinyy", Material.PAPER); + public final CustomItem PELUCHE_AWYEN = register("omc_plush:peluche_awyen", Material.PAPER); + public final CustomItem URNE = register("omc_blocks:urne", Material.GLASS); + + /* Homes icons */ + public final CustomItem HOMES_ICON_AXENQ = register("omc_homes:omc_homes_icon_axenq", Material.CHEST); + public final CustomItem HOMES_ICON_BANK = register("omc_homes:omc_homes_icon_bank", Material.CHEST); + public final CustomItem HOMES_ICON_CHATEAU = register("omc_homes:omc_homes_icon_chateau", Material.CHEST); + public final CustomItem HOMES_ICON_CHEST = register("omc_homes:omc_homes_icon_chest", Material.CHEST); + public final CustomItem HOMES_ICON_GRASS = register("omc_homes:omc_homes_icon_grass", Material.CHEST); + public final CustomItem HOMES_ICON_MAISON = register("omc_homes:omc_homes_icon_maison", Material.CHEST); + public final CustomItem HOMES_ICON_SANDBLOCK = register("omc_homes:omc_homes_icon_sandblock", Material.CHEST); + public final CustomItem HOMES_ICON_SHOP = register("omc_homes:omc_homes_icon_shop", Material.CHEST); + public final CustomItem HOMES_ICON_XERNAS = register("omc_homes:omc_homes_icon_xernas", Material.CHEST); + + /* Hammer */ + public final CustomItem IRON_HAMMER = register(new Hammer("omc_items:iron_hammer", Material.IRON_PICKAXE, 1, 0)); + public final CustomItem DIAMOND_HAMMER = register(new Hammer("omc_items:diamond_hammer", Material.DIAMOND_PICKAXE, 1, 1)); + public final CustomItem NETHERITE_HAMMER = register(new Hammer("omc_items:netherite_hammer", Material.NETHERITE_PICKAXE, 1, 2)); + @Override public void postInit() { CommandsManager.getHandler().register(new CustomItemsDebugCommand()); + } - // ** REGISTRER ITEMSTACK OF ITEM ADDER ** - - /* Buttons */ - register("_iainternal:icon_cancel", Material.DARK_OAK_DOOR, "Fermer"); - register("_iainternal:icon_back_orange", Material.ARROW, "Page précédente"); - register("_iainternal:icon_next_orange", Material.ARROW, "Page suivante"); - register("_iainternal:icon_search", Material.SPYGLASS, "Rechercher"); - register("omc_menus:accept_btn", Material.GREEN_CONCRETE, "Accepter"); - register("omc_menus:refuse_btn", Material.RED_CONCRETE, "Refuser"); - register("omc_quests:quests_right_arrow", Material.ARROW, "Suivant"); - register("omc_quests:quests_left_arrow", Material.ARROW, "Précédent"); - register("omc_menus:1_btn", Material.PAPER); - register("omc_menus:10_btn", Material.PAPER); - register("omc_menus:64_btn", Material.PAPER); - register("omc_menus:minus_btn", Material.PAPER); - register("omc_menus:plus_btn", Material.PAPER); - register("omc_menus:mailbox_accept_btn", Material.PAPER); - register("omc_menus:mailbox_refuse_btn", Material.PAPER); - register("omc_menus:mailbox_cancel_btn", Material.PAPER); - register("omc_menus:mailbox_arrow_left", Material.PAPER); - register("omc_menus:mailbox_arrow_right", Material.PAPER); - register("omc_menus:mailbox_send", Material.PAPER); - register("omc_menus:mailbox_hourglass", Material.PAPER); - - /* Items */ - register("omc_contest:contest_shell", Material.NAUTILUS_SHELL); - register("omc_items:aywenite", Material.AMETHYST_SHARD); - register("omc_foods:kebab", Material.COOKED_BEEF); - register("omc_foods:the_mixture", Material.HONEY_BOTTLE); - register("omc_foods:courgette", Material.SEA_PICKLE); - register("omc_items:mascot_stick", Material.STICK); - register("omc_items:warp_stick", Material.STICK); - register("omc_items:aywen_cap", Material.IRON_HELMET); - register("omc_items:suit_helmet", Material.IRON_HELMET); - register("omc_items:suit_chestplate", Material.IRON_CHESTPLATE); - register("omc_items:suit_leggings", Material.IRON_LEGGINGS); - register("omc_items:suit_boots", Material.IRON_BOOTS); - register("omc_company:company_box", Material.CHEST); - register("omc_homes:omc_homes_icon_bin_red", Material.CHEST); - register("omc_homes:omc_homes_icon_bin", Material.CHEST); - register("omc_homes:omc_homes_icon_information", Material.CHEST); - register("omc_homes:omc_homes_icon_upgrade", Material.CHEST); - - /* Blocs */ - register("omc_blocks:aywenite_block", Material.AMETHYST_BLOCK); - register("omc_plush:peluche_seinyy", Material.PAPER); - register("omc_plush:peluche_awyen", Material.PAPER); - register("omc_blocks:urne", Material.GLASS); - - /* Homes icons */ - register("omc_homes:omc_homes_icon_axenq", Material.CHEST); - register("omc_homes:omc_homes_icon_bank", Material.CHEST); - register("omc_homes:omc_homes_icon_chateau", Material.CHEST); - register("omc_homes:omc_homes_icon_chest", Material.CHEST); - register("omc_homes:omc_homes_icon_grass", Material.CHEST); - register("omc_homes:omc_homes_icon_maison", Material.CHEST); - register("omc_homes:omc_homes_icon_sandblock", Material.CHEST); - register("omc_homes:omc_homes_icon_shop", Material.CHEST); - register("omc_homes:omc_homes_icon_xernas", Material.CHEST); - - /* Equipable */ - register(new AywenCap("omc_items:aywen_cap")); - - /* Hammer */ - register(new Hammer("omc_items:iron_hammer", Material.IRON_PICKAXE, 1, 0)); - register(new Hammer("omc_items:diamond_hammer", Material.DIAMOND_PICKAXE, 1, 1)); - register(new Hammer("omc_items:netherite_hammer", Material.NETHERITE_PICKAXE, 1, 2)); + @Override + public String key(CustomItem registryObject) { + return registryObject.getId(); } - public CustomItem get(String id) { - if (super.get(id) != null) return super.get(id); + @Override + public Optional get(String id) { + if (super.get(id).isPresent()) return super.get(id); return values().stream() .filter(item -> item.getId().split(":")[1].equals(id)) - .findFirst() - .orElse(null); + .findFirst(); } - public CustomItem get(ItemStack stack) { - if (stack == null) return null; + public Optional get(ItemStack stack) { + if (stack == null) return Optional.empty(); + PersistentDataContainerView view = stack.getPersistentDataContainer(); String id = view.get(CUSTOM_ITEM_KEY, PersistentDataType.STRING); if (id == null && ItemsAdderHook.isEnable()) { CustomStack itemIa = CustomStack.byItemStack(stack); - if (itemIa == null) return null; + if (itemIa == null) return Optional.empty(); return this.get(itemIa.getNamespacedID()); } else { @@ -123,8 +122,23 @@ public CustomItem get(ItemStack stack) { } } - public void register(String name, ItemStack item) { - register(name, new CustomItem(name) { + public CustomItem getOrThrow(ItemStack stack) { + if (stack == null) throw new IllegalArgumentException("ItemStack cannot be null"); + + PersistentDataContainerView view = stack.getPersistentDataContainer(); + String id = view.get(CUSTOM_ITEM_KEY, PersistentDataType.STRING); + + if (id == null && ItemsAdderHook.isEnable()) { + CustomStack itemIa = CustomStack.byItemStack(stack); + + return this.getOrThrow(itemIa.getNamespacedID()); + } else { + return this.getOrThrow(id); + } + } + + public CustomItem register(String name, ItemStack item) { + return register(name, new CustomItem(name) { @Override public ItemStack getVanilla() { return item; @@ -132,12 +146,12 @@ public ItemStack getVanilla() { }); } - public void register(String name, Material item) { - register(name, new ItemStack(item)); + public CustomItem register(String name, Material item) { + return register(name, new ItemStack(item)); } - public void register(String name, Material material, String displayName) { - register(new CustomItem(name) { + public CustomItem register(String name, Material material, String displayName) { + return register(new CustomItem(name) { @Override public ItemStack getVanilla() { ItemStack item = new ItemStack(material); diff --git a/src/main/java/fr/openmc/core/registry/items/CustomItemsDebugCommand.java b/src/main/java/fr/openmc/core/registry/items/CustomItemsDebugCommand.java index 8f3c7bd00..41d9f47e7 100644 --- a/src/main/java/fr/openmc/core/registry/items/CustomItemsDebugCommand.java +++ b/src/main/java/fr/openmc/core/registry/items/CustomItemsDebugCommand.java @@ -8,6 +8,8 @@ import revxrsal.commands.annotation.Subcommand; import revxrsal.commands.bukkit.annotation.CommandPermission; +import java.util.Optional; + @Command("debug customitems") @CommandPermission("omc.debug.customitems") public class CustomItemsDebugCommand { @@ -19,7 +21,7 @@ private void passTest(Player player, int test, boolean pass) { public void isCloseButton(Player player) { ItemStack item = player.getInventory().getItemInMainHand(); - CustomItem closeButton = OMCRegistry.CUSTOM_ITEMS.get("_iainternal:icon_cancel"); + CustomItem closeButton = OMCRegistry.CUSTOM_ITEMS.ICON_CANCEL; passTest(player, 1, closeButton.equals(item)); passTest(player, 2, closeButton.equals("_iainternal:icon_cancel")); @@ -35,11 +37,12 @@ public void hand(Player player) { player.sendMessage("§cVous ne tenez rien en main."); return; } - CustomItem item = OMCRegistry.CUSTOM_ITEMS.get(mainhand); - if (item == null) { - player.sendMessage("§cL'item en main n'est pas un custom item."); + Optional item = OMCRegistry.CUSTOM_ITEMS.get(mainhand); + + if (item.isPresent()) { + player.sendMessage(item.get().getId()); } else { - player.sendMessage(item.getId()); + player.sendMessage("§cL'item en main n'est pas un custom item."); } } @@ -53,11 +56,12 @@ public void list(Player player) { @Subcommand("get") public void get(Player player, String name) { - CustomItem item = OMCRegistry.CUSTOM_ITEMS.get(name); - if (item == null) { + Optional item = OMCRegistry.CUSTOM_ITEMS.get(name); + + if (item.isPresent()) { + player.getInventory().addItem(item.get().getBest()); + } else { player.sendMessage("§cCet item n'existe pas."); - return; } - player.getInventory().addItem(item.getBest()); } } diff --git a/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java b/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java index 15cbf9af0..9004cbdab 100644 --- a/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java +++ b/src/main/java/fr/openmc/core/registry/lootboxes/CustomLootboxRegistry.java @@ -1,21 +1,16 @@ package fr.openmc.core.registry.lootboxes; +import fr.openmc.core.bootstrap.registries.KeyedRegistry; import fr.openmc.core.bootstrap.registries.Registry; import fr.openmc.core.registry.lootboxes.contents.MachineBallLootbox; -public class CustomLootboxRegistry extends Registry { +public class CustomLootboxRegistry extends Registry implements KeyedRegistry { - @Override - public void postInit() { - // ** REGISTRER LOOTBOXES ** - register( - new MachineBallLootbox() - ); - } + // ** REGISTER LOOTBOX ** + public final CustomLootbox MACHINE_BALL = register(new MachineBallLootbox()); - public void register(CustomLootbox... boxes) { - for (CustomLootbox box : boxes) { - register(box.getNamespace(), box); - } + @Override + public String key(CustomLootbox registryObject) { + return registryObject.getNamespace(); } } diff --git a/src/main/java/fr/openmc/core/registry/lootboxes/contents/MachineBallLootbox.java b/src/main/java/fr/openmc/core/registry/lootboxes/contents/MachineBallLootbox.java index 7982b5357..c0f0c1b94 100644 --- a/src/main/java/fr/openmc/core/registry/lootboxes/contents/MachineBallLootbox.java +++ b/src/main/java/fr/openmc/core/registry/lootboxes/contents/MachineBallLootbox.java @@ -13,7 +13,7 @@ public MachineBallLootbox() { super( "omc:machine_ball", Component.text("§6§lLa Machine à boules"), - OMCRegistry.CUSTOM_LOOT_TABLES.get("omc:machine_ball"), + OMCRegistry.CUSTOM_LOOT_TABLES.MACHINE_BALL, new LootboxOptions( InventorySize.NORMAL, 60, diff --git a/src/main/java/fr/openmc/core/registry/loottable/CustomLootTableRegistry.java b/src/main/java/fr/openmc/core/registry/loottable/CustomLootTableRegistry.java index bc7a569b9..ef052ec63 100644 --- a/src/main/java/fr/openmc/core/registry/loottable/CustomLootTableRegistry.java +++ b/src/main/java/fr/openmc/core/registry/loottable/CustomLootTableRegistry.java @@ -6,13 +6,8 @@ public class CustomLootTableRegistry extends Registry implements KeyedRegistry { - @Override - public void postInit() { - // ** REGISTRER LOOT TABLES ** - register( - new MachineBallLootTable() - ); - } + // ** REGISTER LOOT TABLE ** + public final CustomLootTable MACHINE_BALL = register(new MachineBallLootTable()); @Override public String key(CustomLootTable registryObject) { diff --git a/src/main/java/fr/openmc/core/registry/loottable/contents/MachineBallLootTable.java b/src/main/java/fr/openmc/core/registry/loottable/contents/MachineBallLootTable.java index 7b6a70913..e28396608 100644 --- a/src/main/java/fr/openmc/core/registry/loottable/contents/MachineBallLootTable.java +++ b/src/main/java/fr/openmc/core/registry/loottable/contents/MachineBallLootTable.java @@ -21,9 +21,9 @@ public String getNamespace() { public Set getLoots() { return Set.of( new CustomLoot( - Set.of(OMCRegistry.CUSTOM_ITEMS.get("omc_plush:peluche_seinyy").getBest()), + Set.of(OMCRegistry.CUSTOM_ITEMS.PELUCHE_SEINYY.getBest()), new ItemBuilder( - OMCRegistry.CUSTOM_ITEMS.get("omc_plush:peluche_seinyy").getBest(), + OMCRegistry.CUSTOM_ITEMS.PELUCHE_SEINYY, meta -> { meta.displayName(Component.text("§d§lPeluche Seinyy")); meta.lore(List.of(Component.text("§7Une petite peluche comme Seinyy !"))); diff --git a/src/main/java/fr/openmc/core/registry/mobs/CustomMobEntry.java b/src/main/java/fr/openmc/core/registry/mobs/CustomMobEntry.java index 8c36cb70c..32154cae8 100644 --- a/src/main/java/fr/openmc/core/registry/mobs/CustomMobEntry.java +++ b/src/main/java/fr/openmc/core/registry/mobs/CustomMobEntry.java @@ -1,8 +1,32 @@ package fr.openmc.core.registry.mobs; +import org.bukkit.Location; +import org.bukkit.entity.EntitySnapshot; +import org.bukkit.entity.LivingEntity; + import java.util.function.Function; public record CustomMobEntry( String id, Function> factory -) { } +) { + public CustomMob getMob() { + return this.factory().apply(id); + } + + public void apply(LivingEntity entity) { + getMob().apply(entity); + } + + public void spawn(Location spawningLocation) { + getMob().spawn(spawningLocation); + } + + public EntitySnapshot getMobSnapshot() { + return getMob().getMobSnapshot(); + } + + public EntitySnapshot getMobSnapshot(Object... objects) { + return getMob().getMobSnapshot(objects); + } +} diff --git a/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java b/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java index e09ac6c9e..da0cd27df 100644 --- a/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java +++ b/src/main/java/fr/openmc/core/registry/mobs/CustomMobRegistry.java @@ -14,10 +14,13 @@ public class CustomMobRegistry extends Registry implemen public static final NamespacedKey CUSTOM_MOB_KEY = new NamespacedKey("openmc", "custom_mob"); - @Override - public void postInit() { - // ** REGISTER MOBS ** - } + // ** REGISTER MOBS ** + /* ex : + public static final CustomMobEntry BREEZY = create(new CustomMobEntry( + "omc_dream:breezy", + Breezy::new + )); + */ @Override public String key(CustomMobEntry registryObject) { @@ -25,16 +28,11 @@ public String key(CustomMobEntry registryObject) { } @Override - public void register(CustomMobEntry mob) { + public CustomMobEntry register(CustomMobEntry mob) { if (mob.factory().apply(mob.id()) instanceof Listener listener) { OMCPlugin.registerEvents(listener); } - register(mob.id(), mob); - } - - public CustomMob getMob(String id) { - CustomMobEntry entry = get(id); - return entry != null ? entry.factory().apply(id) : null; + return register(mob.id(), mob); } public CustomMob getMob(Entity entity) { @@ -42,7 +40,7 @@ public CustomMob getMob(Entity entity) { if (!pdc.has(CUSTOM_MOB_KEY, PersistentDataType.STRING)) return null; String mobId = pdc.get(CUSTOM_MOB_KEY, PersistentDataType.STRING); - return getMob(mobId); + return get(mobId).map(CustomMobEntry::getMob).orElse(null); } public static boolean isCustomMob(Entity entity) { diff --git a/src/main/java/fr/openmc/core/utils/bukkit/ItemBuilder.java b/src/main/java/fr/openmc/core/utils/bukkit/ItemBuilder.java index fe976283b..96760a3e1 100644 --- a/src/main/java/fr/openmc/core/utils/bukkit/ItemBuilder.java +++ b/src/main/java/fr/openmc/core/utils/bukkit/ItemBuilder.java @@ -1,6 +1,7 @@ package fr.openmc.core.utils.bukkit; import fr.openmc.api.menulib.MenuLib; +import fr.openmc.core.registry.items.CustomItem; import io.papermc.paper.datacomponent.DataComponentType; import io.papermc.paper.datacomponent.DataComponentTypes; import io.papermc.paper.datacomponent.item.TooltipDisplay; @@ -28,6 +29,10 @@ public ItemBuilder(ItemStack item) { this(item, null); } + public ItemBuilder(CustomItem customItem) { + this(customItem.getBest(), null); + } + public ItemBuilder(Material material, Consumer itemMeta) { this(new ItemStack(material), itemMeta); } @@ -39,6 +44,11 @@ public ItemBuilder(ItemStack item, Consumer itemMeta) { setItemMeta(meta); } + public ItemBuilder(CustomItem customItem, Consumer itemMeta) { + this(customItem.getBest(), itemMeta); + } + + /** * Sets the unique identifier for the item using the specified {@code itemId}. * The identifier is stored in the item's {@link PersistentDataContainer} as a diff --git a/src/main/java/fr/openmc/core/utils/bukkit/ItemUtils.java b/src/main/java/fr/openmc/core/utils/bukkit/ItemUtils.java index 7a6e5208b..f640a242b 100644 --- a/src/main/java/fr/openmc/core/utils/bukkit/ItemUtils.java +++ b/src/main/java/fr/openmc/core/utils/bukkit/ItemUtils.java @@ -301,7 +301,7 @@ public static int removeItemsFromInventory(Player player, ItemStack item, int am } public static boolean takeAywenite(Player player, int amount) { - ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); if (aywenite == null) return false; if (!hasEnoughItems(player, aywenite, amount)) { @@ -320,7 +320,7 @@ public static boolean takeAywenite(Player player, int amount) { } public static boolean giveAywenite(Player player, int amount) { - ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.get("omc_items:aywenite").getBest(); + ItemStack aywenite = OMCRegistry.CUSTOM_ITEMS.AYWENITE.getBest(); if (aywenite == null) return false; aywenite.setAmount(amount); diff --git a/src/main/resources/translations/default/city.properties b/src/main/resources/translations/default/city.properties index 9c4406d39..ddaeee05f 100644 --- a/src/main/resources/translations/default/city.properties +++ b/src/main/resources/translations/default/city.properties @@ -1199,9 +1199,6 @@ feature.city.mayor.menu.vote.lore.click=CLIQUEZ ICI POUR LE VOTER< feature.city.mayor.menu.vote.mayor.title=Maire %1$s feature.city.mayor.menu.vote.message.already_voted=Vous avez déjà voté pour ce maire feature.city.mayor.menu.vote.message.voted=Vous avez voté pour le %1$s -feature.city.mayor.menu.vote.button.close=Fermer -feature.city.mayor.menu.vote.button.prev=Page précédente -feature.city.mayor.menu.vote.button.next=Page suivante feature.city.mayor.menu.election.name=Menu des élections feature.city.mayor.menu.election.item.name=Les élections