mirror of
https://github.com/plexusorg/Module-Shop.git
synced 2025-07-12 13:38:35 +00:00
such a kotlin moment
setup shop command setup shop listener setup item registration
This commit is contained in:
@ -1,9 +1,12 @@
|
||||
package dev.plex.shop
|
||||
|
||||
import com.google.common.collect.Maps
|
||||
import dev.plex.player.PlexPlayer
|
||||
import dev.plex.shop.item.AbstractItem
|
||||
import dev.plex.util.item.ItemBuilder
|
||||
import dev.plex.util.minimessage.SafeMiniMessage
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.Inventory
|
||||
|
||||
@ -13,22 +16,35 @@ import org.bukkit.inventory.Inventory
|
||||
* @since 11:21 PM [10-06-2022]
|
||||
*
|
||||
*/
|
||||
class ShopMenu {
|
||||
companion object {
|
||||
val ITEMS = mapOf<Int, AbstractItem>()
|
||||
}
|
||||
|
||||
fun open(plexPlayer: PlexPlayer)
|
||||
class ShopMenu
|
||||
{
|
||||
companion object
|
||||
{
|
||||
val player: Player? = plexPlayer.player
|
||||
val inventory: Inventory = constructInventory()
|
||||
player?.openInventory(inventory)
|
||||
}
|
||||
val ITEMS: HashMap<Int, AbstractItem> = Maps.newHashMap()
|
||||
fun registerItem(index: Int, item: AbstractItem)
|
||||
{
|
||||
ITEMS.put(index, item);
|
||||
}
|
||||
|
||||
private fun constructInventory(): Inventory
|
||||
{
|
||||
val inventory: Inventory = Bukkit.createInventory(null, 54, SafeMiniMessage.mmDeserialize("<gold>Shop"))
|
||||
ITEMS.forEach { (t, u) -> inventory.setItem(t, u.item) }
|
||||
return inventory
|
||||
fun open(plexPlayer: PlexPlayer)
|
||||
{
|
||||
val player: Player? = plexPlayer.player
|
||||
val inventory: Inventory = constructInventory()
|
||||
player?.openInventory(inventory)
|
||||
}
|
||||
|
||||
private fun constructInventory(): Inventory
|
||||
{
|
||||
val inventory: Inventory = Bukkit.createInventory(null, 54, SafeMiniMessage.mmDeserialize("<gold>Shop"))
|
||||
ITEMS.forEach { (t, u) -> inventory.setItem(t, u.item) }
|
||||
for (i in 0 until inventory.size)
|
||||
{
|
||||
if (inventory.getItem(i) == null || inventory.getItem(i)?.type == Material.AIR)
|
||||
{
|
||||
inventory.setItem(i, ItemBuilder(Material.GRAY_STAINED_GLASS_PANE).displayName(SafeMiniMessage.mmDeserialize("<!italic> ")).build())
|
||||
}
|
||||
}
|
||||
return inventory
|
||||
}
|
||||
}
|
||||
}
|
8
src/main/java/dev/plex/shop/item/impl/FireballItem.kt
Normal file
8
src/main/java/dev/plex/shop/item/impl/FireballItem.kt
Normal file
@ -0,0 +1,8 @@
|
||||
package dev.plex.shop.item.impl
|
||||
|
||||
import dev.plex.shop.item.AbstractItem
|
||||
import org.bukkit.inventory.ItemStack
|
||||
|
||||
class FireballItem(item: ItemStack, cost: Double) : AbstractItem(item, cost)
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user