Skip to content

Commit 7096f18

Browse files
committed
reintroduce fallback var so i dont have to !! component.fallback(), allow lore to fallback to empty string
1 parent 9d0e7b0 commit 7096f18

3 files changed

Lines changed: 13 additions & 21 deletions

File tree

pylon-core/src/main/kotlin/io/github/pylonmc/pylon/core/i18n/AddonTranslator.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ class AddonTranslator(private val addon: PylonAddon) : Translator {
3838
override fun translate(key: String, locale: Locale): MessageFormat? = null
3939

4040
override fun translate(component: TranslatableComponent, locale: Locale): Component? {
41-
var translated = getTranslation(component, locale)
42-
?: component.fallback()?.let { getTranslation(it, locale) ?: Component.text(fallback) }
41+
val fallback = component.fallback()
42+
var translated = getTranslation(component, locale)
43+
?: fallback?.let { getTranslation(it, locale) ?: Component.text(fallback) } ?: return null
4344
for (arg in component.arguments()) {
4445
val component = arg.asComponent()
4546
if (component !is VirtualComponent) continue

pylon-core/src/main/kotlin/io/github/pylonmc/pylon/core/item/PylonItem.kt

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,44 +45,35 @@ open class PylonItem(val stack: ItemStack) : Keyed {
4545

4646
companion object {
4747

48-
private val nameAndLoreWarningsSupressed: MutableSet<NamespacedKey> = mutableSetOf()
48+
private val nameWarningsSupressed: MutableSet<NamespacedKey> = mutableSetOf()
4949

50-
private fun checkNameAndLore(schema: PylonItemSchema) {
50+
private fun checkName(schema: PylonItemSchema) {
5151
val translator = AddonTranslator.translators[schema.addon]
5252
check(translator != null) {
5353
"Addon does not have a translator; did you forget to call registerWithPylon()?"
5454
}
5555

5656
// Adventure is a perfect API with absolutely no problems whatsoever.
5757
val name = schema.itemStack.getData(DataComponentTypes.ITEM_NAME) as? TranslatableComponent
58-
val lore = schema.itemStack.getData(DataComponentTypes.LORE)?.lines()?.get(0) as? TranslatableComponent
5958

60-
var isNameAndLoreValid = true
59+
var isNameValid = true
6160
if (name == null || name.key() != ItemStackBuilder.nameKey(schema.key)) {
6261
PylonCore.logger.warning("Item ${schema.key}'s name is not a translation key; check your item uses ItemStackBuilder.pylonItem(...)")
63-
isNameAndLoreValid = false
62+
isNameValid = false
6463
}
6564

66-
if (lore == null || lore.key() != ItemStackBuilder.loreKey(schema.key)) {
67-
PylonCore.logger.warning("Item ${schema.key}'s lore is not a translation key; check your item uses ItemStackBuilder.pylonItem(...)")
68-
isNameAndLoreValid = false
69-
}
70-
71-
if (isNameAndLoreValid) {
65+
if (isNameValid) {
7266
for (locale in schema.addon.languages) {
7367
if (!translator.translationKeyExists(name!!.key(), locale)) {
7468
PylonCore.logger.warning("${schema.key.namespace} is missing a name translation key for item ${schema.key} (locale: ${locale.displayName} | expected translation key: ${ItemStackBuilder.nameKey(schema.key)}")
7569
}
76-
if (!translator.translationKeyExists(lore!!.key(), locale)) {
77-
PylonCore.logger.warning("${schema.key.namespace} is missing a lore translation key for item ${schema.key} (locale: ${locale.displayName} | expected translation key: ${ItemStackBuilder.loreKey(schema.key)}")
78-
}
7970
}
8071
}
8172
}
8273

8374
private fun register(schema: PylonItemSchema) {
84-
if (schema.key !in nameAndLoreWarningsSupressed) {
85-
checkNameAndLore(schema)
75+
if (schema.key !in nameWarningsSupressed) {
76+
checkName(schema)
8677
}
8778
PylonRegistry.ITEMS.register(schema)
8879
}
@@ -116,8 +107,8 @@ open class PylonItem(val stack: ItemStack) : Keyed {
116107
}
117108

118109
@JvmStatic
119-
fun supressNameAndLoreWarnings(key: NamespacedKey) {
120-
nameAndLoreWarningsSupressed.add(key)
110+
fun supressNameWarnings(key: NamespacedKey) {
111+
nameWarningsSupressed.add(key)
121112
}
122113
}
123114
}

pylon-core/src/main/kotlin/io/github/pylonmc/pylon/core/item/builder/ItemStackBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ open class ItemStackBuilder private constructor(private val stack: ItemStack) :
7575
fun lore(vararg lore: String) = lore(*lore.map(::fromMiniMessage).toTypedArray())
7676

7777
fun defaultTranslatableLore(key: NamespacedKey) =
78-
lore(Component.translatable(loreKey(key)))
78+
lore(Component.translatable(loreKey(key), ""))
7979

8080
fun build(): ItemStack = stack.clone()
8181

0 commit comments

Comments
 (0)