Added support for CustomModelData
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
package net.axay.kspigot.items
|
||||
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.inventory.meta.ItemMeta
|
||||
|
||||
/**
|
||||
* This class defines a material in combination
|
||||
* with a specific custom model data value.
|
||||
*
|
||||
* It is useful if you work with custom items
|
||||
* defined in resourcepacks, where you do not
|
||||
* only need a material to define a specific item
|
||||
* type, but the value of the custom model data
|
||||
* aswell.
|
||||
*/
|
||||
data class CustomItemIdentifier(val customModelData: Int, val placeHolderMaterial: Material) {
|
||||
|
||||
constructor(itemStack: ItemStack) :
|
||||
this(
|
||||
kotlin.run {
|
||||
val itemMeta = itemStack.itemMeta
|
||||
if (itemMeta != null && itemMeta.hasCustomModelData()) {
|
||||
return@run itemMeta.customModelData
|
||||
}
|
||||
return@run 0
|
||||
},
|
||||
itemStack.type
|
||||
)
|
||||
|
||||
val itemStack: ItemStack?
|
||||
get() {
|
||||
val itemStack = ItemStack(placeHolderMaterial, 1)
|
||||
val itemMeta: ItemMeta? = itemStack.itemMeta
|
||||
return if (itemMeta != null) {
|
||||
itemMeta.setCustomModelData(customModelData)
|
||||
itemStack.itemMeta = itemMeta
|
||||
itemStack
|
||||
} else null
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user