fix eco enchant again
Some checks failed
Java CI with Gradle / build (push) Has been cancelled

This commit is contained in:
alexcrea 2026-08-14 00:40:52 +02:00
parent 75b32bcf52
commit 643a5e9a8c
Signed by: alexcrea
GPG key ID: E59DF23EE2A2266C
2 changed files with 14 additions and 11 deletions

View file

@ -22,7 +22,7 @@ plugins {
} }
group = "xyz.alexcrea" group = "xyz.alexcrea"
version = "2.0.0" version = "2.0.1"
val isDevBuild = System.getenv("SMALL_COMMIT_HASH") != null val isDevBuild = System.getenv("SMALL_COMMIT_HASH") != null
val isPreRelease = System.getenv("IS_GITHUB_PRERELEASE") == "true" val isPreRelease = System.getenv("IS_GITHUB_PRERELEASE") == "true"

View file

@ -5,6 +5,7 @@ import com.willfp.ecoenchants.enchant.EcoEnchant
import com.willfp.ecoenchants.enchant.EcoEnchants import com.willfp.ecoenchants.enchant.EcoEnchants
import com.willfp.ecoenchants.enchant.UtilKt import com.willfp.ecoenchants.enchant.UtilKt
import io.delilaheve.CustomAnvil import io.delilaheve.CustomAnvil
import org.bukkit.Bukkit
import org.bukkit.event.inventory.PrepareAnvilEvent import org.bukkit.event.inventory.PrepareAnvilEvent
import org.bukkit.plugin.Plugin import org.bukkit.plugin.Plugin
import xyz.alexcrea.cuanvil.api.EnchantmentApi import xyz.alexcrea.cuanvil.api.EnchantmentApi
@ -22,11 +23,11 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) {
try { try {
Class.forName("com.willfp.ecoenchants.enchant.EcoEnchants") Class.forName("com.willfp.ecoenchants.enchant.EcoEnchants")
isLegacy = false isLegacy = false
} catch (_: ClassNotFoundException) { } catch(_: ClassNotFoundException) {
} }
this.isLegacy = isLegacy; this.isLegacy = isLegacy;
if (isLegacy) { if(isLegacy) {
this.legacyDependency = LegacyEcoEnchantDependency() this.legacyDependency = LegacyEcoEnchantDependency()
} else { } else {
this.legacyDependency = null this.legacyDependency = null
@ -34,25 +35,27 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) {
} }
public fun getEcoLevelLimit(): Int { fun getEcoLevelLimit(): Int {
return UtilKt.infiniteIfNegative((ecoEnchantPlugin as EcoPlugin).configYml.getInt("anvil.enchant-limit")) return UtilKt.infiniteIfNegative((ecoEnchantPlugin as EcoPlugin).configYml.getInt("anvil.enchant-limit"))
} }
fun disableAnvilListener() { fun disableAnvilListener() {
PrepareAnvilEvent.getHandlerList().unregister(this.ecoEnchantPlugin) PrepareAnvilEvent.getHandlerList().unregister(this.ecoEnchantPlugin)
// I don't like that but modern ee use eco prepare anvil event
PrepareAnvilEvent.getHandlerList().unregister(Bukkit.getPluginManager().getPlugin("eco")!!)
} }
private var ecoEnchantOldEnchantments: MutableSet<EcoEnchant>? = null private var ecoEnchantOldEnchantments: MutableSet<EcoEnchant>? = null
fun registerEnchantments() { fun registerEnchantments() {
CustomAnvil.instance.logger.info("Preparing Eco Enchant compatibility...") CustomAnvil.instance.logger.info("Preparing Eco Enchant compatibility...")
if (isLegacy) { if(isLegacy) {
legacyDependency!!.registerEnchantments(); legacyDependency!!.registerEnchantments();
return return
} }
val enchantments = EcoEnchants.INSTANCE.values() val enchantments = EcoEnchants.INSTANCE.values()
for (ecoEnchant in enchantments) { 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.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)) EnchantmentApi.registerEnchantment(CAEcoEnchant(ecoEnchant))
} }
@ -63,24 +66,24 @@ class EcoEnchantDependency(private val ecoEnchantPlugin: Plugin) {
} }
fun handleConfigReload() { fun handleConfigReload() {
if (isLegacy) { if(isLegacy) {
legacyDependency!!.handleConfigReload() legacyDependency!!.handleConfigReload()
return return
} }
// Should not happen in known case. // Should not happen in known case.
if (this.ecoEnchantOldEnchantments == null) return if(this.ecoEnchantOldEnchantments == null) return
val newEnchantments = EcoEnchants.INSTANCE.values() val newEnchantments = EcoEnchants.INSTANCE.values()
// Add new enchantments // Add new enchantments
for (ecoEnchant in newEnchantments) for(ecoEnchant in newEnchantments)
if (!this.ecoEnchantOldEnchantments!!.contains(ecoEnchant)) if(!this.ecoEnchantOldEnchantments!!.contains(ecoEnchant))
EnchantmentApi.registerEnchantment(CAEcoEnchant(ecoEnchant)) EnchantmentApi.registerEnchantment(CAEcoEnchant(ecoEnchant))
// Remove old enchantments that not now currently used // Remove old enchantments that not now currently used
this.ecoEnchantOldEnchantments!!.removeAll(newEnchantments) this.ecoEnchantOldEnchantments!!.removeAll(newEnchantments)
for (oldEnchantment in this.ecoEnchantOldEnchantments!!) { for(oldEnchantment in this.ecoEnchantOldEnchantments!!) {
EnchantmentApi.unregisterEnchantment(oldEnchantment.enchantment) EnchantmentApi.unregisterEnchantment(oldEnchantment.enchantment)
} }