17w45a

From Minecraft Wiki
Jump to: navigation, search
17w45a
17w45a.png
Type

Snapshot

Release date

November 8, 2017

Snapshot for

1.13

Download

Client (.json)
Server

17w45a[1] is the third snapshot released for 1.13.

Additions[edit | edit source]

Commands
  • 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 nbt argument in target selectors.
  • A new command parsing library called Brigadier.

Changes[edit | edit source]

Horse 17w45a.png

Mobs[edit | edit source]

Horse
  • The model has been simplified to be more consistent with other mobs.
  • Some animations like opening its mouth when grazing have been removed from the model as well, and the saddle animation is changed slightly.

Commands[edit | edit source]

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 ...
  • The output signal of a command block used to be its "success count", but now is its "result".
Specific Commands
/advancement
  • Removed /advancement test in favor of entity selectors.
/clear
  • The syntax of /clear has 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.
/clone
  • The syntax of /clone has 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]
/defaultgamemode and /gamemode
/difficulty
/effect
  • The syntax of /effect has been split off, to avoid ambiguity.
    • /effect <entity> <effect> is now /effect give <entity> <effect>
    • /effect <entity> clear is now /effect clear <entity> [<effect>]
  • 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.
/enchant
/execute
  • The syntax of /execute has 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 of x y and z (for example: x,xz,zyx and yz).
        • Examples:
          • x=-1.8,y=2.3,z=5.9 using x will become x=-2,y=2.3,z=5.9
          • x=2.4,y=-1.1,z=3.8 using yxz will become x=2,y=-2,z=3
    • Conditional sub-commands can let you 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 criterium.
    • As replacement for /stats, a new sub-command store lets you store the result or success of a command somewhere:
      • /execute store (result|success) <name> <objective> <chained command>
      • result is the result of a command, which replaces these old stats: AffectedBlocks, AffectedEntities, AffectedItems, QueryResult.
      • success is how many times the command was successful. This is usually 0 or 1, but if the command split up (for example as @a) then it may be more than 1. This replaces SuccessCount.
      • The value is stored into the scoreboard under <name> and <objective>.
      • The objective must exist, but unlike with /stats you don'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 (success is 0), result will always be set to 0.
      • It will be made clear what the expected result of each command is.
    • You can chain all sub-commands together.
      • After every sub-command you need to write another sub-command.
      • When you're done with chaining sub-commands, run lets you 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:
      • /execute @e ~ ~ ~ detect ~ ~ ~ stone 0 say Stone! is now /execute as @e at @s if block ~ ~ ~ stone run say Stone!
      • /execute @e ~ ~ ~ detect ~ ~ ~ grass 0 summon pig is now /execute at @e if block ~ ~ ~ grass run summon pig
      • /execute @e ~ ~ ~ say Hello! is now /execute as @e run say Hello!
/experience
  • /xp is 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.
    • /experience set <players> <amount> [points|levels]
      • Sets <amount> of either points or levels on the target <players> (defaults to points).
      • You cannot set more points than their current level allows.
      • When changing levels, the points will stay at the same percentage as the previous level.
    • /experience query <player> (points|levels)
      • Returns either the number of points or levels on the given <player>.
/fill
  • The syntax of /fill has 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]
/function
  • /function no longer accepts [if|unless] <entity> arguments.
/gamerule
  • /gamerule no longer accepts unknown rules ("custom gamerules").
    • You 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 /gamerule are now type checked (giving a string if it wants an int is a very obvious error).
/give
  • The syntax of /give has 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 target is now mandatory
/locate
  • The y-coordinate is now returned as 64 instead of ?.
  • The result of the command, used by /execute store, will be the absolute distance to the structure.
/particle
  • The <params> argument has been removed, instead the parameters for particles like blockcrack can 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.
/replaceitem
  • The syntax of /replaceitem has 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 slot argument no longer requires slot..
    • For example, slot.hotbar.1 now is hotbar.1
/scoreboard
  • /scoreboard had [<dataTag>] removed from its commands in favor of the nbt argument in entity selectors.
  • /scoreboard players tag and /scoreboard teams removed. Replaced by /tag and /team respectively.
  • /scoreboard players test removed in favor of /execute (if|unless) score, entity selectors and /scoreboard players get <target> <objective>.
/setblock
  • The syntax of /setblock has changed.
    • /setblock <pos> <block> [<data>] [<mode>] [<nbt>] is now /setblock <pos> <block> [<mode>]
    • See the block argument type for more details.
/stats
  • Removed. Now part of /execute.
  • The new /execute one isn't a direct replacement, the behavior has changed:
    • It's now per-command, instead of per-entity or per-block.
    • There's only result and success, which covers all the old stat types.
/stopsound
  • * can now be used instead of source to stop all sounds with a certain name, across all sources.
/tag
  • Replaces /scoreboard players tag.
  • Keeps the same syntax.
    • /tag <players> add <tag> to add <tag> to <players>.
    • /tag <players> remove <tag> to remove <tag> from <players>.
    • /tag <players> list to list all tags on players.
/team
  • Replaces /scoreboard teams.
  • Keeps the same syntax.
    • /team add <team> [<displayname>]
    • /team empty <team>
    • /team join <team> [<members>]
    • /team leave [<members>]
    • /team list [<team>]
    • /team option <team> <option> <value>
/testfor, /testforblock and /testforblocks
/toggledownfall
/tp and /teleport
  • /tp is now an alias of /teleport (much like /w, /msg and /tell).
  • Coordinates are now relative to the executor, as with all other commands.
  • The syntax of /tp remains, but with the behavior of /teleport.
/trigger
  • /trigger <objective> is a new syntax as a shortcut for /trigger <objective> add 1.
/weather
  • If you don't specify a time, it now defaults to 5 minutes (previously random).
Argument Types
Target selectors
  • More error handling has been introduced.
  • Arguments may now be quoted.
    • Things like limit=0, level=-10, gamemode=purple are not allowed.
  • There's no longer a "min" and "max" separate values, we instead support ranges.
    • level=10 is level 10
    • level=10..12 is level 10, 11 or 12
    • level=5.. is anything level 5 or above
    • level=..15 is anything level 15 or below
  • The arcane shorthand names have been renamed.
    • m -> gamemode
    • l or lm -> level
    • r or rm -> distance
    • rx or rxm -> x_rotation
    • ry or rym -> y_rotation
    • c -> limit
  • x, y, z, distance, x_rotation, y_rotation are now doubles and allow values like 12.34
    • x and z are no longer center-corrected.
      • This means x=0 no longer equates to x=0.5.
  • gamemode (previously m) no longer allows numerical or shorthand IDs.
  • limit (was c) No longer allows negative values.
    • Use sort=furthest instead.
  • The name argument now supports spaces (as long as it's quoted).
  • Multiple of the same argument in target selectors is now possible.
    • tag=foo,tag=bar,tag=!baz matches someone with foo, bar and not baz.
    • type=!cow,type=!chicken matches something that isn't a cow and isn't a chicken.
    • type=cow,type=chicken isn't allowed, because something cannot both be a cow and chicken.
  • You can specify the sorting.
    • sort=nearest is the old default, sorting by distance (default for @p)
    • sort=furthest is the reverse of that (previously you'd use c=-5 for this)
    • sort=random for random sorting (default for @r)
    • sort=arbitrary is a new option to not sort the result (default for @e, @a)
  • Specifying scores now looks like scores={foo=1,bar=1..5}
  • You can test for advancements with advancements={foo=true,bar=false,custom:something={criterion=true}}
    • true for "they completed the advancement", false for "they have not completed the advancement"
    • Alternatively, pass a block of specific criteria to test for (again, true/false)
Blocks
  • Wherever a <block>, optionally [<data>] and optionally [<nbt>] was required, it's now a single <block> argument that looks like this:
    • stone
    • minecraft: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, because stone doesn't have doesntexist.
    • minecraft:redstone_wire[power=tuesday] is a syntax error, because redstone_wire's power is a number between 0 and 15.
  • NBT tag is inside {}, and works just like you'd expect. It's optional.
  • In the context of "conditions"/testing for blocks, only the states you provided will be tested.
    • If you test redstone_wire[power=15], it only checks power but ignores other states such as north.
  • In the context of setting blocks, any states you provided will be set but anything missed out will default depending on the block.
    • If you set redstone_wire[power=15], it will set power to 15 but north will be a default value (in this case, set to none).
  • There is no such thing as block data value in 1.13. It's either a different block, or a state.
Items
  • Wherever an <item>, optionally [<data>] and optionally [<nbt>] was required, it's now a single <item> argument that looks like this:
    • stone
    • minecraft:stick{display:{Name:"Stick of Untruths"}}
  • ID is required (though just as before, if namespace isn't set it defaults to minecraft:).
  • NBT tag is inside {}, and works just like you'd expect. It's optional.
    • Any other information is either a separate item or a property in nbt.

Fixes[edit | edit source]

20 issues fixed
From released versions before 1.13
  • MC-32972/summon accepts arguments that it will ignore
  • MC-101113/playsound command is not validating arguments correctly
  • MC-118308 – Narrator is toggled when typing in some text fields
  • MC-122085 – Generating server icon leaks encoded data buffer
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

References[edit | edit source]

  1. "Minecraft Snapshot 17w45a" – Minecraft.net, November 8, 2017