From ccd295e55f55ac382b59e4a188f1119cd0c8a606 Mon Sep 17 00:00:00 2001 From: 1robie <97293924+1robie@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:49:18 +0100 Subject: [PATCH] add MMOItems support --- Hooks/MMOItems/build.gradle.kts | 12 ++++++++ .../menu/hooks/mmoitems/MMOItemsLoader.java | 30 +++++++++++++++++++ settings.gradle.kts | 2 ++ .../java/fr/maxlego08/menu/ZMenuPlugin.java | 5 ++++ .../menu/zcore/utils/plugins/Plugins.java | 4 +-- src/main/resources/plugin.yml | 1 + 6 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 Hooks/MMOItems/build.gradle.kts create mode 100644 Hooks/MMOItems/src/main/java/fr/maxlego08/menu/hooks/mmoitems/MMOItemsLoader.java diff --git a/Hooks/MMOItems/build.gradle.kts b/Hooks/MMOItems/build.gradle.kts new file mode 100644 index 00000000..5c0dd921 --- /dev/null +++ b/Hooks/MMOItems/build.gradle.kts @@ -0,0 +1,12 @@ +group = "Hooks:MythicMobs" + +repositories { + mavenCentral() + maven(url = "https://nexus.phoenixdevt.fr/repository/maven-public/") +} + + +dependencies { + compileOnly(projects.common) + compileOnly("net.Indyuce:MMOItems-API:6.9.5-SNAPSHOT") +} \ No newline at end of file diff --git a/Hooks/MMOItems/src/main/java/fr/maxlego08/menu/hooks/mmoitems/MMOItemsLoader.java b/Hooks/MMOItems/src/main/java/fr/maxlego08/menu/hooks/mmoitems/MMOItemsLoader.java new file mode 100644 index 00000000..cde9cdb6 --- /dev/null +++ b/Hooks/MMOItems/src/main/java/fr/maxlego08/menu/hooks/mmoitems/MMOItemsLoader.java @@ -0,0 +1,30 @@ +package fr.maxlego08.menu.hooks.mmoitems; + +import fr.maxlego08.menu.api.loader.MaterialLoader; +import net.Indyuce.mmoitems.MMOItems; +import net.Indyuce.mmoitems.api.Type; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class MMOItemsLoader extends MaterialLoader { + + public MMOItemsLoader() { + super("mmoitems"); + } + + @Override + public @Nullable ItemStack load(@NotNull Player player, @Nullable YamlConfiguration configuration, @NotNull String path, @NotNull String materialString) { + String[] split = materialString.split(":",2); + if (split.length != 2) return null; + try { + final Type type = MMOItems.plugin.getTypes().get(split[0]); + if (type == null) return null; + return MMOItems.plugin.getItem(type, split[1]); + } catch (Exception e) { + return null; + } + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 5d4b3b24..e286f5ea 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -22,3 +22,5 @@ file("Hooks").listFiles()?.forEach { file -> include(":Hooks:${file.name}") } } + +include("Hooks:MMOItems") \ No newline at end of file diff --git a/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java b/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java index 06019785..8ca29c98 100644 --- a/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java +++ b/src/main/java/fr/maxlego08/menu/ZMenuPlugin.java @@ -38,6 +38,7 @@ import fr.maxlego08.menu.hooks.headdatabase.HeadDatabaseLoader; import fr.maxlego08.menu.hooks.itemsadder.ItemsAdderFont; import fr.maxlego08.menu.hooks.itemsadder.ItemsAdderLoader; +import fr.maxlego08.menu.hooks.mmoitems.MMOItemsLoader; import fr.maxlego08.menu.hooks.mythicmobs.MythicManager; import fr.maxlego08.menu.hooks.mythicmobs.MythicMobsItemsLoader; import fr.maxlego08.menu.hooks.packetevents.PacketEventPlayerInventoryManager; @@ -361,6 +362,10 @@ private void registerHooks() { this.inventoryManager.registerMaterialLoader(new BreweryXLoader()); this.getLogger().info("Registered BreweryX material loader"); } + if (this.isActive(Plugins.MMOITEMS)) { + this.inventoryManager.registerMaterialLoader(new MMOItemsLoader()); + this.getLogger().info("Registered MMOItems material loader"); + } if (this.isActive(Plugins.PACKETEVENTS)){ this.titleAnimationManager.registerLoader("packet-events", new PacketEventTitleAnimationLoader()); } diff --git a/src/main/java/fr/maxlego08/menu/zcore/utils/plugins/Plugins.java b/src/main/java/fr/maxlego08/menu/zcore/utils/plugins/Plugins.java index 5f7d3853..6b82305b 100644 --- a/src/main/java/fr/maxlego08/menu/zcore/utils/plugins/Plugins.java +++ b/src/main/java/fr/maxlego08/menu/zcore/utils/plugins/Plugins.java @@ -28,8 +28,8 @@ public enum Plugins { MYTHICMOBS("MythicMobs"), ZMENUPLUS("zMenuPlus"), BREWERYX("BreweryX"), - PACKETEVENTS("packetevents") - ; + PACKETEVENTS("packetevents"), + MMOITEMS("MMOItems"); private final String name; Plugins(String name) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 4bfb147c..468b5af0 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -22,6 +22,7 @@ softdepend: - ExecutableBlocks - MythicMobs - BreweryX + - MMOItems folia-supported: true loadbefore: - SuperiorSkyblock2