diff --git a/build.gradle.kts b/build.gradle.kts index 4f7e0a3..d991b66 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -18,7 +18,7 @@ plugins { } group = "xyz.alexcrea" -version = "1.15.2" +version = "1.15.3" val effectiveVersion = "$version" + (if (System.getenv("SMALL_COMMIT_HASH") != null) "-dev-${System.getenv("SMALL_COMMIT_HASH")!!}" else "") @@ -52,6 +52,7 @@ dependencies { compileOnly(project(":impl:LegacyEcoEnchant")) // ExcellentEnchants + implementation(project(":impl:ExcellentEnchant5_3")) compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") { exclude("org.spigotmc") } diff --git a/impl/ExcellentEnchant5_3/build.gradle.kts b/impl/ExcellentEnchant5_3/build.gradle.kts new file mode 100644 index 0000000..7004edf --- /dev/null +++ b/impl/ExcellentEnchant5_3/build.gradle.kts @@ -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") + } +} \ No newline at end of file diff --git a/impl/ExcellentEnchant5_3/src/main/java/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchant5_3Registry.java b/impl/ExcellentEnchant5_3/src/main/java/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchant5_3Registry.java new file mode 100644 index 0000000..51e7302 --- /dev/null +++ b/impl/ExcellentEnchant5_3/src/main/java/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchant5_3Registry.java @@ -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 getRegistered(){ + return EnchantRegistry.getRegistered(); + } + + +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 867d1bc..1d401da 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -37,4 +37,6 @@ include("nms:v1_21R6") findProject(":nms:v1_21R6")?.name = "v1_21R6" include(":impl:LegacyEcoEnchant") -findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant" \ No newline at end of file +findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant" +include("impl:ExcellentEnchant5_3") +findProject(":impl:ExcellentEnchant5_3")?.name = "ExcellentEnchant5_3" \ No newline at end of file diff --git a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt index 2aee624..98d80ff 100644 --- a/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt +++ b/src/main/kotlin/xyz/alexcrea/cuanvil/dependency/plugins/ExcellentEnchantsDependency.kt @@ -25,6 +25,7 @@ import su.nightexpress.excellentenchants.registry.EnchantRegistry as PreV5Enchan class ExcellentEnchantsDependency { enum class ListenerVersion(val classPath: String) { + V5_3("su.nightexpress.excellentenchants.enchantment.EnchantRegistry"), V5("su.nightexpress.excellentenchants.manager.listener.AnvilListener"), PRE_V5("su.nightexpress.excellentenchants.enchantment.listener.AnvilListener"), LEGACY("su.nightexpress.excellentenchants.enchantment.listener.EnchantAnvilListener"), @@ -49,6 +50,8 @@ class ExcellentEnchantsDependency { if (listenerVersion == null) { 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 @@ -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. when (listenerVersion) { + ListenerVersion.V5_3 -> { + for (enchantment in ExcellentEnchant5_3Registry.getRegistered()) { + EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key) + EnchantmentApi.registerEnchantment(CAEEV5Enchantment(enchantment)) + } + } + ListenerVersion.V5 -> { for (enchantment in V5EnchantRegistry.getRegistered()) { EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key) @@ -119,7 +129,9 @@ class ExcellentEnchantsDependency { } when (listenerVersion) { - ListenerVersion.V5 -> { + ListenerVersion.V5, + ListenerVersion.V5_3 + -> { if (listener is V5AnvilListener) { this.v5AnvilListener = listener toUnregister.add(registeredListener) @@ -151,7 +163,9 @@ class ExcellentEnchantsDependency { } when (listenerVersion) { - ListenerVersion.V5 -> this.usedAnvilListener = v5AnvilListener!! + ListenerVersion.V5, + ListenerVersion.V5_3 + -> this.usedAnvilListener = v5AnvilListener!! ListenerVersion.PRE_V5 -> this.usedAnvilListener = preV5AnvilListener!! ListenerVersion.LEGACY -> this.usedAnvilListener = legacyAnvilListener!! null -> {} @@ -205,7 +219,9 @@ class ExcellentEnchantsDependency { fun testAnvilResult(event: InventoryClickEvent): Any { if (event.inventory.getItem(2) != null) { when (listenerVersion) { - ListenerVersion.V5 -> v5AnvilListener!!.onClickAnvil(event) + ListenerVersion.V5, + ListenerVersion.V5_3 + -> v5AnvilListener!!.onClickAnvil(event) ListenerVersion.PRE_V5 -> preV5AnvilListener!!.onClickAnvil(event) ListenerVersion.LEGACY -> legacyAnvilListener!!.onClickAnvil(event) null -> {}