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 +})