Add beforeChange and afterChange to GUIButtonPageChange
This commit is contained in:
@@ -6,7 +6,8 @@ import org.bukkit.inventory.ItemStack
|
|||||||
class GUIButtonPageChange<T : ForInventory>(
|
class GUIButtonPageChange<T : ForInventory>(
|
||||||
icon: ItemStack,
|
icon: ItemStack,
|
||||||
calculator: GUIPageChangeCalculator,
|
calculator: GUIPageChangeCalculator,
|
||||||
onChange: ((GUIClickEvent<T>) -> Unit)?
|
beforeChange: ((GUIClickEvent<T>) -> Boolean)?,
|
||||||
|
afterChange: ((GUIClickEvent<T>) -> Unit)?
|
||||||
) : GUIButton<T>(icon, {
|
) : GUIButton<T>(icon, {
|
||||||
|
|
||||||
val currentPage = it.guiInstance.currentPage
|
val currentPage = it.guiInstance.currentPage
|
||||||
@@ -18,13 +19,15 @@ class GUIButtonPageChange<T : ForInventory>(
|
|||||||
)
|
)
|
||||||
if (newPage != null) {
|
if (newPage != null) {
|
||||||
|
|
||||||
val effect = (newPage.transitionTo ?: currentPage.transitionFrom)
|
val changePage = beforeChange?.invoke(it) ?: true
|
||||||
?: PageChangeEffect.INSTANT
|
|
||||||
|
|
||||||
it.guiInstance.changePage(effect, currentPage, newPage)
|
if (changePage) {
|
||||||
|
val effect = (newPage.transitionTo ?: currentPage.transitionFrom)
|
||||||
onChange?.invoke(it)
|
?: PageChangeEffect.INSTANT
|
||||||
|
|
||||||
|
it.guiInstance.changePage(effect, currentPage, newPage)
|
||||||
|
afterChange?.invoke(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
Reference in New Issue
Block a user