mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
better excellent enchant fake event [skip ci]
This commit is contained in:
parent
593527241a
commit
151666fd21
2 changed files with 5 additions and 19 deletions
|
|
@ -1,12 +0,0 @@
|
||||||
package xyz.alexcrea.cuanvil.util
|
|
||||||
|
|
||||||
import org.bukkit.event.inventory.PrepareAnvilEvent
|
|
||||||
import org.bukkit.inventory.InventoryView
|
|
||||||
import org.bukkit.inventory.ItemStack
|
|
||||||
import org.bukkit.inventory.view.AnvilView
|
|
||||||
|
|
||||||
object ModernPrepareAnvilCreator {
|
|
||||||
fun createPrepareAnvil(view: InventoryView, item: ItemStack?): PrepareAnvilEvent {
|
|
||||||
return PrepareAnvilEvent(view as AnvilView, item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -13,7 +13,7 @@ import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEPreV5Enchantment
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5Enchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5Enchantment
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5_4Enchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5_4Enchantment
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CALegacyEEEnchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CALegacyEEEnchantment
|
||||||
import xyz.alexcrea.cuanvil.util.ModernPrepareAnvilCreator
|
import java.lang.reflect.Constructor
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
import su.nightexpress.excellentenchants.api.EnchantRegistry as V5EnchantRegistry
|
import su.nightexpress.excellentenchants.api.EnchantRegistry as V5EnchantRegistry
|
||||||
import su.nightexpress.excellentenchants.enchantment.impl.universal.CurseOfFragilityEnchant as LegacyCurseOfFragilityEnchant
|
import su.nightexpress.excellentenchants.enchantment.impl.universal.CurseOfFragilityEnchant as LegacyCurseOfFragilityEnchant
|
||||||
|
|
@ -118,6 +118,8 @@ class ExcellentEnchantsDependency {
|
||||||
private lateinit var handleRechargeMethod: Method
|
private lateinit var handleRechargeMethod: Method
|
||||||
private lateinit var handleCombineMethod: Method
|
private lateinit var handleCombineMethod: Method
|
||||||
|
|
||||||
|
private val prepareAnvilConstructor = PrepareAnvilEvent::class.java.constructors.first() as Constructor<PrepareAnvilEvent>
|
||||||
|
|
||||||
fun redirectListeners() {
|
fun redirectListeners() {
|
||||||
val toUnregister = ArrayList<RegisteredListener>()
|
val toUnregister = ArrayList<RegisteredListener>()
|
||||||
// get required PrepareAnvilEvent listener
|
// get required PrepareAnvilEvent listener
|
||||||
|
|
@ -224,12 +226,8 @@ class ExcellentEnchantsDependency {
|
||||||
|
|
||||||
val first: ItemStack = treatInput(event.leftItem)
|
val first: ItemStack = treatInput(event.leftItem)
|
||||||
val second: ItemStack = treatInput(event.rightItem)
|
val second: ItemStack = treatInput(event.rightItem)
|
||||||
val fakeEvent: PrepareAnvilEvent = try {
|
val fakeEvent = prepareAnvilConstructor.newInstance(event.view, result)
|
||||||
//TODO remove this on legacy removal
|
|
||||||
PrepareAnvilEvent(event.view, result)
|
|
||||||
} catch (_: NoSuchMethodError) {
|
|
||||||
ModernPrepareAnvilCreator.createPrepareAnvil(event.view, result)
|
|
||||||
}
|
|
||||||
handleCombineMethod.invoke(this.usedAnvilListener, fakeEvent, first, second, result)
|
handleCombineMethod.invoke(this.usedAnvilListener, fakeEvent, first, second, result)
|
||||||
|
|
||||||
event.result = fakeEvent.result
|
event.result = fakeEvent.result
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue