The bug
Many commands which used to work with players only were changed to now work with all entities, however their help strings and feedback still uses the world "player".
Affected translations with suggested fix
Based on this comment
commands.effect.usage=/effect <entity> <effect> [seconds] [amplifier] [hideParticles] OR /effect <entity> clear
commands.enchant.usage=/enchant <entity> <enchantment ID> [level]
commands.kill.usage=/kill [entity]
commands.tp.usage=/tp [target entity] <destination entity> OR /tp [target entity] <x> <y> <z> [<yaw> <pitch>]
commands.tp.notSameDimension=Unable to teleport because entities are not in the same dimension
commands.scoreboard.players.set.usage=/scoreboard players set <entity> <objective> <score> [dataTag]
commands.scoreboard.players.add.usage=/scoreboard players add <entity> <objective> <count> [dataTag]
commands.scoreboard.players.remove.usage=/scoreboard players remove <entity> <objective> <count> [dataTag]
commands.scoreboard.players.reset.usage=/scoreboard players reset <entity> [objective]
commands.scoreboard.players.reset.success=Reset scores of entity %s
commands.scoreboard.players.resetscore.success=Reset score %s of entity %s
commands.scoreboard.players.list.count=Showing %s tracked entities on the scoreboard:
commands.scoreboard.players.list.empty=There are no tracked entities on the scoreboard
commands.scoreboard.players.list.player.empty=Entity %s has no scores recorded
commands.scoreboard.players.test.usage=/scoreboard players test <entity> <objective> <min> [max]
commands.scoreboard.players.tag.usage=/scoreboard players tag <entity> <add|remove|list> <tagName> [dataTag]
commands.scoreboard.teams.list.entry=- %1$s: '%2$s' has %3$s members
commands.scoreboard.teams.list.player.count=Showing %s member(s) in team %s:
commands.scoreboard.teams.list.player.empty=Team %s has no members
commands.scoreboard.teams.empty.alreadyEmpty=Team %s is already empty, cannot remove nonexistant members
commands.scoreboard.teams.empty.success=Removed all %s member(s) from team %s
commands.scoreboard.teams.join.usage=/scoreboard teams join <team> [entity]
commands.scoreboard.teams.join.success=Added %s member(s) to team %s: %s
commands.scoreboard.teams.join.failure=Could not add %s member(s) to team %s: %s
commands.scoreboard.teams.leave.usage=/scoreboard teams leave [entity]
commands.scoreboard.teams.leave.success=Removed %s member(s) from their teams: %s
commands.scoreboard.teams.leave.failure=Could not remove %s member(s) from their teams: %s
commands.testfor.usage=/testfor <entity> [dataTag]
commands.spreadplayers.usage=/spreadplayers <x> <z> <spreadDistance> <maxRange> <respectTeams true|false> <entity ...>
commands.spreadplayers.spreading.players=Spreading %s entities %s blocks around %s,%s (min %s blocks apart)
commands.spreadplayers.success.players=Successfully spread %s entities around %s,%s
commands.spreadplayers.info.players=(Average distance between entities is %s blocks apart after %s iterations)
commands.spreadplayers.failure.players=Could not spread %s entities around %s,%s (too many players for space - try using spread of at most %s)
Notes
The error message "You must specify which player you wish to perform this action on." (commands.generic.player.unspecified
) which appears for example when you use only /kill
without an entity argument in the command block does not fit always either.
Some commands like /effect
or /enchant
only work with entities being a subclass of EntityLivingBase
. Therefor something like "mob" might fit better for those commands.
The selector @r
now works with entities if you provide the type
argument. Therefor the help text "Use "@r" to target random player" (advMode.randomPlayer
) in the command block GUI is not correct anymore. Changing it to "entity" might however be misleading as well because the selector without the type
argument will only pick random players.
As suggested the help for /kill
should not use the pipe character to not cause confusion because for example /replaceitem <block|entity>
acts differently when you provide "block" compared to when you provide "entity" as argument value.
Linked issues
is duplicated by 2
Comments 7
I care. The solution "Use a resource pack" is not a valid solution, just like "Use a mod" isn't. It's still a bug. Confirmed in 1.8.3.
Confirmed for
1.8.6
From MC-80769:
Affected commands:
/execute @p ~ ~ ~ /kill You must...which player... (see also MC-78779)
Command block GUI "@r to target random player" (might be wrong as you can add type=!Player)
/help spreadplayers
/help effect
/help testfor
/help tp
Note that it is also inconsistent, for example:
/help kill: /kill [player|entity] (It is a little bit irritating as commands like /replaceitem have <block|entity> as argument)
/help execute: /execute <entity>
/scoreboard teams join <team> [player]
/scoreboard players set <player> <objective> <score> [dataTag]
And all the other scoreboard commands
commands.effect.usage=/effect <entity> <effect> [seconds] [amplifier] [hideParticles] OR /effect <entity> clear
commands.enchant.usage=/enchant <entity> <enchantment ID> [level]
commands.kill.usage=/kill [entity]
commands.tp.usage=/tp [target entity] <destination entity> OR /tp [target entity] <x> <y> <z> [<yaw> <pitch>]
commands.tp.notSameDimension=Unable to teleport because entities are not in the same dimension
commands.scoreboard.players.set.usage=/scoreboard players set <entity> <objective> <score> [dataTag]
commands.scoreboard.players.add.usage=/scoreboard players add <entity> <objective> <count> [dataTag]
commands.scoreboard.players.remove.usage=/scoreboard players remove <entity> <objective> <count> [dataTag]
commands.scoreboard.players.reset.usage=/scoreboard players reset <entity> [objective]
commands.scoreboard.players.reset.success=Reset scores of entity %s
commands.scoreboard.players.resetscore.success=Reset score %s of entity %s
commands.scoreboard.players.list.count=Showing %s tracked entities on the scoreboard:
commands.scoreboard.players.list.empty=There are no tracked entities on the scoreboard
commands.scoreboard.players.list.player.empty=Entity %s has no scores recorded
ommands.scoreboard.players.test.usage=/scoreboard players test <entity> <objective> <min> [max]
commands.scoreboard.players.tag.usage=/scoreboard players tag <entity> <add|remove|list> <tagName> [dataTag]
commands.scoreboard.teams.list.entry=- %1$s: '%2$s' has %3$s members
commands.scoreboard.teams.list.player.count=Showing %s member(s) in team %s:
commands.scoreboard.teams.list.player.empty=Team %s has no members
commands.scoreboard.teams.empty.alreadyEmpty=Team %s is already empty, cannot remove nonexistant members
commands.scoreboard.teams.empty.success=Removed all %s member(s) from team %s
commands.scoreboard.teams.join.usage=/scoreboard teams join <team> [entity]
commands.scoreboard.teams.join.success=Added %s member(s) to team %s: %s
commands.scoreboard.teams.join.failure=Could not add %s member(s) to team %s: %s
commands.scoreboard.teams.leave.usage=/scoreboard teams leave [entity]
commands.scoreboard.teams.leave.success=Removed %s member(s) from their teams: %s
commands.scoreboard.teams.leave.failure=Could not remove %s member(s) from their teams: %s
commands.testfor.usage=/testfor <entity> [dataTag]
commands.spreadplayers.usage=/spreadplayers <x> <z> <spreadDistance> <maxRange> <respectTeams true|false> <entity ...>
commands.spreadplayers.spreading.players=Spreading %s entities %s blocks around %s,%s (min %s blocks apart)
commands.spreadplayers.success.players=Successfully spread %s entities around %s,%s
commands.spreadplayers.info.players=(Average distance between entities is %s blocks apart after %s iterations)
commands.spreadplayers.failure.players=Could not spread %s entities around %s,%s (too many players for space - try using spread of at most %s)
Here's the fixed language lines.
Small note: for team related feedback (like commands.scoreboard.teams.join.success) I changed it to members rather then entities.
Other note, there's a inconsistence looking at spreadplayers (always says playerS or teamS instead of player(s) or team(s), created a seperate ticket for that (MC-106675).
With that also fixed:
commands.spreadplayers.spreading.players=Spreading %s entity (entities) %s blocks around %s,%s (min %s blocks apart)
commands.spreadplayers.success.players=Successfully spread %s entity (entities) around %s,%s
Take a resourcepack and change the text string then! The rest of us don't care if it only says player!