17w45a[1] is the third snapshot released for Java Edition 1.13, which completely overhauled the command system.
Additions[]
Command format[]
- General
- A command UI when typing commands in the chat.
- Different components of commands will be displayed in different colors.
- Errors will be displayed in red without having to run the command.
- An
nbtargument in target selectors. - A new command parsing library called Brigadier.
Changes[]
Mobs[]
- The model has been simplified to be more consistent with other mobs.
- Some animations like opening its mouth when grazing has been removed from the model as well, and the saddle animation is changed slightly.
Command format[]
- General
- Commands and functions are much faster and more efficient.
- Most commands are now more case-sensitive. Lowercase is preferable wherever possible.
- For example, this is no longer allowed:
/scoreboard ObJeCtIvEs ...
- For example, this is no longer allowed:
- The output signal of a command block used to be its "success count", but now is its "result".
- Wherever a
<block>, optionally[<data>]and optionally[<nbt>]was required, it is now a single<block>argument that looks like this:stoneminecraft:redstone_wire[power=15,north=up,south=side]minecraft:jukebox{RecordItem:{...}}minecraft:furnace[facing=north]{BurnTime:200}
- ID is required (though just as before, if namespace isn't set it defaults to
minecraft:). - States are inside
[], comma-separated and must be properties/values supported by the blocks. They are optional.minecraft:stone[doesntexist=purpleberry]is a syntax error, becausestonedoes not havedoesntexist.minecraft:redstone_wire[power=tuesday]is a syntax error, becauseredstone_wire'spoweris a number between 0 and 15.
- An optional NBT tag is inside {}, and works just like the player would expect.
- In the context of "conditions"/testing for blocks, only the states the player provided will be tested.
- If the player tests
redstone_wire[power=15], it only checks power but ignores other states such asnorth.
- If the player tests
- In the context of setting blocks, any states the player provided will be set but anything missed out will default depending on the block.
- If the player set
redstone_wire[power=15], it will setpowerto 15 butnorthwill be a default value (in this case, set tonone).
- If the player set
- There is no such thing as block data value in 1.13, but either a different block or a state.
/?
- Removed from the game.
- Removed
/advancement testin favor of entity selectors.
- The syntax of
/clearhas changed./clear [<target>] [<item>] [<data>] [<count>] [<nbt>]will become/clear [<target>] [<item>] [<count>].- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data will no longer be a thing and item damage values will be moved into NBT.
- The syntax of
/clonehas been changed./clone <begin> <end> <destination> filtered [force|move|normal] [<block>] [<data>]will become/clone <begin> <end> <destination> filtered [<block>] [force|move|normal]./clone <begin> <end> <destination> [replace|masked] [force|move|normal] [<block>] [<data>]will become/clone <begin> <end> <destination> [replace|masked] [force|move|normal].
/defaultgamemodeand/gamemode
- Now only accepts string IDs, not shorthand or numeric.
/gamemode 2will become/gamemode adventure./defaultgamemode spis now/defaultgamemode spectator.
/difficulty [<value>]now only accepts string IDs, not shorthand or numeric./difficulty 2is now/difficulty normal./difficulty pis now/difficulty peaceful.
- The player can now query for the current difficulty by using
/difficultywithout any arguments.
- The syntax of
/effecthas been split off, to avoid ambiguity. - Giving an effect will now fail if it didn't actually do anything.
- Some mobs are immune (for example an ender dragon).
- Stronger existing effects prevent new weaker ones.
- Removed from the game, in order to be replaced by the planned
/modifyitemcommand (later reverted in 18w06a).
- The syntax of
/executehas been split off.- Modifier sub-commands can change how the command is ran:
/execute as <entity> <chained command>executes a command using the entity<entity>(but doesn't change position)./execute at <entity> <chained command>executes a command using the position of<entity>(but doesn't change entity)./execute offset <pos> <chained command>executes a command using the position of<pos>./execute align <axes> <chained command>executes a command after aligning the current position to the block grid (rounding down),<axes>is any combination ofxyandz(for example:x,xz,zyxandyz).- Examples:
x=-1.8,y=2.3,z=5.9usingxwill becomex=-2,y=2.3,z=5.9.x=2.4,y=-1.1,z=3.8usingyxzwill becomex=2,y=-2,z=3.
- Examples:
- Conditional sub-commands can let the player prevent the command from running at all:
/execute (if|unless) block <pos> <block> <chained command>executes a command if (or unless)<pos>matches<block>./execute (if|unless) blocks <begin> <end> <destination> (all|masked) <chained command>executes a command if (or unless) the region between<start>and<end>matches<destination>./execute (if|unless) entity <entity> <chained command>executes a command if (or unless)<entity>exists (returns 1 or more entities)./execute (if|unless) score <target> <targetObjective> (<|<=|=|>=|>) <source> <sourceObjective> <chained command>executes a command if (or unless)<target>'s score relates to<source>'s score based on the chosen criterion.
- As replacement for
/stats, a new sub-commandstorelets the player store the result or success of a command somewhere:/execute store (result|success) <name> <objective> <chained command>.resultis the result of a command, which replaces these old stats:AffectedBlocks,AffectedEntities,AffectedItems,QueryResult.successis how many times the command was successful. This is usually0or1, but if the command split up (for exampleas @a) then it may be more than1. This replacesSuccessCount.- The value is stored into the scoreboard under
<name>and<objective>. - The
objectivemust exist, but unlike with/stats, the player doesn't need to set an initial value for<name>. - The value will be stored when the full command has finished executing.
- If a command isn't successful (
successis0),resultwill always be set to0. - It will be made clear what the expected result of each command is.
- The player can chain all sub-commands together.
- After every sub-command, the player needs to write another sub-command.
- When the player is done with chaining sub-commands,
runlets players write the actual command to be executed./is no longer allowed before the command.
/execute as somebody at somebody run say hi.
- Example of old commands:
- Modifier sub-commands can change how the command is ran:
/xpis now an alias for/experience.- Split up into 3 different subcommands:
/experience add <players> <amount> [points|levels]- Adds
<amount>of either points or levels to the target<players>(defaults to points). - Adding points can cause players to level up, as usual.
- Negative numbers are supported, to subtract points instead.
- Subtracting points can cause players to level down.
- Adds
/experience set <players> <amount> [points|levels].- Sets
<amount>of either points or levels on the target<players>(defaults to points). - The player cannot set more points than their current level allows.
- When changing levels, the points will stay at the same percentage as the previous level.
- Sets
/experience query <player> (points|levels).- Returns either the number of points or levels on the given
<player>.
- Returns either the number of points or levels on the given
/fill
- The syntax of
/fillhas been changed./fill <x y z> <xt yt zt> <block> <data> replace [<replaceBlock>] [<replaceData>]is now/fill <x y z> <xt yt zt> <block> replace [<filter>]./fill <x y z> <xt yt zt> <block> [<data>] [destroy|hollow|keep|outline|replace] [<nbt>]is now/fill <x y z> <xt yt zt> <block> [destroy|hollow|keep|outline|replace].
/functionno longer accepts[if|unless] <entity>arguments.
/gameruleno longer accepts unknown rules ("custom gamerules").- The player can use functions or scoreboards as replacements, with no loss of functionality.
- Existing custom gamerules will just not be accessible. Only built-in rules will be available.
- Values to
/gameruleare now type checked (giving a string if it wants an int is a very obvious error).
/give
- The syntax of
/givehas changed./give <players> <item> [<count>] [<data>] [<nbt>]is now/give <players> <item> [<count>].- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data will no longer be a thing and item damage values will be moved into NBT.
/kill
- A
targetis now mandatory.
- The y-coordinate is now returned as
64instead of?. - The
resultof the command, used by/execute store, will be the absolute distance to the structure.
/op
- Now allows target selectors besides names.
- The
<params>argument has been removed, instead the parameters for particles likeblockcrackcan be specified right after the<name>argument using the new block argument./particle blockcrack stone [variant=smooth_granite] ~ ~ ~ 0 0 0 0 1.
- The particle names have been converted to lowercase and optionally have a namespace.
- Added an optional
portargument.
- The syntax of
/replaceitemhas changed./replaceitem block <pos> <slot> <item> [<count>] [<data>] [<nbt>]is now/replaceitem block <pos> <slot> <item> [<count>]./replaceitem entity <target> <slot> <item> [<count>] [<data>] [<nbt>]is now/replaceitem entity <target> <slot> <item> [<count>].- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data will no longer be a thing and item damage values will be moved into NBT.
- The
slotargument no longer requiresslot..- For example,
slot.hotbar.1now ishotbar.1.
- For example,
/scoreboardhad[<dataTag>]removed from its commands in favor of thenbtargument in entity selectors./scoreboard players tagand/scoreboard teamsremoved. Replaced by/tagand/teamrespectively./scoreboard players testremoved in favor of/execute (if|unless) score, entity selectors and/scoreboard players get <target> <objective>.
- The syntax of
/setblockhas changed.
- Removed. Now part of
/execute. - The new
/executeone is not a direct replacement, the behavior has changed:- It is now per-command, instead of per-entity or per-block.
- There's only
resultandsuccess, which covers all the old stat types.
*can now be used instead ofsourceto stop all sounds with a certain name, across all sources.
/tag
- Replaces
/scoreboard players tag. - Keeps the same syntax.
/team
- Replaces
/scoreboard teams. - Keeps the same syntax.
/testfor,/testforblockand/testforblocks
- Removed and now part of
/execute.
- Removed in favor of
/weather.
/tpis now an alias of/teleport(much like/w,/msgand/tell).- Coordinates are now relative to the executor, as with all other commands.
- The syntax of
/tpremains, but with the behavior of/teleport.
- If the player doesn't specify a time, it now defaults to 5 minutes (previously random).
- Wherever an
<item>, optionally[<data>]and optionally[<nbt>]was required, it is now a single<item>argument that looks like this:stoneminecraft:stick{display:{Name:"Stick of Untruths"}}
- ID is required (though just as before, if namespace isn't set it defaults to
minecraft:). - An optional NBT tag is inside {}, and works just like the player would expect.
- Any other information is either a separate item or a property in nbt.
- More error handling has been introduced.
- Arguments may now be quoted.
- Things like
limit=0,level=-10,gamemode=purpleare not allowed.
- Things like
- There's no longer a "min" and "max" separate values, we instead support ranges.
level=10is level 10.level=10..12is level 10, 11 or 12.level=5..is anything level 5 or above.level=..15is anything level 15 or below.
- The arcane shorthand names have been renamed.
m->gamemodelorlm->levelrorrm->distancerxorrxm->x_rotationryorrym->y_rotationc->limit
x,y,z,distance,x_rotation,y_rotationare now doubles and allow values like12.34.xandzare no longer center-corrected.- This means
x=0no longer equates tox=0.5.
- This means
gamemode(previouslym) no longer allows numerical or shorthand IDs.limit(wasc) No longer allows negative values.- Use
sort=furthestinstead.
- Use
- The
nameargument now supports spaces (as long as it is quoted). - Multiple of the same argument in target selectors is now possible.
tag=foo,tag=bar,tag=!bazmatches someone withfoo,barand notbaz.type=!cow,type=!chickenmatches something that isn't a cow and isn't a chicken.type=cow,type=chickenisn't allowed, because something cannot both be a cow and chicken.
- The player can specify the sorting.
sort=nearestis the old default, sorting by distance (default for@p).sort=furthestis the reverse of that (previously the player would usec=-5for this).sort=randomfor random sorting (default for@r).sort=arbitraryis a new option to not sort the result (default for@e,@a).
- Specifying scores now looks like
scores={foo=1,bar=1..5}. - The player can test for advancements with
advancements={foo=true,bar=false,custom:something={criterion=true}}.truefor "they completed the advancement",falsefor "they have not completed the advancement".- Alternatively, pass a block of specific criteria to test for (again,
true/false).
Fixes[]
- 38 issues fixed
- From released versions before 1.13
- MC-32972 –
/summonaccepts arguments that it will ignore. - MC-59511 –
/tellrawhas an incomplete error message when key determining text to display is missing. - MC-69042 –
/summoncoordinate syntax should be different. - MC-80856 – Command syntax inconsistencies.
- MC-80893 – Sender bias (
c=1) applies when sender is not the closest entity to specified x/y/z origin. - MC-80928 – Player sits too ahead when riding a (skeleton/zombie) horse/donkey/mule.
- MC-85394 – Spawning 'crit' particle with speed >100 causes an extreme lag spike.
- MC-87365 – Incorrect syntax for scoreboard players tag.
- MC-87559 –
/gamerulemissing indicator for affected gamerule. - MC-91459 –
/setblockat Y=256 shows unique message compared to using other outside-world setblock commands/Using/setblockat Y>256 says max building height is 256. - MC-101113 –
/playsoundcommand is not validating arguments correctly. - MC-101135 – Confusing error message for relative coordinates with too high numbers.
- MC-102682 – Horseshoes and horse leg separated.
- MC-105820 – Relative decimal coordinates with block related commands are inconsistent.
- MC-115957 – Advancements, loot tables, resource packs and world folders don't require lower case.
- MC-116045 –
/banlistcommand treats any non "ips" argument as "players". - MC-118308 – Narrator is toggled when typing in some text fields.
- MC-118565 – Four negative signs in a selector which only has the potential to select one entity will attempt to parse as a UUID and fail.
- MC-119142 – You can't use multiple tags in a selector.
- MC-122085 – Generating server icon leaks encoded data buffer.
- MC-128561 –
CommandBase.commandListenerretains old server reference, preventing garbage collection.
- From the 1.13 development versions
- MC-121281 – Scrollbar in the creative and server menu isn't working with mouse.
- MC-121283 – Underwater and in lava overlay is missing.
- MC-121284 – Resource pack and world folder buttons don't work.
- MC-121288 – Cinematic camera doesn't work properly.
- MC-121302 – "Direct connect" button enabled/disabled at wrong times.
- MC-121314 – Video settings slider text "FS Resolution" doesn't fit.
- MC-121328 – GUI scales incorrectly.
- MC-121329 – Pressing "chat" key no longer selects search in creative inventory/recipe book.
- MC-121334 – [1-9] in creative inventory search tab sends additional keypress to search bar.
- MC-121396 – WASD keys in a weird order.
- MC-121418 – Crash when trying to paste non-string clipboard content.
- MC-121419 – Click and hover events are offset in chat.
- MC-121421 – Pressing enter in the name or seed field on the create world dialog no longer creates the world.
- MC-121456 – Chunks disappearing after switching windows in fullscreen mode.
- MC-121468 – Statistics can no longer be ordered by clicking icons.
- From the previous development version
- MC-121517 – Fullscreen button will not make game fullscreen.
- MC-121587 –
/reloadfeedback says it reloaded loot tables, advancements and functions instead of just saying data packs.
Video[]
Video made by slicedlime:
References[]
- ↑ "Minecraft Snapshot 17w45a" – Minecraft.net, November 8, 2017