-
Bug
-
Resolution: Works As Intended
-
None
-
Minecraft 1.12, Minecraft 1.12.1
-
None
-
mac OSX sierra
-
Unconfirmed
When in singleplayer, if you change the game language settings from english, the internal name ids of all entities appear to change. Please note, I am not talking about the names "displayed" to players as this should be changed, but the internal IDs as well which are the data in datatags and entity lists. This is problematic, because these can be used as arguments in command blocks using @e[name=X] and if these default name ids change with every language you cannot make these kinds of command block arguments compatible for multiple languages.
This may not seem a huge issue due to the fact that we also have the "type" argument which doesn't change with languages, but it actually is. In many cases having both the "name", "type", and "tag" is extremely useful as it allows you to sort entities by 2-3 arguments in a single selector. The name argument is also the best way to discriminate normally-spawned mobs from custom ones as those always are summoned with the same internal name and custom mobs can be given a different one when summoned. This allows for very elegant methods of adding new mobs to the vanilla random spawning so you can get many, many new mobs spawning randomly. I use it extensively in my map and have only recently discovered this bug when reported by my foreign players. Tags are often used for something else so I can't use them to get around this issue every time.
To add incentive for this to be fixed, I should note that this bug does not happen on servers which is strange as I was told that both SP and MP both use a server setup and language settings are only supposed to change what is displayed in chat or overlays to the player. Not ingame data on datatags which can cause compatibility issues.
Here is a quick example of something that is currently impossible to make work in all languages as a result of this issue:
/testfor @e[name=unknown]
to detect the bobber entity on fishing rods only works in english. The name "unknown" which is the only way in java to detect a bobber since it has no entity id, changes in other languages like french and german (tested) making detecting the bobber entity for use in custom modules or other systems impossible in multiple languages.