|
|
|
|
@@ -13,6 +13,7 @@ import org.bukkit.event.EventPriority
|
|
|
|
|
import org.bukkit.event.Listener
|
|
|
|
|
import org.bukkit.event.inventory.InventoryClickEvent
|
|
|
|
|
import org.bukkit.event.inventory.InventoryCloseEvent
|
|
|
|
|
import org.bukkit.event.player.PlayerItemHeldEvent
|
|
|
|
|
|
|
|
|
|
class GUIListener(private val plugin: EcoPlugin) : Listener {
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
|
|
|
@@ -45,7 +46,6 @@ class GUIListener(private val plugin: EcoPlugin) : Listener {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val menu = inv.getMenu() ?: return
|
|
|
|
|
val rendered = inv.asRenderedInventory() ?: return
|
|
|
|
|
|
|
|
|
|
val (row, column) = MenuUtils.convertSlotToRowColumn(inv.firstEmpty())
|
|
|
|
|
|
|
|
|
|
@@ -54,8 +54,6 @@ class GUIListener(private val plugin: EcoPlugin) : Listener {
|
|
|
|
|
if (!slot.isCaptive) {
|
|
|
|
|
event.isCancelled = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
plugin.scheduler.run { rendered.render() }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@EventHandler(priority = EventPriority.HIGH)
|
|
|
|
|
@@ -66,4 +64,25 @@ class GUIListener(private val plugin: EcoPlugin) : Listener {
|
|
|
|
|
|
|
|
|
|
plugin.scheduler.run { MenuHandler.unregisterInventory(event.inventory) }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
|
fun forceRender(event: InventoryClickEvent) {
|
|
|
|
|
val player = event.whoClicked as? Player ?: return
|
|
|
|
|
player.renderActiveMenu()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
|
fun forceRender(event: PlayerItemHeldEvent) {
|
|
|
|
|
val player = event.player
|
|
|
|
|
player.renderActiveMenu()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun Player.renderActiveMenu() {
|
|
|
|
|
val inv = this.openInventory.topInventory
|
|
|
|
|
|
|
|
|
|
val rendered = inv.asRenderedInventory() ?: return
|
|
|
|
|
|
|
|
|
|
rendered.render()
|
|
|
|
|
plugin.scheduler.run { rendered.render() }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|