fix Excellent enchant compatibility

fix #93
This commit is contained in:
alexcrea 2025-11-06 22:59:52 +01:00
parent 0b1e3bc12c
commit 9e772c7c19
Signed by: alexcrea
GPG key ID: E346CD16413450E3
5 changed files with 61 additions and 5 deletions

View file

@ -18,7 +18,7 @@ plugins {
} }
group = "xyz.alexcrea" group = "xyz.alexcrea"
version = "1.15.2" version = "1.15.3"
val effectiveVersion = "$version" + val effectiveVersion = "$version" +
(if (System.getenv("SMALL_COMMIT_HASH") != null) "-dev-${System.getenv("SMALL_COMMIT_HASH")!!}" else "") (if (System.getenv("SMALL_COMMIT_HASH") != null) "-dev-${System.getenv("SMALL_COMMIT_HASH")!!}" else "")
@ -52,6 +52,7 @@ dependencies {
compileOnly(project(":impl:LegacyEcoEnchant")) compileOnly(project(":impl:LegacyEcoEnchant"))
// ExcellentEnchants // ExcellentEnchants
implementation(project(":impl:ExcellentEnchant5_3"))
compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") { compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") {
exclude("org.spigotmc") exclude("org.spigotmc")
} }

View file

@ -0,0 +1,21 @@
group = rootProject.group
version = rootProject.version
plugins {
kotlin("jvm") version "2.1.0"
}
repositories {
// ExcellentEnchants
maven(url = "https://repo.nightexpressdev.com/releases")
}
dependencies {
// Spigot api
compileOnly("org.spigotmc:spigot-api:1.18-R0.1-SNAPSHOT")
// Excellent Enchant
compileOnly("su.nightexpress.excellentenchants:Core:5.3.0") {
exclude("org.spigotmc")
}
}

View file

@ -0,0 +1,16 @@
package xyz.alexcrea.cuanvil.dependency.plugins;
import org.jetbrains.annotations.NotNull;
import su.nightexpress.excellentenchants.api.enchantment.CustomEnchantment;
import su.nightexpress.excellentenchants.enchantment.EnchantRegistry;
import java.util.Set;
public class ExcellentEnchant5_3Registry {
public static @NotNull Set<CustomEnchantment> getRegistered(){
return EnchantRegistry.getRegistered();
}
}

View file

@ -37,4 +37,6 @@ include("nms:v1_21R6")
findProject(":nms:v1_21R6")?.name = "v1_21R6" findProject(":nms:v1_21R6")?.name = "v1_21R6"
include(":impl:LegacyEcoEnchant") include(":impl:LegacyEcoEnchant")
findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant" findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant"
include("impl:ExcellentEnchant5_3")
findProject(":impl:ExcellentEnchant5_3")?.name = "ExcellentEnchant5_3"

View file

@ -25,6 +25,7 @@ import su.nightexpress.excellentenchants.registry.EnchantRegistry as PreV5Enchan
class ExcellentEnchantsDependency { class ExcellentEnchantsDependency {
enum class ListenerVersion(val classPath: String) { enum class ListenerVersion(val classPath: String) {
V5_3("su.nightexpress.excellentenchants.enchantment.EnchantRegistry"),
V5("su.nightexpress.excellentenchants.manager.listener.AnvilListener"), V5("su.nightexpress.excellentenchants.manager.listener.AnvilListener"),
PRE_V5("su.nightexpress.excellentenchants.enchantment.listener.AnvilListener"), PRE_V5("su.nightexpress.excellentenchants.enchantment.listener.AnvilListener"),
LEGACY("su.nightexpress.excellentenchants.enchantment.listener.EnchantAnvilListener"), LEGACY("su.nightexpress.excellentenchants.enchantment.listener.EnchantAnvilListener"),
@ -49,6 +50,8 @@ class ExcellentEnchantsDependency {
if (listenerVersion == null) { if (listenerVersion == null) {
CustomAnvil.instance.logger.severe("Found issue with listener of Excellent Enchants. compatiblity is broken. please contact CustomAnvil devs") CustomAnvil.instance.logger.severe("Found issue with listener of Excellent Enchants. compatiblity is broken. please contact CustomAnvil devs")
} else{
CustomAnvil.log("Support version: " + listenerVersion.name)
} }
var isModernCurseOfFragility = true var isModernCurseOfFragility = true
@ -67,6 +70,13 @@ class ExcellentEnchantsDependency {
// As excellent enchants is loaded before custom anvil and register enchantment to registry, we need to unregister old "vanilla" enchant. // As excellent enchants is loaded before custom anvil and register enchantment to registry, we need to unregister old "vanilla" enchant.
when (listenerVersion) { when (listenerVersion) {
ListenerVersion.V5_3 -> {
for (enchantment in ExcellentEnchant5_3Registry.getRegistered()) {
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
EnchantmentApi.registerEnchantment(CAEEV5Enchantment(enchantment))
}
}
ListenerVersion.V5 -> { ListenerVersion.V5 -> {
for (enchantment in V5EnchantRegistry.getRegistered()) { for (enchantment in V5EnchantRegistry.getRegistered()) {
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key) EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
@ -119,7 +129,9 @@ class ExcellentEnchantsDependency {
} }
when (listenerVersion) { when (listenerVersion) {
ListenerVersion.V5 -> { ListenerVersion.V5,
ListenerVersion.V5_3
-> {
if (listener is V5AnvilListener) { if (listener is V5AnvilListener) {
this.v5AnvilListener = listener this.v5AnvilListener = listener
toUnregister.add(registeredListener) toUnregister.add(registeredListener)
@ -151,7 +163,9 @@ class ExcellentEnchantsDependency {
} }
when (listenerVersion) { when (listenerVersion) {
ListenerVersion.V5 -> this.usedAnvilListener = v5AnvilListener!! ListenerVersion.V5,
ListenerVersion.V5_3
-> this.usedAnvilListener = v5AnvilListener!!
ListenerVersion.PRE_V5 -> this.usedAnvilListener = preV5AnvilListener!! ListenerVersion.PRE_V5 -> this.usedAnvilListener = preV5AnvilListener!!
ListenerVersion.LEGACY -> this.usedAnvilListener = legacyAnvilListener!! ListenerVersion.LEGACY -> this.usedAnvilListener = legacyAnvilListener!!
null -> {} null -> {}
@ -205,7 +219,9 @@ class ExcellentEnchantsDependency {
fun testAnvilResult(event: InventoryClickEvent): Any { fun testAnvilResult(event: InventoryClickEvent): Any {
if (event.inventory.getItem(2) != null) { if (event.inventory.getItem(2) != null) {
when (listenerVersion) { when (listenerVersion) {
ListenerVersion.V5 -> v5AnvilListener!!.onClickAnvil(event) ListenerVersion.V5,
ListenerVersion.V5_3
-> v5AnvilListener!!.onClickAnvil(event)
ListenerVersion.PRE_V5 -> preV5AnvilListener!!.onClickAnvil(event) ListenerVersion.PRE_V5 -> preV5AnvilListener!!.onClickAnvil(event)
ListenerVersion.LEGACY -> legacyAnvilListener!!.onClickAnvil(event) ListenerVersion.LEGACY -> legacyAnvilListener!!.onClickAnvil(event)
null -> {} null -> {}