译名

关于物品本地化名称的部分工具,具体表现为以下扩展函数:

/**
 * 获得物品的名称,如果没有则返回译名
 */
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)
}