ItemStacks.kt
Branches > main > 039d1df > files / src / main / kotlin / net / bowmap / server / item / ItemStacks.kt
/// Itemstack interop functions
package net.bowmap.server.item
import org.bukkit.inventory.ItemStack
fun toItemStack(item: Item): ItemStack {
// TODO custommodeldata
val itemStack = ItemStack(material(item.type), item.amount)
val meta = itemStack.getItemMeta()
// itemName is not editable via an anvil, which is the desired behavior
// TODO make sure its not italics!
meta.itemName(item.name)
meta.lore(computeLore(item))
itemStack.setItemMeta(meta)
return itemStack
}
fun toItemStacks(items: List<Item>): List<ItemStack> {
return items.map(::toItemStack)
}
/// Turns a vanilla ItemStack into a Bowmap item.
/// This function is the inverse of toItemStack, so that toItem(toItemStack(x)) == x
fun toItem(itemStack: ItemStack): Item {
// TODO custommodeldata
// See the above itemName comment
// val meta = itemStack.getItemMeta()
return Item(
// TODO right now this won't work with any custom materials
// It'll have to be stored somwhere on the item :)
type = MaterialItemType(itemStack.type),
amount = itemStack.amount,
)
}