From 94f7b33c1fc0bd2abfd6ad4833d8adce625525ba Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Wed, 21 Oct 2020 20:56:10 +0200 Subject: [PATCH] Now taking page changes into account when handling click events --- .../kotlin/net/axay/kspigot/inventory/InventoryGUI.kt | 10 ++++++++++ .../net/axay/kspigot/inventory/InventoryGUIHolder.kt | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt index 5e1a7056..b049faed 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt @@ -27,6 +27,8 @@ abstract class InventoryGUI( internal abstract val bukkitInventory: Inventory + internal var isInMove: Boolean = false + internal abstract fun loadPageUnsafe( page: Int, offsetHorizontally: Int = 0, @@ -79,6 +81,14 @@ abstract class InventoryGUI( */ fun getPage(page: Int?) = data.pages[page] + /** + * Reloads the current page. + */ + fun reloadCurrentPage() { + if (!isInMove) + loadPage(currentPage) + } + } // Inventory GUI implementations diff --git a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIHolder.kt b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIHolder.kt index 8576d078..bfa44903 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIHolder.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIHolder.kt @@ -22,6 +22,12 @@ object InventoryGUIHolder : AutoCloseable { val clickedInv = it.clickedInventory ?: return@listen val inv = registered.find { search -> search.isThisInv(clickedInv) } ?: return@listen + + if (inv.isInMove) { + it.isCancelled = true + return@listen + } + val invPage = inv.currentPageInt val slot = inv.data.pages[invPage]?.slots?.get(it.slot)