From a204867ff0fa08dcac258db4aedb6834b47324a3 Mon Sep 17 00:00:00 2001 From: Skyslycer Date: Mon, 16 Aug 2021 19:11:34 +0200 Subject: [PATCH] did requested changes --- src/main/kotlin/net/axay/kspigot/gui/GUI.kt | 4 ++-- src/main/kotlin/net/axay/kspigot/gui/GUIBuilder.kt | 8 ++++++-- src/main/kotlin/net/axay/kspigot/gui/GUICloseEvent.kt | 10 ++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 src/main/kotlin/net/axay/kspigot/gui/GUICloseEvent.kt diff --git a/src/main/kotlin/net/axay/kspigot/gui/GUI.kt b/src/main/kotlin/net/axay/kspigot/gui/GUI.kt index a213fede..23b35774 100644 --- a/src/main/kotlin/net/axay/kspigot/gui/GUI.kt +++ b/src/main/kotlin/net/axay/kspigot/gui/GUI.kt @@ -19,7 +19,7 @@ class GUIData( val transitionTo: InventoryChangeEffect?, val transitionFrom: InventoryChangeEffect?, internal val generalOnClick: ((GUIClickEvent) -> Unit)?, - internal val onClose: ((InventoryCloseEvent) -> Unit)? + internal val onClose: ((GUICloseEvent) -> Unit)? ) abstract class GUI( @@ -99,7 +99,7 @@ class GUIIndividual( if (resetOnClose || data.onClose != null) { listen { if (data.onClose != null && playerInstances[it.player]?.bukkitInventory == it.inventory) { - data.onClose.invoke(it) + data.onClose.invoke(GUICloseEvent(it, playerInstances[it.player]!!, it.player as Player)) } if (resetOnClose) { diff --git a/src/main/kotlin/net/axay/kspigot/gui/GUIBuilder.kt b/src/main/kotlin/net/axay/kspigot/gui/GUIBuilder.kt index 5ba7a8ee..c199e24c 100644 --- a/src/main/kotlin/net/axay/kspigot/gui/GUIBuilder.kt +++ b/src/main/kotlin/net/axay/kspigot/gui/GUIBuilder.kt @@ -47,7 +47,7 @@ class GUIBuilder( private var onClickElement: ((GUIClickEvent) -> Unit)? = null - private var onClose: ((InventoryCloseEvent) -> Unit)? = null + private var onClose: ((GUICloseEvent) -> Unit)? = null /** * Opens the builder for a new page and adds @@ -66,7 +66,11 @@ class GUIBuilder( onClickElement = onClick } - fun onClose(onClose: (InventoryCloseEvent) -> Unit) { + /** + * A callback executed when the user closes + * the inventory. + */ + fun onClose(onClose: (GUICloseEvent) -> Unit) { this.onClose = onClose } diff --git a/src/main/kotlin/net/axay/kspigot/gui/GUICloseEvent.kt b/src/main/kotlin/net/axay/kspigot/gui/GUICloseEvent.kt new file mode 100644 index 00000000..9ac443ae --- /dev/null +++ b/src/main/kotlin/net/axay/kspigot/gui/GUICloseEvent.kt @@ -0,0 +1,10 @@ +package net.axay.kspigot.gui + +import org.bukkit.entity.Player +import org.bukkit.event.inventory.InventoryCloseEvent + +class GUICloseEvent( + val bukkitEvent: InventoryCloseEvent, + val guiInstance: GUIInstance, + val player: Player, +) \ No newline at end of file