ItemStacks.kt

Branches > main > e39f879 > 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(item.material, 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
}

/// 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(
    material = itemStack.type,
    amount = itemStack.amount,
    name = meta.itemName(),
  )
}