From 02d8ccae368f141d6a91860b5cd44f110b898c22 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 3 Jun 2023 21:31:46 +0100 Subject: [PATCH] Improved menu closing --- .../src/main/kotlin/com/willfp/ecomenus/menus/Menu.kt | 6 ++++++ .../com/willfp/ecomenus/slots/impl/SlotTypeClose.kt | 10 ++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/menus/Menu.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/menus/Menu.kt index 445f431..63573fc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/menus/Menu.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/menus/Menu.kt @@ -5,6 +5,7 @@ import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.gui.addPage import com.willfp.eco.core.gui.menu import com.willfp.eco.core.gui.menu.Menu +import com.willfp.eco.core.gui.onClose import com.willfp.eco.core.gui.page.PageChanger import com.willfp.eco.core.gui.slot.FillerMask import com.willfp.eco.core.gui.slot.MaskItems @@ -96,5 +97,10 @@ fun buildMenu(plugin: EcoPlugin, menu: EcoMenu, config: Config): Menu { } } } + + onClose { event, menu -> + val player = event.player as Player + menu.close(player) + } } } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/slots/impl/SlotTypeClose.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/slots/impl/SlotTypeClose.kt index 8fe2aaf..29ea4ef 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/slots/impl/SlotTypeClose.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecomenus/slots/impl/SlotTypeClose.kt @@ -17,10 +17,12 @@ import org.bukkit.event.inventory.InventoryClickEvent object SlotTypeClose : SlotType("close") { override fun create(config: Config, plugin: EcoPlugin, context: ViolationContext): SlotFunction { - return object : SlotFunction { - override fun execute(player: Player, event: InventoryClickEvent, slot: Slot, menu: Menu) { - menu.close(player) - } + return CloseSlotFunction + } + + private object CloseSlotFunction : SlotFunction { + override fun execute(player: Player, event: InventoryClickEvent, slot: Slot, menu: Menu) { + menu.close(player) } } }