译名¶
关于物品本地化名称的部分工具,具体表现为以下扩展函数:
/**
* 获得物品的名称,如果没有则返回译名
*/
fun ItemStack.getName(player: Player? = null): String {
return if (itemMeta?.hasDisplayName() == true) itemMeta!!.displayName else getI18nName(player)
}
/**
* 获取物品内部名称
*/
fun ItemStack.getInternalKey(): String {
return nmsGeneric.getKey(this)
}
/**
* 获取物品内部名称
*/
fun ItemStack.getInternalName(): String {
return nmsGeneric.getName(this)
}
/**
* 获取物品的本地化名称
*/
fun ItemStack.getI18nName(player: Player? = null): String {
return I18n.instance.getName(player, this)
}
/**
* 获取实体内部名称
*/
fun Entity.getInternalName(): String {
return nmsGeneric.getName(this)
}
/**
* 获取实体本地化名称
*/
fun Entity.getI18nName(player: Player? = null): String {
return I18n.instance.getName(player, this)
}
/**
* 获取附魔内部名称
*/
fun Enchantment.getInternalName(): String {
return nmsGeneric.getEnchantmentKey(this)
}
/**
* 获取附魔本地化名称
*/
fun Enchantment.getI18nName(player: Player? = null): String {
return I18n.instance.getName(player, this)
}
/**
* 获取药水效果内部名称
*/
fun PotionEffectType.getInternalName(): String {
return nmsGeneric.getPotionEffectTypeKey(this)
}
/**
* 获取药水效果本地化名称
*/
fun PotionEffectType.getI18nName(player: Player? = null): String {
return I18n.instance.getName(player, this)
}