fix small issue

I may have forgotten how to use reflexion. ups
This commit is contained in:
alexcrea 2025-05-13 13:37:57 +02:00
parent 566e3471dd
commit d9cf3ef507
No known key found for this signature in database
GPG key ID: 027DD67D2D3280C5
3 changed files with 34 additions and 10 deletions

View file

@ -130,7 +130,10 @@ object DependencyManager {
event.inventory.setItem(ANVIL_OUTPUT_SLOT, null) event.inventory.setItem(ANVIL_OUTPUT_SLOT, null)
// Finally, warn the player, maybe a lot of time but better warn than do nothing // Finally, warn the player, maybe a lot of time but better warn than do nothing
event.view.player.sendMessage(ChatColor.RED.toString() + "Error while handling the anvil.") event.view.player.sendMessage(
"[" + ChatColor.YELLOW.toString() + "CustomAnvil" + ChatColor.WHITE.toString() + "] " +
ChatColor.RED.toString() + "Error while handling the anvil."
)
return true return true
} }
} }
@ -159,7 +162,10 @@ object DependencyManager {
event.inventory.setItem(ANVIL_OUTPUT_SLOT, null) event.inventory.setItem(ANVIL_OUTPUT_SLOT, null)
// Finally, warn the player, maybe a lot of time but better warn than do nothing // Finally, warn the player, maybe a lot of time but better warn than do nothing
event.view.player.sendMessage(ChatColor.RED.toString() + "Error while handling the anvil.") event.view.player.sendMessage(
"[" + ChatColor.YELLOW.toString() + "CustomAnvil" + ChatColor.WHITE.toString() + "] " +
ChatColor.RED.toString() + "Error while handling the anvil."
)
return true return true
} }
} }
@ -177,7 +183,7 @@ object DependencyManager {
if (!bypass && (excellentEnchantsCompatibility?.testPrepareAnvil(event) == true)) bypass = true if (!bypass && (excellentEnchantsCompatibility?.testPrepareAnvil(event) == true)) bypass = true
for (genericDependency in genericDependencies) { for (genericDependency in genericDependencies) {
genericDependency.testPrepareAnvil(event) if (!bypass && genericDependency.testPrepareAnvil(event)) bypass = true
} }
return bypass return bypass
@ -199,7 +205,10 @@ object DependencyManager {
event.inventory.setItem(ANVIL_OUTPUT_SLOT, null) event.inventory.setItem(ANVIL_OUTPUT_SLOT, null)
// Finally, warn the player, maybe a lot of time but better warn than do nothing // Finally, warn the player, maybe a lot of time but better warn than do nothing
event.view.player.sendMessage(ChatColor.RED.toString() + "Error while handling the anvil.") event.view.player.sendMessage(
"[" + ChatColor.YELLOW.toString() + "CustomAnvil" + ChatColor.WHITE.toString() + "] " +
ChatColor.RED.toString() + "Error while handling the anvil."
)
return true return true
} }
} }
@ -223,7 +232,10 @@ object DependencyManager {
event.inventory.setItem(ANVIL_OUTPUT_SLOT, null) event.inventory.setItem(ANVIL_OUTPUT_SLOT, null)
// Finally, warn the player, maybe a lot of time but better warn than do nothing // Finally, warn the player, maybe a lot of time but better warn than do nothing
event.whoClicked.sendMessage(ChatColor.RED.toString() + "Error while handling the anvil.") event.whoClicked.sendMessage(
"[" + ChatColor.YELLOW.toString() + "CustomAnvil" + ChatColor.WHITE.toString() + "] " +
ChatColor.RED.toString() + "Error while handling the anvil."
)
return true return true
} }
} }

View file

@ -5,7 +5,7 @@ import org.bukkit.event.inventory.PrepareAnvilEvent
import org.bukkit.plugin.Plugin import org.bukkit.plugin.Plugin
import org.bukkit.plugin.RegisteredListener import org.bukkit.plugin.RegisteredListener
abstract class GenericPluginDependency(private val plugin: Plugin) { abstract class GenericPluginDependency(protected val plugin: Plugin) {
protected val preAnvil = ArrayList<RegisteredListener>() protected val preAnvil = ArrayList<RegisteredListener>()
protected val postAnvil = ArrayList<RegisteredListener>() protected val postAnvil = ArrayList<RegisteredListener>()
@ -33,18 +33,27 @@ abstract class GenericPluginDependency(private val plugin: Plugin) {
protected abstract fun postAnvilEvents(): Collection<RegisteredListener> protected abstract fun postAnvilEvents(): Collection<RegisteredListener>
open fun testPrepareAnvil(event: PrepareAnvilEvent) { open fun testPrepareAnvil(event: PrepareAnvilEvent): Boolean {
val previousResult = event.result
event.result = null
for (registeredListener in preAnvil) { for (registeredListener in preAnvil) {
registeredListener.callEvent(event) registeredListener.callEvent(event)
if (event.result != null) return true
} }
event.result = previousResult;
return false
} }
open fun testAnvilResult(event: InventoryClickEvent): Boolean { open fun testAnvilResult(event: InventoryClickEvent): Boolean {
for (registeredListener in postAnvil) { for (registeredListener in postAnvil) {
registeredListener.callEvent(event) registeredListener.callEvent(event)
if (event.inventory.getItem(2) == null) return true
} }
return event.inventory.getItem(2) == null return false
} }

View file

@ -1,5 +1,6 @@
package xyz.alexcrea.cuanvil.dependency.plugins package xyz.alexcrea.cuanvil.dependency.plugins
import lol.hyper.toolstats.ToolStats
import lol.hyper.toolstats.tools.ItemChecker import lol.hyper.toolstats.tools.ItemChecker
import org.bukkit.event.inventory.InventoryClickEvent import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.inventory.ItemStack import org.bukkit.inventory.ItemStack
@ -27,8 +28,10 @@ class ToolStatsDependency(plugin: Plugin) : GenericPluginDependency(plugin) {
val left = event.inventory.getItem(PrepareAnvilListener.ANVIL_INPUT_LEFT) val left = event.inventory.getItem(PrepareAnvilListener.ANVIL_INPUT_LEFT)
val result = event.inventory.getItem(PrepareAnvilListener.ANVIL_OUTPUT_SLOT) val result = event.inventory.getItem(PrepareAnvilListener.ANVIL_OUTPUT_SLOT)
val leftTokens = getTokenMethod.invoke(left) as Array<String> val itemChecker = (plugin as ToolStats).itemChecker
val resultToken = getTokenMethod.invoke(result) as Array<String>
val leftTokens = getTokenMethod.invoke(itemChecker, left) as Array<String>
val resultToken = getTokenMethod.invoke(itemChecker, result) as Array<String>
return !leftTokens.contentDeepEquals(resultToken); return !leftTokens.contentDeepEquals(resultToken);
} }