Wednesday, May 22, 2024 at 2:44 PM

Minecraft Snapshot 24w21a

This week we're bringing a Snapshot you can vibe out to! This time around we're bringing data-driven jukeboxes, a new gamerule, and a bunch of fixes.

Happy vibing!

Changes

  • It seems we cooked a bit too hard with the new Piston sounds last week, which is why we're reverting back to the old sounds again
  • Lowered volume of original sounds to address initial feedback of Pistons being too loud
  • Pause menu now can include a list of links provided by server
  • Improvements to the disconnection screen
  • Any member of a Realm can now upgrade a world
  • In the Realms main screen, all online players of a Realm are displayed
    • When hovered, a tooltip is shown with each player's head and name

Vault

  • Added sound effect to help players understand they've already looted a vault

Trial Chambers

  • Trial Chambers are less likely to generate in the Deep Dark

Animal Panic

  • Animals now panic based on the damage caused by predefined Damage Source Types
  • The panic lasts for 2 seconds after the damage is dealt. The following damage type tags are used by vanilla animals:
    • panic_environmental_causes: Used by Wolves, Polar Bears (adults) and Pandas
    • panic_causes: Used by all other animals and baby Polar Bears
  • Servers can now provide a list of links to clients
  • If client has received any links, a new button called "Server Links..." will show up in pause game screen
    • To make space for that button, "Report Bugs" and "Give Feedback" buttons might be moved into a sub-screen if necessary

Disconnection screen improvements

  • In some cases client will now store detailed information about disconnection (similar to crash reports)
  • When that happens, new "Open Disconnection Report Directory" button will be added to the disconnection screen
  • When server provides link for bug reporting, it will be also be added as a button to the disconnection screen

Technical Changes

  • Resource Pack version is now 34
  • Data Pack version is now 45
  • Server can now provide list of links to client
  • Servers can add custom details to crash and disconnection reports

Gamerules

  • Added new entitiesWithPassengersCanUsePortals gamerule
    • When true, entities with passengers can use Nether Portals, End Portals and End Gateways
    • Defaults to false
  • New clientbound packet server_links is available in configuration and game protocols
  • On receival, client will make links available from pause menu
  • Link labels can be built-in or custom (i.e. any text)
  • Some built-ins also have special fuctionality:
    • report_bug:
      • link will be displayed on disconnection screen, if disconnection was caused by packet handling error
      • link will be included as a comment in disconnection report
  • Added bug-report-link to server.properties to allow vanilla server to configure report_bug links
    • If this field is non-empty, server will send that link to clients
    • This field should contain well-formed URL

Custom server crash report details

  • New clientbound packet custom_report_details is available in configuration and game protocols
  • This packet contains a list of key-value text entries
  • If received, contents of this packet will be added in a separate section to any crash or disconnection report generated during connection to this server

Data Pack Version 45

  • Jukebox songs are now data-driven
  • Added new command syntax

Jukebox Songs

  • Added a jukebox song registry which is loaded from data packs
  • Path to jukebox song definition is data/<namespace>/jukebox_song/<id>.json
  • Fields in definition:
    • sound_event - sound event that is streamed when played by a Jukebox
    • description - the name of the song that will be displayed in the hover tooltip represented as a Text Component
    • length_in_seconds - length of the song in seconds as a positive float
    • comparator_output - the redstone signal output by a comparator when played in a Jukebox, between 0 and 15
  • Added minecraft:jukebox_playable item stack component

jukebox_playable item component

  • If set, the item can be inserted into Jukeboxes to play a song
  • Format: object with fields
    • song: jukebox song id
      • The song that will be played by the Jukebox when this item stack is inserted
    • show_in_tooltip: boolean (default: true)
      • If false, the name of the song will not be shown in the tooltip
      • This was formerly controlled by the hide_additional_tooltip component on Music Discs
    • e.g. jukebox_playable={song:'minecraft:precipice'}, jukebox_playable={song:'minecraft:precipice', show_in_tooltip:false}

Attributes

  • Attribute modifiers no longer have a UUID and name combination
  • Instead, attribute modifiers are now uniquely identified by a namespaced ID, similar to other resources
  • The ID of a modifier uniquely identifies it in the set of modifiers for a single attribute
    • Using the same ID for different modifiers is allowed as long as the modifiers are for different attributes
  • Existing built-in modifiers will be upgraded to new IDs
  • Existing custom modifiers will be upgraded to the GUID as an ID in the minecraft namespace

attribute command

  • The uuid and name arguments have been replaced with a singular id argument

Item Stack Attribute Modifiers

  • The uuid and name fields have been removed.
  • Attribute Modifiers now have an id (namespaced ID) field
    • This is a unique identifier per attribute for the modifier

Entity Attributes

  • Attributes are now stored as attributes
  • Attribute format:
    • id, renamed from Name
    • base, renamed from Base
    • modifiers, renamed from Modifiers
      • Now stores modifiers in the same format as modifiers in attribute_modifiers item stack components:
        • id, replaces UUID and Name
        • amount, renamed from Amount
        • operation, renamed from Operation, now a named constant instead of an int:
          • add_value - previously 0
          • add_multiplied_base - previously 1
          • add_multiplied_total - previously 2

Enchantments

Attribute Effects

Fields:

  • name & uuid have been removed, replaced by id
  • id: The namespaced ID of the Attribute Modifier to add
    • This will be postfixed with the slot name when the enchanted item is equipped in a slot
    • Must be unique to avoid different Enchantments (or other systems) interfering with each others

Entity Effect Types

damage_item

The damage is not applied to items held by players in creative mode.

Hit Block Parameters
  • Entities: this
  • Enchantment Level
  • Origin
  • Block State

Effect Components

  • minecraft:hit_block:
    • Condition Context: changed to take a Hit Block Parameter - this is the entity hitting the Block

Tags

Directory renames

  • Some registry types that used legacy datapack directory names (based on plural name of element) have been renamed to match registry name
  • Affected directories:
    • structures -> structure
    • advancements -> advancement
    • recipes -> recipe
    • loot_tables -> loot_table
    • predicates -> predicate
    • item_modifiers -> item_modifier
    • functions -> function
    • tags/functions -> tags/function

Item Tags

  • Removed music_discs item tag

Block Tags

  • air: All blocks that resemble air

Damage Type Tags

  • Removed breeze_immune_to damage type tag
  • Added panic_environmental_causes: Damage types that cause panic in aggressive animals that can panic, i.e. mobs that retaliate when attacked
  • Added panic_causes: Damage types that cause panic in passive animals, i.e. mobs that run away when attacked

Predicates

Jukebox Playable Predicate

New item sub-predicate available as jukebox_playable.

  • Matcher for jukebox_playable component (like Music Discs)
  • Fields:
    • song - optional id, list of ids or tag for jukebox song to be matched

Player Predicate

  • The gamemode field has been changed to accept a list of gamemodes

Commands

  • Added @n entity selector, selecting the nearest entity
    • This functions as @e[sort=nearest,limit=1]
    • Additional requirements may still be provided; for example: @n[type=pig] will select the closest Pig

Resource Pack Version 34

  • Added the block.vault.reject_rewarded_player sound event
  • Changes to Shaders

Shaders

  • The blend block in core shader definitions has been removed, as it was not used
  • The position_color_tex shader has been removed, replaced with the pre-existing position_tex_color
  • The glint_direct shader has been removed, replaced with the pre-existing glint shader
  • The armor_glint shader has been removed, as it was unused

Fixed bugs in 24w21a

  • MC-67 Entities with passengers cannot travel through portals
  • MC-31819 Hunger saturation depletes on peaceful difficulty
  • MC-116279 Non-player entities going through Nether portal do not generate portal in Nether if none exists
  • MC-151648 Non-player entities cannot travel through unlinked nether portals
  • MC-170103 Untamed wolves only beg for food while being angry and jumping
  • MC-260346 Custom music discs cut off when vanilla disc would normally end
  • MC-266290 Double doors do not automatically form between waxed and unwaxed copper doors, even of the same variant
  • MC-266586 Trial chambers can spawn directly inside the deep dark biome
  • MC-266626 Breeze doesn't stop attacking the player when it enters on the same team
  • MC-267967 Breezes ignore the deflects_projectiles entity type tag
  • MC-268438 Baby armadillos can still eat while rolled up
  • MC-269034 Wolves no longer teleport while trying to pathfind out of Lava
  • MC-269351 The Bolt Armor Trim cannot be duplicated with Waxed Copper Block
  • MC-269370 Sharp lag spike caused by incorrect upper limit on particles created by mace smash attack
  • MC-269460 Thorns enchantment doesn't work when entities are hit by wind charges
  • MC-269964 Ominous item spawners are missing an NBT load for spawn_item_after_ticks
  • MC-269988 New potion effects don't apply their respective behaviors when creeper explodes
  • MC-270024 When drinking ominous bottles, bad omen of higher levels can be overriden by lower amplifiers
  • MC-270377 Wind charges can be hit and redirected the moment they are thrown
  • MC-270573 Mounted entities are immune to wind charge damage
  • MC-270808 Any item in the armor.body slot protects wolves from taking damage
  • MC-271458 Channeling tridents no longer summon lightning bolt every time hitting lightning rod under thunderstorm
  • MC-271573 Attribute Enchantments Don't Behave Properly on Armor
  • MC-271634 Custom enchantments don't appear in the creative menu
  • MC-271718 Crash when randomized_int_state_provider is applied to blocks lacking the property
  • MC-271753 Crash due to overflow inside cost calculation in by_cost_with_difficulty
  • MC-271856 Crossbows enchanted with Quick Charge do not benefit from its effects when used in the offhand
  • MC-271868 Frost walker replaces flowing water now
  • MC-271901 Entity effect "play_sound" Field "pitch" value upper limit is 1.0 instead of 2.0
  • MC-271911 Frost walker no longer works with void or cave air
  • MC-271914 Soul speed enchantment doesn't emit particles when the entity is controlled by a player
  • MC-272039 Soul Speed uses durability in creative mode
  • MC-272042 If players have max health over 20 and die, when they respawn they will have 20 health instead of their max health
  • MC-272043 The game crashes when entities die while having the oozing effect
  • MC-272075 Attempting to step up while controlling entity and moving fast often glitches
  • MC-272084 Creepers with potion effects no longer create area effect clouds upon exploding
  • MC-272182 Knowledge Books no longer function properly with a stack size of 1 in survival/adventure mode