From e00c5e8b479b385fa6b0119ae239d301a2720a0a Mon Sep 17 00:00:00 2001 From: alexcrea Date: Sun, 12 Apr 2026 11:12:38 +0200 Subject: [PATCH] clone use item adder on custom items adder item --- build.gradle.kts | 6 +++++ .../cuanvil/dependency/DependencyManager.kt | 6 ++--- .../plugins/ItemsAdderDependency.kt | 27 ++++++++++++++----- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index da11be5..a8211b0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,6 +37,9 @@ repositories { // ExcellentEnchants maven(url = "https://repo.nightexpressdev.com/releases") + // ItemsAdder + maven(url = "https://maven.devs.beer/") + // for fast stats maven { name = "thenextlvlReleases" @@ -97,6 +100,9 @@ dependencies { // SuperEnchants compileOnly(files("libs/SuperEnchants-4.6.2-all.jar")) + // ItemsAdder API + compileOnly("dev.lone:api-itemsadder:4.0.10") + // Include nms implementation(project(":nms:nms-common")) implementation(project(":nms:nms-paper")) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 523f99d..0b5f396 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -303,10 +303,10 @@ object DependencyManager { } private fun unsafeCloneItem(item: ItemStack): ItemStack { - var cloned: ItemStack? = null + val cloned = itemsAdderCompatibility?.tryClone(item) + if(cloned != null) return cloned - if(cloned == null) cloned = item.clone() - return cloned + return item.clone() } fun stripLore(item: ItemStack): MutableList { diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ItemsAdderDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ItemsAdderDependency.kt index 7034b9a..2a7a0b8 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ItemsAdderDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ItemsAdderDependency.kt @@ -1,12 +1,27 @@ -package xyz.alexcrea.cuanvil.dependency.plugins; +package xyz.alexcrea.cuanvil.dependency.plugins -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; +import dev.lone.itemsadder.api.CustomStack +import dev.lone.itemsadder.api.ItemsAdder +import io.delilaheve.CustomAnvil +import org.bukkit.inventory.ItemStack +import org.bukkit.plugin.Plugin -public class ItemsAdderDependency extends GenericPluginDependency{ +class ItemsAdderDependency(plugin: Plugin) : GenericPluginDependency(plugin) { + var isLoaded: Boolean = false + get() { + if (field) return true - public ItemsAdderDependency(@NotNull Plugin plugin) { - super(plugin); + // We can't be sure the event is registered before being triggered so we need to use this function + field = ItemsAdder.areItemsLoaded() + return field + } + + fun tryClone(item: ItemStack): ItemStack? { + if(!isLoaded) return null + val customItem = CustomStack.byItemStack(item) ?: return null + + CustomAnvil.instance.logger.warning("testing equal: ${customItem.itemStack == item}") + return customItem.itemStack } }