From c088be8840fc2d796ddba1ef15b428c9c1befbfb Mon Sep 17 00:00:00 2001 From: NyCode Date: Thu, 29 Apr 2021 20:04:58 +0200 Subject: [PATCH] Add beforeChange and afterChange to GUIButtonPageChange --- .../kspigot/gui/elements/GUIButtonPageChange.kt | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/net/axay/kspigot/gui/elements/GUIButtonPageChange.kt b/src/main/kotlin/net/axay/kspigot/gui/elements/GUIButtonPageChange.kt index a21cf2f0..f7724e9f 100644 --- a/src/main/kotlin/net/axay/kspigot/gui/elements/GUIButtonPageChange.kt +++ b/src/main/kotlin/net/axay/kspigot/gui/elements/GUIButtonPageChange.kt @@ -6,7 +6,8 @@ import org.bukkit.inventory.ItemStack class GUIButtonPageChange( icon: ItemStack, calculator: GUIPageChangeCalculator, - onChange: ((GUIClickEvent) -> Unit)? + beforeChange: ((GUIClickEvent) -> Boolean)?, + afterChange: ((GUIClickEvent) -> Unit)? ) : GUIButton(icon, { val currentPage = it.guiInstance.currentPage @@ -18,13 +19,15 @@ class GUIButtonPageChange( ) if (newPage != null) { - val effect = (newPage.transitionTo ?: currentPage.transitionFrom) - ?: PageChangeEffect.INSTANT + val changePage = beforeChange?.invoke(it) ?: true - it.guiInstance.changePage(effect, currentPage, newPage) - - onChange?.invoke(it) + if (changePage) { + val effect = (newPage.transitionTo ?: currentPage.transitionFrom) + ?: PageChangeEffect.INSTANT + it.guiInstance.changePage(effect, currentPage, newPage) + afterChange?.invoke(it) + } } -}) \ No newline at end of file +})