Java Edition 1.12

1.12, the first release of the World of Color Update, is a major update to Minecraft () released on June 7, 2017. This update introduced a more vibrant color palette, a new crafting system, hints for beginners, glazed terracotta, concrete, colored beds, illusioners, and parrots. It also replaced achievements with a customizable and more powerful system of advancements, and introduced a new system for working with collections of commands, called functions.
== Additions ==
=== Blocks ===
; Colored beds
* Added 15 new beds, in addition to the existing red bed.
* Crafted using three of the respective wool colors along with three of any wood planks.
; Concrete
* Comes in the 16 traditional dye colors.
* Created when concrete powder comes into contact with still or flowing water.
; Concrete powder
* Comes in the 16 traditional dye colors.
* Gravity affected (like sand and gravel).
* When it touches water, it turns into a concrete block.
* Craftable using 4 sand, 4 gravel and one of any dye to get 8 concrete powder blocks. The recipe is shapeless.
; Glazed terracotta
* Comes in the 16 traditional dye colors.
* Smelt any colored terracotta in a furnace to obtain the glazed terracotta of that color (not for regular terracotta).
* Can be placed in 4 directions: north, south, west, and east.
** When placed down while facing the right directions, a repeating pattern can be created. For example, the white terracotta will create the pattern of a sun when 4 are placed down correctly.
* Will not "stick" to slime blocks if attached to the side, top or bottom, but will if attached to the front or back.
=== Items ===
; Knowledge books
* A green-colored book.
* Currently obtainable only with the command.
* A Knowledge Book with a Recipes NBT tag, which contains a list of item IDs, will be consumed and unlock the specified items' recipes for any player that it.
** Especially useful when is set to true.
; Spawn eggs
* Parrot (new mob): Green with red dots.
=== Mobs ===
; Illusioners
* New illager.
* Affects players with for 20 seconds then shoots with a bow.
** Its blindness spell will only be cast if the regional difficulty is greater than 2.
* Summons duplicates of itself.
** All duplicates will show shooting animation, but only the real one can be hit and shoots the arrow.
** The original turns invisible.
* Does not currently have a spawn egg, so can only be summoned with .
* Targets both the player and villagers.
* Unused and present only .
; Parrots
* Fly around, but sit when "tired".
*Tamed with seeds.
* If fed cookies, the parrot dies.
**Poison particle effects are emitted, but they are not actually killed by poison.
** If a player has tamed a parrot and then fed it cookies, it will display the message "Parrot was slain by <player>".
* Follow and crowd around nearby mobs.
* Imitates sounds of hostile mobs.
* Parrots dance if playing music on a nearby jukebox.
* Right-click action available:
** Right-click on a tamed parrot tells it to sit down.
* Walking over/through/near a tamed parrot while crouching will cause it to sit on the player's shoulders.
** Will let go if the player jumps.
** Can fly with players during elytra flight.
* Have health.
* Come in red, blue, green, cyan and gray.
=== Gameplay ===
; Gamerules
* announceAdvancements
** Defaults to true.
** Toggles announcing of advancements, replacing the old announce-player-achievements server.properties entry.
*** If announce-player-achievements is set, the gamerule is automatically updated and announce-player-achievements is removed.
* doLimitedCrafting
** Off by default.
** Enabling will only allow players to craft recipes they have unlocked.
* gameLoopFunction
** A function to be executed once per tick.
* maxCommandChainLength
** The default is 65536.
** Determines the number at which the chain command block acts as a "chain".
=== Command format ===
* @s
** Targets the executing entity, e.g: .
* 
** Can grant, test or revoke advancements, and particular advancement criteria, for a given player.
** There are five modifiers to the command: "everything", "from", "until", "through", "only".
*** "everything" - all advancements, no specification required (same as "*")
*** "from" - this advancement, its children, and their children, etc.
*** "until" - this advancement, its parent, and its parent, etc.
*** "through" - both of the above
*** "only" - this advancement, and nothing else
** Examples:
*** 
*** 
* 
** Runs a function once through the entity or command block which ran the function command.
*** Added new arguments:
**** if <selector> - runs the function only if the specified selector is found.
**** unless <selector> - runs the function except when the specified selector is found.
* 
** Can unlock, or lock, the given recipes for the given player.
** If * is specified, it will lock or unlock all recipes for the player.
* 
** Command to reload advancements and loot tables from disk.
** This command is available to all opped players in single player and to all level 4 operators on a multiplayer server.
** Cannot be run from a command block.
=== General ===
; Advancements
* Replaces achievements.
* Can be customized via JSON files.
* Tab-based UI.
** 5 tabs (more supported):
*** Minecraft: The heart and story of the game.
*** Adventure: Adventure, exploration, and combat.
*** Nether: Bring summer clothes.
*** The End: Or the beginning?
*** Husbandry: The world is full of friends and food.
** Data-driven UI, including positioning and layout.
* Supports rewards in the form of recipes, loot, experience and functions.
** The only default advancements with a reward are the default "challenge" advancements, which grant experience.
* Pop-up "toast" notification for when players advance.
** New sliding effect.
** Comes in two different colors - yellow for normal advancements, and pink for "challenge" advancements.
* A number display tracks progress while completing advancements with multiple requirements.
; Controls
* Added keybinding options for Creative toolbar saving.
* Added new keybinding for opening advancements (default "L").
; Creative
* Added "Saved Toolbars" tab.
** Save toolbars in Creative Mode with + and load them with +.
** Can save up to 9 toolbars.
** If the player saves an empty toolbar, it will clear the bookmarked toolbar and put back the 'informational paper' in the respective slot.
; Functions
* Added new function system, which are text files with the file extension .mcfunction in namespace:path/to/function/file.
** For example, running /function custom:example/test will refer to the function located at WORLDNAME/data/functions/custom/example/test.mcfunction.
* Functions are a list of commands, one line per command (without a forward slash), with # comment support.
; JSON format
* Added 'group' to recipe json format, to clump similar recipes together.
* Added new 'keybind' text component, to refer to the player's keybindings.
; Menu screen
* Added the ability to see credits by clicking the copyright text.
; Narrator
* + toggles a text-to-speech engine that automatically reads player chat messages, including the name.
** Option to toggle narrator between: "off", "chat & system", "chat only", and "system messages only".
* Shows a notification for toggling.
* The Narrator will not read commands or command outputs, nor will it read messages produced with .
* It displays a message whenever the Narrator isn't available.
** Uses the "toast" notification system.
; NBT tags
* 
** Stores the tick a chain command block was last executed in.
* and for breedable entities
** Together these record the UUID of the entity that caused a given animal to breed.
* 
** A compound tag containing a list of recipes, formatted as JSON, that the player has seen, as well as recipe book information.
** 
*** Becomes 1 if the player has enabled the "Show Craftable" feature in the recipe book.
** 
*** Checks if the player has left the GUI open.
*** 
** 
*** Contains information about all recipes the player has seen.
*** 
**** Checks if the player has tried out the recipe in the recipe book before (by clicking it/viewing it).
** 
*** Within are recipe names that the player has unlocked but not viewed in the crafting helper yet.
*** Used for remembering to play the animation for new recipes.
* 
** A list of crafting recipes to unlock for the player that right-clicks while holding a knowledge book.
** If this is not specified, the knowledge book will not be consumed.
* 
** A compound tag containing the X, Y, and Z coordinates of the Overworld position the player entered the Nether.
** 
*** The x coordinate.
** 
*** The y coordinate.
** 
*** The z coordinate.
* 
** Changes to 1 if the player leaves the End through the portal.
* and 
** Contains entity data about an entity on the left and right shoulders of the player.
* 
** Defaults to 1b. If set to 0b, loops can be created, where the same command block can run multiple times in one tick.
; Recipe books
* Catalogs recipes that are unlocked when the criteria are met.
* When a recipe is clicked, it will appear in the crafting grid, and can be crafted if materials are available.
** A shift-click ability puts all available materials in the crafting grid.
* A new white-and-gray colored "toast" notification pops up when the player unlocks new recipes.
** The pop-up notification that displays upon unlocking new recipes has an icon showing the items that can be crafted with the new recipes.
* If the player searches "excitedze" in the recipe book, their language switches to Pirate Speak.
* recipes folder added with all item recipes as .json files.
; Sounds
* New note block sounds.
** = xylophone
** = bell
** = flute
** = chime
** = guitar
* New sound effects for:
** Parrots
** Illusioners
** Casting a fishing rod
** Reeling in a fishing rod
** Throwing an eye of ender
** Eyes of ender exploding or popping back into item form
** Putting ender eye in end portal frames (dinging sound)
** Completing the end portal and having the portal spawn (evil sound)
** Boat paddles
** Player drowning
** Player burning
** Completing a challenge advancement
** Toast notifications
* New cave sounds: cave17.ogg and cave18.ogg.
; Splashes
* "Don't feed chocolate to parrots!"
* "The true meaning of covfefe"
** Reference to a cryptic tweet from then–U.S. President Donald Trump.
* "An illusion! What are you hiding?"
* "Something's not quite right..."
** The top two are references to Suramar City guards in World of Warcraft, who say these lines when a player, having an illusion on themself, goes nearby.
** The splash about the illusion could also be a reference to the illusioner.
; Tutorial hints
* Displayed in the top right.
* Only displayed once per device.
** Saved per player, stored in options.txt.
*** Name: tutorialStep
*** List of criteria: movement, find_tree, punch_tree, open_inventory, and craft_planks 
== Changes ==
=== Blocks ===
; Banners
* New palette texture.
* "Chief fess" and "base fess" banners are now just "chief" and "base" banners.
; Beds
* Now the player can sleep when a neutral zombie pigman is near.
* Now the player can bounce on the bed, albeit much less than with slime blocks
* Now reduce (but not negate) fall damage when landed on.
** The player can survive a 41 block fall onto a bed without armor.
** Any higher, and the second bounce will deal the remaining amount of damage to kill them.
*** The player can create a platform around 7 blocks high beside the bed to land on to prevent death, in which case a player can survive a 45 block fall.
* Now a block entity, and each half can be colored individually using the NBT tag color.
* Beds now display as blocks, unlike Pocket Edition beds. Now use a 3D item model instead of a 2D item because of the new colors.
; Buttons, levers, redstone torches, torches, and tripwire hooks
* Can now be placed on jack o'lanterns.
** Redstone torches and torches still cannot be placed on top of jack o'lanterns.
; Command blocks
* Now executes all of the commands in a chain before scheduling them for the next tick.
** It is now possible to stop/modify the operation of a chain via commands and get results instantly (as opposed to getting them in a 1 tick delay).
* Optimized error conditions in command blocks.
* Tab-completing command names in command blocks will no longer add a / prefix.
; Fences, cobblestone walls, glass panes, and iron bars
* Now connect to the back and underside of stairs.
; Hardened clay
* Renamed to terracotta.
; Magma blocks
* Are now able to burn infinitely, like netherrack.
; Shulker boxes
* Colors changed in accordance with the changes to other block colors.
** Purple shulker boxes unchanged.
; Stairs
* The rear face and underside of stairs are now considered "solid".
** Allows for torches, fences, iron bars, glass panes, cobblestone walls, and snow layers to connect to them properly.
; Wool
* New palette texture.
=== Items ===
; Maps
* Dyed blocks such as banners and terracotta now have unique colors.
=== Mobs ===
; Sheep
* New color palette for wool on body.
; Shulkers
* Colors changed in accordance with the changes to other block colors.
** Purple shulkers are left the same.
; Withers
* Can no longer break end gateway blocks and piston extensions.
; Zombies
* New ConversionPlayerLeast and ConversionPlayerMost tags
** Contains the UUID of the player that is converting the zombie.
** Used with the "minecraft:cured_zombie_villager" trigger for advancements.
=== Non-mob entities ===
;Minecarts with TNT
* No longer instantly explode when hit with fire charges; instead, they explode as if primed by an activator rail.
; Paintings
* Will now try to place the largest possible in the available space it has.
=== Command format ===
* and 
** Now reinforces item-specific stacking restrictions.MC-117005 resolved as "Works as Intended"
*** This is a reverse of 16w32a ( resolved as "Works as Intended").
=== General ===
; Achievements
* Removed and replaced by advancements.
; Controls
* Pressing will now hide all toast messages.
; Crafting
* Closing the crafting interface with items inside will no longer drop the items in front of the player, but will send them instead to the inventory.
; Creative
* Materials tab merged with miscellaneous tab in creative mode.
; Java version
* This is the first version to use, and thus require, Java 8.
; Language
* Many pieces of text are now translatable, where previously they were hardcoded English.
** The full list of changes can be found here.
; Movement
* The player's body now entirely faces to the front, when moving backwards., resolved as "Works as Intended" – Maria Lemón, April 22, 2017
** Prior to this update, moving backwards would cause the player model to rotate one side, making it look like the player was strafing backwards somewhat.
; NBT format
* Improved NBT parsing in commands.
** Keys can now (optionally) be quoted, e.g: "Motion":[0.0,0.0,0.0].
** Unquoted string values are now stricter; they can no longer contain spaces or special symbols, e.g: CustomName:Test Test.
** Indices, which were previously optional in lists, are no longer allowed, e.g: Motion:[0:7.3,1:1.0,2:3.1].
** Empty keys and values are no longer allowed.
* Improved error messaging; now points to where exactly the error occurred.
; Optimizations
* Huge optimizations to creative inventory searching.
* Optimized chunk loading.
; Splashes
* "Now Java 6!" changed to "Now Java 8!"
== Fixes ==
== Video == 
Video made by slicedlime: 
== Trivia ==
* 1.12, along with Java Edition 1.8.2, had the most pre-releases of any update at the time, with a total of 7 pre-releases.
** This was later broken by Java Edition 1.13, with 10 pre-releases.
*This version came out exactly 5 years before 1.19.
== References ==
cs:Java Edice 1.12
de:1.12
el:Java Edition 1.12
es:Java Edition 1.12
fr:Version Java 1.12
it:Java Edition 1.12
ja:Java Edition 1.12
nl:1.12
pl:1.12
pt:Edição Java 1.12
ru:1.12 (Java Edition)
zh:Java版1.12