-
Bug
-
Resolution: Unresolved
-
None
-
Minecraft 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
-
None
-
Confirmed
-
(Unassigned)
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
- Add the following lines of text into a language file in a resource pack:
enchantment.sharpness= enchantment.level.1=<--Space here
- Create a sharpness 1 sword
- 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.