Merge branch 'feature/v2/itemType_group' into feature/v2/no-material

This commit is contained in:
alexcrea 2025-08-16 16:06:31 +02:00
commit 9803ca8e3a
Signed by: alexcrea
GPG key ID: E346CD16413450E3
4 changed files with 29 additions and 4 deletions

View file

@ -27,6 +27,9 @@ repositories {
// EcoEnchants // EcoEnchants
maven(url = "https://repo.auxilor.io/repository/maven-public/") maven(url = "https://repo.auxilor.io/repository/maven-public/")
// ExcellentEnchants
maven(url = "https://repo.nightexpressdev.com/releases")
// ProtocoLib // ProtocoLib
maven(url = "https://repo.dmulloy2.net/repository/public/") maven(url = "https://repo.dmulloy2.net/repository/public/")
} }
@ -48,8 +51,9 @@ dependencies {
compileOnly("com.willfp:eco:6.74.5") compileOnly("com.willfp:eco:6.74.5")
// ExcellentEnchants // ExcellentEnchants
compileOnly(files("libs/nightcore-2.7.3.jar")) compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") {
compileOnly(files("libs/ExcellentEnchants-5.0.0.jar")) exclude("org.spigotmc")
}
// Disenchantment // Disenchantment
compileOnly(files("libs/Disenchantment-6.1.5.jar")) compileOnly(files("libs/Disenchantment-6.1.5.jar"))

Binary file not shown.

Binary file not shown.

View file

@ -5,15 +5,18 @@ import com.jankominek.disenchantment.events.DisenchantClickEvent
import com.jankominek.disenchantment.events.DisenchantEvent import com.jankominek.disenchantment.events.DisenchantEvent
import com.jankominek.disenchantment.events.ShatterClickEvent import com.jankominek.disenchantment.events.ShatterClickEvent
import com.jankominek.disenchantment.events.ShatterEvent import com.jankominek.disenchantment.events.ShatterEvent
import com.jankominek.disenchantment.listeners.ShatterClickListener
import io.delilaheve.CustomAnvil import io.delilaheve.CustomAnvil
import org.bukkit.entity.HumanEntity import org.bukkit.entity.HumanEntity
import org.bukkit.event.Listener
import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.event.inventory.PrepareAnvilEvent import org.bukkit.event.inventory.PrepareAnvilEvent
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack
import org.bukkit.inventory.view.AnvilView import org.bukkit.inventory.view.AnvilView
import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener import xyz.alexcrea.cuanvil.listener.PrepareAnvilListener
import xyz.alexcrea.cuanvil.util.AnvilXpUtil import xyz.alexcrea.cuanvil.util.AnvilXpUtil
import java.util.logging.Level
import kotlin.reflect.KClass
@Suppress("unstableApiUsage") @Suppress("unstableApiUsage")
class DisenchantmentDependency { class DisenchantmentDependency {
@ -24,7 +27,25 @@ class DisenchantmentDependency {
fun redirectListeners() { fun redirectListeners() {
PrepareAnvilEvent.getHandlerList().unregister(Disenchantment.plugin) PrepareAnvilEvent.getHandlerList().unregister(Disenchantment.plugin)
InventoryClickEvent.getHandlerList().unregister(Disenchantment.plugin)
// unregister only the feature click event and not all
// This is to avoid the disenchantment gui breaking
try {
unregisterStaticDisenchantmentListener(ShatterClickListener::class)
unregisterStaticDisenchantmentListener(InventoryClickEvent::class)
} catch (e: Exception) {
CustomAnvil.instance.logger.log(
Level.SEVERE, "Could not initialize disenchantment support" +
"please report this bug to the developer", e
)
}
}
private fun unregisterStaticDisenchantmentListener(clazz: KClass<*>) {
val field = clazz.java.getDeclaredField("listener")
field.isAccessible = true
val listener: Listener = field.get(null) as Listener
InventoryClickEvent.getHandlerList().unregister(listener)
} }
fun testPrepareAnvil(event: PrepareAnvilEvent, player: HumanEntity): Boolean { fun testPrepareAnvil(event: PrepareAnvilEvent, player: HumanEntity): Boolean {