diff --git a/bukkit/compatibility/build.gradle.kts b/bukkit/compatibility/build.gradle.kts index 110a0b229..f6795ac32 100644 --- a/bukkit/compatibility/build.gradle.kts +++ b/bukkit/compatibility/build.gradle.kts @@ -14,6 +14,7 @@ repositories { maven("https://nexus.neetgames.com/repository/maven-releases/") // mcmmo maven("https://repo.dmulloy2.net/repository/public/") // mcmmo required maven("https://repo.auxilor.io/repository/maven-public/") // eco + maven("https://repo.hiusers.com/releases") // zaphkiel } dependencies { @@ -67,6 +68,8 @@ dependencies { compileOnly("com.willfp:libreforge:4.58.1") // AureliumSkills compileOnly("com.github.Archy-X:AureliumSkills:Beta1.3.21") + // Zaphkiel + compileOnly("ink.ptms:ZaphkielAPI:2.1.0") } java { diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java index 5e752460f..303f3790b 100644 --- a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/BukkitCompatibilityManager.java @@ -1,10 +1,7 @@ package net.momirealms.craftengine.bukkit.compatibility; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; -import net.momirealms.craftengine.bukkit.compatibility.item.CustomFishingSource; -import net.momirealms.craftengine.bukkit.compatibility.item.MMOItemsSource; -import net.momirealms.craftengine.bukkit.compatibility.item.MythicMobsSource; -import net.momirealms.craftengine.bukkit.compatibility.item.NeigeItemsSource; +import net.momirealms.craftengine.bukkit.compatibility.item.*; import net.momirealms.craftengine.bukkit.compatibility.legacy.slimeworld.LegacySlimeFormatStorageAdaptor; import net.momirealms.craftengine.bukkit.compatibility.leveler.*; import net.momirealms.craftengine.bukkit.compatibility.model.bettermodel.BetterModelModel; @@ -249,6 +246,10 @@ public class BukkitCompatibilityManager implements CompatibilityManager { itemManager.registerExternalItemSource(new CustomFishingSource()); logHook("CustomFishing"); } + if (this.isPluginEnabled("Zaphkiel")) { + itemManager.registerExternalItemSource(new ZaphkielSource()); + logHook("Zaphkiel"); + } } private Plugin getPlugin(String name) { diff --git a/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/ZaphkielSource.java b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/ZaphkielSource.java new file mode 100644 index 000000000..25cb5917b --- /dev/null +++ b/bukkit/compatibility/src/main/java/net/momirealms/craftengine/bukkit/compatibility/item/ZaphkielSource.java @@ -0,0 +1,34 @@ +package net.momirealms.craftengine.bukkit.compatibility.item; + +import ink.ptms.zaphkiel.Zaphkiel; +import net.momirealms.craftengine.core.item.ExternalItemSource; +import net.momirealms.craftengine.core.item.ItemBuildContext; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import javax.annotation.Nullable; +import java.util.Optional; + +/** + * @author iiabc + * @since 2025/8/30 09:39 + */ +public class ZaphkielSource implements ExternalItemSource { + + @Override + public String plugin() { + return "zaphkiel"; + } + + @Override + public @Nullable ItemStack build(String id, ItemBuildContext context) { + Player player = Optional.ofNullable(context.player()).map(it -> (Player) it.platformPlayer()).orElse(null); + return Zaphkiel.INSTANCE.api().getItemManager().generateItemStack(id, player); + } + + @Override + public String id(ItemStack item) { + return Zaphkiel.INSTANCE.api().getItemHandler().getItemId(item); + } + +} diff --git a/bukkit/paper-loader/build.gradle.kts b/bukkit/paper-loader/build.gradle.kts index a5a269d3b..16a4caf37 100644 --- a/bukkit/paper-loader/build.gradle.kts +++ b/bukkit/paper-loader/build.gradle.kts @@ -82,6 +82,7 @@ paper { register("MMOItems") { required = false } register("MythicMobs") { required = false } register("CustomFishing") { required = false } + register("Zaphkiel") { required = false } // leveler register("AuraSkills") { required = false }