Minecraft:Java Edition 17w45a
More actions
17w45a is the third Minecraft:snapshot for Minecraft:Java Edition 1.13, released on November 8, 2017<ref>Template:Snap</ref>, which completely overhauled the command system.
Additions
Command format
General
- A command UI when typing commands in the chat.
- Different components of commands are displayed in different colors.
- Errors are displayed in red without having to run the command.
- An
nbtargument in target selectors. - A new command parsing library called Minecraft:Brigadier.
Changes
Mobs
Minecraft:Horses
File:Black Horse Revision 2.gif File:Brown Horse Revision 2.gif File:Chestnut Horse Revision 2.gif File:Creamy Horse Revision 2.gif File:Darkbrown Horse Revision 2.gif File:Gray Horse Revision 2.gif File:White Horse Revision 2.gif
File:Baby Black Horse Revision 2.gif File:Baby Brown Horse Revision 2.gif File:Baby Chestnut Horse Revision 2.gif File:Baby Creamy Horse Revision 2.gif File:Baby Darkbrown Horse Revision 2.gif File:Baby Gray Horse Revision 2.gif File:Baby White Horse Revision 2.gif
- 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: Template:Cmd
- 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 is not 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 tag is inside {}, and works just like the Minecraft:player would expect.
- In the context of "conditions"/testing for blocks, only the states the player provided are 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 are set but anything missed out defaults depending on the block.
- If the player set
redstone_wire[power=15], it setspowerto 15 butnorthis 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.
Commands
- Removed in favor of Template:Cmd.
- Removed Template:Cmd in favor of entity selectors.
- The syntax of Template:Cmd has changed.
- Template:Cmd becomes Template:Cmd.
- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data is no longer a thing and item damage values are moved into NBT.
- The syntax of Template:Cmd has been changed.
- Template:Cmd becomes Template:Cmd.
- Template:Cmd becomes Template:Cmd.
- Now only accepts string IDs, not shorthand or numeric.
- Template:Cmd becomes Template:Cmd.
- Template:Cmd is now Template:Cmd.
- Template:Cmd now only accepts string IDs, not shorthand or numeric.
- Template:Cmd is now Template:Cmd.
- Template:Cmd is now Template:Cmd.
- The player can now query for the current difficulty by using Template:Cmd without any arguments.
- The syntax of Template:Cmd has been split off, to avoid ambiguity.
- Template:Cmd is now Template:Cmd.
- Template:Cmd is now Template:Cmd.
- Giving an effect now fails if it did not actually do anything.
- Some mobs are immune (for example an Minecraft:ender dragon).
- Stronger existing effects prevent new weaker ones.
- Removed from the game, in order to be replaced by the planned Template:Cmd command (later reverted in Minecraft:18w06a).
- The syntax of Template:Cmd has been split off.
- Modifier sub-commands can change how the command is ran:
- Template:Cmd executes a command using the entity
<entity>(but does not change position). - Template:Cmd executes a command using the position of
<entity>(but does not change entity). - Template:Cmd executes a command using the position of
<pos>. - Template:Cmd 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.9usingxbecomesx=-2,y=2.3,z=5.9.x=2.4,y=-1.1,z=3.8usingyxzbecomesx=2,y=-2,z=3.
- Examples:
- Template:Cmd executes a command using the entity
- Conditional sub-commands can let the player prevent the command from running at all:
- Template:Cmd executes a command if (or unless)
<pos>matches<block>. - Template:Cmd executes a command if (or unless) the region between
<start>and<end>matches<destination>. - Template:Cmd executes a command if (or unless)
<entity>exists (returns 1 or more entities). - Template:Cmd executes a command if (or unless)
<target>'s score relates to<source>'s score based on the chosen criterion.
- Template:Cmd executes a command if (or unless)
- As replacement for Template:Cmd, a new sub-command
storelets the player store the result or success of a command somewhere:- Template:Cmd.
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 Template:Cmd, the player does not need to set an initial value for<name>. - The value is stored when the full command has finished executing.
- If a command is not successful (
successis0),resultis always set to0. - It is 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.
- Template:Cmd.
- Example of old commands:
- Template:Cmd is now Template:Cmd
- Template:Cmd is now Template:Cmd.
- Template:Cmd is now Template:Cmd
- Modifier sub-commands can change how the command is ran:
- Template:Cmd is now an alias for Template:Cmd.
- Split up into 3 different subcommands:
- Template:Cmd
- 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
- Template:Cmd.
- 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 stay at the same percentage as the previous level.
- Sets
- Template:Cmd.
- Returns either the number of points or levels on the given
<player>.
- Returns either the number of points or levels on the given
- Template:Cmd
- The syntax of Template:Cmd has been changed.
- Template:Cmd is now Template:Cmd.
- Template:Cmd is now Template:Cmd.
- Template:Cmd no longer accepts
[if|unless] <entity>arguments.- This has been moved into Template:Cmd.
- Template:Cmd is now Template:Cmd.
- Template:Cmd no longer accepts unknown rules ("custom gamerules").
- The player can use functions or Minecraft:scoreboards as replacements, with no loss of functionality.
- Existing custom gamerules are not accessible. Only built-in rules are available.
- Values to Template:Cmd are now type checked (giving a string if it wants an int is a very obvious error).
- The syntax of Template:Cmd has changed.
- Template:Cmd is now Template:Cmd.
- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data is no longer a thing and item damage values are moved into NBT.
- A
targetis now mandatory.
- The y-coordinate is now returned as
64instead of?. - The
resultof the command, used by Template:Cmd, is the absolute distance to the structure.
- 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. - The particle names have been converted to lowercase and optionally have a namespace.
- Added an optional
portargument.
- The syntax of Template:Cmd has changed.
- Template:Cmd is now Template:Cmd.
- Template:Cmd is now Template:Cmd.
- See the item argument type for more details.
[<data>]has been removed in preparation for the flattening, item data is no longer a thing and item damage values are moved into NBT.
- The
slotargument no longer requiresslot..- For example,
slot.hotbar.1now ishotbar.1.
- For example,
- Template:Cmd had
[<dataTag>]removed from its commands in favor of thenbtargument in entity selectors. - Template:Cmd and Template:Cmd removed. Replaced by Template:Cmd and Template:Cmd respectively.
- Template:Cmd removed in favor of Template:Cmd, entity selectors and Template:Cmd.
- The syntax of Template:Cmd has changed.
- Template:Cmd is now Template:Cmd.
- See the block argument type changes above for more details.
- Removed. Now part of Template:Cmd.
- The new Template:Cmd one 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.
- Replaces Template:Cmd.
- Keeps the same syntax.
- Template:Cmd to add
<tag>to<players>. - Template:Cmd to remove
<tag>from<players>. - Template:Cmd to list all tags on
players.
- Template:Cmd to add
- Replaces Template:Cmd.
- Keeps the same syntax.
Template:Cmd, Template:Cmd and Template:Cmd
- Removed and now part of Template:Cmd.
- Removed in favor of Template:Cmd.
- Template:Cmd is now an alias of Template:Cmd (much like Template:Cmd, Template:Cmd and Template:Cmd).
- Coordinates are now relative to the executor, as with all other commands.
- The syntax of Template:Cmd remains, but with the behavior of Template:Cmd.
- Template:Cmd is a new syntax as a shortcut for Template:Cmd.
- If the player does not 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 is not set it defaults to
minecraft:). - An optional tag is inside {}, and works just like the Minecraft: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 is not a cow and is not a chicken.type=cow,type=chickenis not 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
Videos
References
Template:Navbox Java Edition versions
Minecraft:de:17w45a Minecraft:es:Java Edition 17w45a Minecraft:fr:Édition Java 17w45a Minecraft:ja:Java Edition 17w45a Minecraft:nl:17w45a Minecraft:pt:Edição Java 17w45a Minecraft:ru:17w45a (Java Edition) Minecraft:zh:Java版17w45a