kotlin setup

This commit is contained in:
Taah
2022-06-17 22:23:22 -07:00
parent 6e6b8a4613
commit babda6779e
9 changed files with 77 additions and 62 deletions

View File

@ -0,0 +1,34 @@
package dev.plex.shop
import dev.plex.player.PlexPlayer
import dev.plex.shop.item.AbstractItem
import dev.plex.util.minimessage.SafeMiniMessage
import org.bukkit.Bukkit
import org.bukkit.entity.Player
import org.bukkit.inventory.Inventory
/**
* @author Taah
* @project plex-shop
* @since 11:21 PM [10-06-2022]
*
*/
class ShopMenu {
companion object {
val ITEMS = mapOf<Int, AbstractItem>()
}
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) }
return inventory
}
}

View File

@ -0,0 +1,18 @@
package dev.plex.shop.item
import dev.plex.cache.DataUtils
import dev.plex.player.PlexPlayer
import org.bukkit.inventory.ItemStack
import java.util.concurrent.CompletableFuture
abstract class AbstractItem(val item: ItemStack, private val cost: Double)
{
fun purchase(player: PlexPlayer)
{
player.coins.minus(this.cost);
player.player?.inventory?.addItem(this.item);
CompletableFuture.runAsync {
DataUtils.update(player);
}
}
}