diff --git a/build.gradle.kts b/build.gradle.kts index e9b8d9af..2cc60a02 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -69,10 +69,10 @@ dependencies { compileOnly(files("libs/EnchantsSquared.jar")) // EcoEnchants & item - compileOnly("com.willfp:libreforge:4.79.0:all") - compileOnly("com.willfp:eco:6.74.5") + compileOnly("com.willfp:libreforge:2026.32:all") + compileOnly("com.willfp:eco:2026.32") - compileOnly("com.willfp:EcoEnchants:12.11.1") + compileOnly("com.willfp:EcoEnchants:2026.32:all") compileOnly(project(":impl:LegacyEcoEnchant")) compileOnly("com.willfp:EcoItems:5.66.0") diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt index 25b3e62a..66dd5db4 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/DependencyManager.kt @@ -42,6 +42,7 @@ object DependencyManager { var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null var ecoEnchantCompatibility: EcoEnchantDependency? = null + var hasEcoItem: Boolean = false var excellentEnchantsCompatibility: ExcellentEnchantsDependency? = null var disenchantmentCompatibility: DisenchantmentDependency? = null @@ -78,6 +79,10 @@ object DependencyManager { ecoEnchantCompatibility = EcoEnchantDependency(pluginManager.getPlugin("EcoEnchants")!!) ecoEnchantCompatibility!!.disableAnvilListener() } + // EcoItem check + if (pluginManager.isPluginEnabled("EcoItems")) { + hasEcoItem = true + } // Excellent Enchants dependency if (pluginManager.isPluginEnabled("ExcellentEnchants")) { diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/datapack/DataPackDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/datapack/DataPackDependency.kt index 6d544565..af3ce203 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/datapack/DataPackDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/datapack/DataPackDependency.kt @@ -223,7 +223,11 @@ object DataPackDependency { private fun setEnchantAsAll(ench: String) { // We assume current is not null and of type CABukkitEnchantment - val current = EnchantmentApi.getByKey(NamespacedKey.fromString(ench)!!) as CABukkitEnchantment + val current = EnchantmentApi.getByKey(NamespacedKey.fromString(ench)!!) as? CABukkitEnchantment + if(current == null) { + CustomAnvil.instance.logger.warning("Could not find enchant $ench") + return + } // We need to replace current wrapped enchantment with the all conflict wrapper EnchantmentApi.unregisterEnchantment(current) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EcoEnchantDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EcoEnchantDependency.kt index 079d5707..78bc9d13 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EcoEnchantDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/EcoEnchantDependency.kt @@ -3,7 +3,7 @@ package xyz.alexcrea.cuanvil.dependency.plugins import com.willfp.eco.core.EcoPlugin import com.willfp.ecoenchants.enchant.EcoEnchant import com.willfp.ecoenchants.enchant.EcoEnchants -import com.willfp.ecoenchants.mechanics.infiniteIfNegative +import com.willfp.ecoenchants.enchant.UtilKt import io.delilaheve.CustomAnvil import org.bukkit.event.inventory.PrepareAnvilEvent import org.bukkit.plugin.Plugin @@ -35,7 +35,7 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) { } public fun getEcoLevelLimit(): Int { - return (ecoEnchantPlugin as EcoPlugin).configYml.getInt("anvil.enchant-limit").infiniteIfNegative() + return UtilKt.infiniteIfNegative((ecoEnchantPlugin as EcoPlugin).configYml.getInt("anvil.enchant-limit")) } fun disableAnvilListener() { @@ -51,7 +51,7 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) { return } - val enchantments = EcoEnchants.values() + val enchantments = EcoEnchants.INSTANCE.values() for (ecoEnchant in enchantments) { EnchantmentApi.unregisterEnchantment(ecoEnchant.enchantment) // As eco enchants is loaded before custom anvil and register enchantment to registry, we need to unregister old "vanilla" enchant. EnchantmentApi.registerEnchantment(CAEcoEnchant(ecoEnchant)) @@ -71,7 +71,7 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) { // Should not happen in known case. if (this.ecoEnchantOldEnchantments == null) return - val newEnchantments = EcoEnchants.values() + val newEnchantments = EcoEnchants.INSTANCE.values() // Add new enchantments for (ecoEnchant in newEnchantments) diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt index af5020c7..f9a6acc3 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/util/MaterialUtil.kt @@ -21,7 +21,7 @@ object MaterialUtil { val ItemStack.customType: NamespacedKey get() { - if(DependencyManager.ecoEnchantCompatibility != null) { + if(DependencyManager.hasEcoItem) { val result = EcoItemDependencyUtil.ecoItemNamespace(this) if(result != null) return result } @@ -43,7 +43,7 @@ object MaterialUtil { @Nullable fun getMatFromKey(key: NamespacedKey): Material? { - if(DependencyManager.ecoEnchantCompatibility != null) { + if(DependencyManager.hasEcoItem) { val result = EcoItemDependencyUtil.ecoItemMaterialFromKey(key) if(result != null) return result } @@ -58,7 +58,7 @@ object MaterialUtil { } fun itemFromKey(key: NamespacedKey): ItemStack { - if(DependencyManager.ecoEnchantCompatibility != null) { + if(DependencyManager.hasEcoItem) { val result = EcoItemDependencyUtil.newEcoItemstack(key) if(result != null) return result } @@ -78,7 +78,7 @@ object MaterialUtil { fun getMaterialCount(): Int { var count = Material.entries.size - if(DependencyManager.ecoEnchantCompatibility != null) { + if(DependencyManager.hasEcoItem) { count += EcoItemDependencyUtil.getItems().size } @@ -92,7 +92,7 @@ object MaterialUtil { fun getMaterials(): MutableList { val all = ArrayList(Material.entries.map { it.key }) - if(DependencyManager.ecoEnchantCompatibility != null) { + if(DependencyManager.hasEcoItem) { all.addAll(EcoItemDependencyUtil.getItems()) } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 0b377edf..927d72b0 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -68,6 +68,7 @@ softdepend: - Disenchantment - EnchantsSquared - EcoEnchants + - EcoItems - eco - ExcellentEnchants - HavenBags