Compatibility with most plugin using wesjd anvil gui

This commit is contained in:
alexcrea 2024-09-22 20:12:56 +02:00
parent 74a211bc88
commit a915d5ad80
15 changed files with 267 additions and 1 deletions

View file

@ -6,6 +6,8 @@ import org.bukkit.event.inventory.InventoryClickEvent
import org.bukkit.event.inventory.PrepareAnvilEvent
import org.bukkit.inventory.AnvilInventory
import xyz.alexcrea.cuanvil.config.ConfigHolder
import xyz.alexcrea.cuanvil.dependency.gui.ExternGuiTester
import xyz.alexcrea.cuanvil.dependency.gui.GuiTesterSelector
import xyz.alexcrea.cuanvil.dependency.packet.PacketManager
import xyz.alexcrea.cuanvil.dependency.packet.PacketManagerSelector
import xyz.alexcrea.cuanvil.dependency.scheduler.BukkitScheduler
@ -17,6 +19,8 @@ object DependencyManager {
var isFolia: Boolean = false
lateinit var scheduler: TaskScheduler
lateinit var packetManager: PacketManager
var externGuiTester: ExternGuiTester? = null
var enchantmentSquaredCompatibility: EnchantmentSquaredDependency? = null
var ecoEnchantCompatibility: EcoEnchantDependency? = null
var disenchantmentCompatibility: DisenchantmentDependency? = null
@ -35,6 +39,7 @@ object DependencyManager {
// Packet Manager
val forceProtocolib = ConfigHolder.DEFAULT_CONFIG.config.getBoolean("force_protocolib", false)
packetManager = PacketManagerSelector.selectPacketManager(forceProtocolib)
externGuiTester = GuiTesterSelector.selectGuiTester
// Enchantment Squared dependency
if(pluginManager.isPluginEnabled("EnchantsSquared")){
@ -81,6 +86,10 @@ object DependencyManager {
if(disenchantmentCompatibility?.testPrepareAnvil(event) == true) bypass = true
// Test if the inventory is a gui(version specific)
if(!bypass && (externGuiTester?.testIfGui(event.view) == true)) bypass = true
return bypass
}
@ -89,6 +98,9 @@ object DependencyManager {
if(disenchantmentCompatibility?.testAnvilResult(event, inventory) == true) bypass = true
// Test if the inventory is a gui(version specific)
if(!bypass && (externGuiTester?.testIfGui(event.view) == true)) bypass = true
return bypass
}