Mojira Archive
MC-118813

Enchantment text adds hardcoded space between enchantment and level

I was using custom enchantment text to telegraph to the player the tier of an item (to allow for it to be translated), when the enchantment text I was using had an extra space between the enchantment name and level (I had enchantment name as empty).

What I expected to happen:
There not to be an extra space at the start of the enchantment text. (Done by making the enchantment name contain this text.)

What actually happened:
There was an extra space.

Steps to reproduce

  1. Add the following lines of text into a language file in a resource pack:
    enchantment.sharpness=
    enchantment.level.1=<--Space here
  2. Create a sharpness 1 sword
  3. See that there is a space before the text

What is happening
When enchantment text on an item is added, the text to be shown is computed as enchantment.<enchantment> + a (space) + enchantment.level.<level>.
This is in effect using the text component

{"translate":"enchantment.<enchantment>","extra":[{"text":" "},{"translate":"enchantment.level.<level>"}]}

What would be more consistent would be using %s for insertion of enchantment. This would mean that the effective text component would be

{"translate":"enchantment.withLevel","with":[{"translate":"enchantment.<namespace>.<id>"},{"translate":"enchantment.level.<level>"}]}

And the line "enchantment.withLevel": "%s %s", added to the language files.

Unresolved

[Mod] turbo

Levertion

2017-06-19, 10:22 AM

2024-09-20, 08:57 PM

7

4

Confirmed

(Unassigned)

Minecraft 1.12 - 1.20.3 Pre-Release 2Minecraft 1.12, 20w07a, 1.19.3, 1.19.4 Release Candidate 3, 1.19.4, 1.20.1, 1.20.2, 23w43b, 1.20.3 Pre-Release 2

-