From b3abcadfab45e3fc11d185b4542c7caf92d131b9 Mon Sep 17 00:00:00 2001 From: bluefireoly Date: Sun, 18 Oct 2020 22:51:25 +0200 Subject: [PATCH] Icon of a GUI element now retrieved through a method --- .../net/axay/kspigot/inventory/InventoryGUI.kt | 4 ++-- .../axay/kspigot/inventory/InventoryGUIElements.kt | 8 ++------ .../kspigot/inventory/elements/InventoryGUIButton.kt | 12 ++++++------ .../elements/InventoryGUIButtonInventoryChange.kt | 5 +++-- .../elements/InventoryGUIButtonPageChange.kt | 5 +++-- .../inventory/elements/InventoryGUIPlaceholder.kt | 12 ++++++------ 6 files changed, 22 insertions(+), 24 deletions(-) diff --git a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt index 2931f962..00a8b72a 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUI.kt @@ -116,10 +116,10 @@ class InventoryGUIShared( if (invSlot != null) { val offsetSlot = invSlot.add(offsetHorizontally, offsetVertically).realSlotIn(dimensions) if (offsetSlot != null) - bukkitInventory.setItem(offsetSlot, slot.inventoryGUIElementData.itemStack) + bukkitInventory.setItem(offsetSlot, slot.getItemStack(this)) } } else { - bukkitInventory.setItem(it.key, slot.inventoryGUIElementData.itemStack) + bukkitInventory.setItem(it.key, slot.getItemStack(this)) } } diff --git a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt index 119372fa..1d2c9cfa 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/InventoryGUIElements.kt @@ -8,13 +8,9 @@ abstract class InventoryGUISlot { // ELEMENT -class InventoryGUIElementData( - val itemStack: ItemStack -) +abstract class InventoryGUIElement : InventoryGUISlot() { -abstract class InventoryGUIElement( - val inventoryGUIElementData: InventoryGUIElementData -) : InventoryGUISlot() { + abstract fun getItemStack(gui: InventoryGUI<*>): ItemStack final override fun onClick(clickEvent: InventoryGUIClickEvent) { clickEvent.gui.data.generalOnClick?.invoke(clickEvent) diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt index 903c14f2..4b2ebb85 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButton.kt @@ -1,14 +1,14 @@ package net.axay.kspigot.inventory.elements -import net.axay.kspigot.inventory.ForInventory -import net.axay.kspigot.inventory.InventoryGUIClickEvent -import net.axay.kspigot.inventory.InventoryGUIElement -import net.axay.kspigot.inventory.InventoryGUIElementData +import net.axay.kspigot.inventory.* +import org.bukkit.inventory.ItemStack open class InventoryGUIButton( - inventoryGUIElementData: InventoryGUIElementData, + private val icon: ItemStack, val action: (InventoryGUIClickEvent) -> Unit, -) : InventoryGUIElement(inventoryGUIElementData) { +) : InventoryGUIElement() { + + override fun getItemStack(gui: InventoryGUI<*>) = icon override fun onClickElement(clickEvent: InventoryGUIClickEvent) { clickEvent.bukkitEvent.isCancelled = true diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt index 5180ceb8..a41c2713 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonInventoryChange.kt @@ -1,13 +1,14 @@ package net.axay.kspigot.inventory.elements import net.axay.kspigot.inventory.* +import org.bukkit.inventory.ItemStack class InventoryGUIButtonInventoryChange( - inventoryGUIElementData: InventoryGUIElementData, + icon: ItemStack, changeToGUICallback: () -> InventoryGUI<*>, changeToPageInt: Int?, onChange: ((InventoryGUIClickEvent) -> Unit)? -) : InventoryGUIButton(inventoryGUIElementData, { +) : InventoryGUIButton(icon, { val changeToGUI = changeToGUICallback.invoke() diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt index 19fad581..ab63f162 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIButtonPageChange.kt @@ -1,12 +1,13 @@ package net.axay.kspigot.inventory.elements import net.axay.kspigot.inventory.* +import org.bukkit.inventory.ItemStack class InventoryGUIButtonPageChange( - inventoryGUIElementData: InventoryGUIElementData, + icon: ItemStack, calculator: InventoryGUIPageChangeCalculator, onChange: ((InventoryGUIClickEvent) -> Unit)? -) : InventoryGUIButton(inventoryGUIElementData, { +) : InventoryGUIButton(icon, { val currentPage = it.gui.currentPage val newPage = it.gui.getPage(calculator.calculateNewPage(it.gui.currentPageInt, it.gui.data.pages.keys)) diff --git a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt index 004c6133..aae530b1 100644 --- a/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt +++ b/src/main/kotlin/net/axay/kspigot/inventory/elements/InventoryGUIPlaceholder.kt @@ -1,13 +1,13 @@ package net.axay.kspigot.inventory.elements -import net.axay.kspigot.inventory.ForInventory -import net.axay.kspigot.inventory.InventoryGUIClickEvent -import net.axay.kspigot.inventory.InventoryGUIElement -import net.axay.kspigot.inventory.InventoryGUIElementData +import net.axay.kspigot.inventory.* +import org.bukkit.inventory.ItemStack class InventoryGUIPlaceholder( - inventoryGUIElementData: InventoryGUIElementData -) : InventoryGUIElement(inventoryGUIElementData) { + private val icon: ItemStack +) : InventoryGUIElement() { + + override fun getItemStack(gui: InventoryGUI<*>) = icon override fun onClickElement(clickEvent: InventoryGUIClickEvent) { clickEvent.bukkitEvent.isCancelled = true