fix(deps): update dependency net.minestom:minestom to v2026.07.22-26.2#22
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/minestom
branch
from
July 12, 2026 15:59
a39a02e to
1d9b734
Compare
renovate
Bot
force-pushed
the
renovate/minestom
branch
from
July 24, 2026 11:05
1d9b734 to
21c6344
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
2026.06.20-26.1.2→2026.07.22-26.2Release Notes
minestom/minestom (net.minestom:minestom)
v2026.07.22-26.2Compare Source
This release continues the registry work introduced in 26.2. Registry backed protocol objects now expose their data directly, and new registry access APIs prepare Minestom for further registry cleanup. Compatibility bridges remain in place so projects can migrate gradually. Though they will be removed in the future.
This release also fixes races during login and chunk loading, and corrects the motion blocking heightmap for fluid and nonstandard block states.
Registry Access
RegistryDatais now deprecated. Data belonging to blocks, materials, entity types, attributes, potion effects, villager professions, block sound types, and other static protocol objects can be read directly from those objects (#3292).For example:
The old
registry()accessors remain available for now, but are deprecated for removal.StaticProtocolObjectnow has an explicitregistryKey()accessor #3293. Static protocol objects still implementRegistryKeyin this release, but that inheritance will be removed in a future release. Code that needs a key should begin requesting it explicitly:Tool#isCorrectForDropsandTool#getSpeednow have overloads which accept aRegistryKey<Block>. TheirBlockoverloads are deprecated.The registries for the current server process are now available through
MinecraftServer.getRegistries()andServerProcess#registries()(#3294). This avoids retrieving the entire server process when only its registries are needed:Generated registry keys and tags now use deterministic ordering (#3291).
BuiltinRegistries.BIOMEis also the new name for the biomeregistry key. The old
BuiltinRegistries.WORLDGEN_BIOMEfield remains as a deprecated compatibility alias.Migration Notes
Most migrations are direct replacements:
registry()with the matching accessor on the protocol object. For example,block.registry().hardness()becomesblock.hardness()andentityType.registry().eyeHeight()becomesentityType.eyeHeight().Block#isAir,Block#isSolid,Block#isLiquid, andBlock#isFluidwithair,solid,liquid, andfluid. The old names are deprecated.Material#isArmorwithMaterial#armorandAttribute#isSyncedwithAttribute#synced.block.registry().isBlockEntity()withblock.blockEntityType() != null. Replaceblock.registry().blockEntity()andblock.registry().blockEntityId()withblock.blockEntityType(), then usekey()orid()on the null checked result when needed.block.registry().getBlockSoundType()withblock.blockSoundType().entityType.registry().entityAttachments(name)withentityType.entityAttachments(name). The new method returnsList<Vec>instead of raw coordinate lists. Code using the old singularentityAttachment(name)method should select the first entry when present.StaticProtocolObject#registryKey()anywhere a static protocol object is being used as a registry key.BuiltinRegistries.WORLDGEN_BIOMEwithBuiltinRegistries.BIOME.ServerFlag.INSIDE_TEST,DataComponentPredicate.Damage.CODEC, and theFilteredTextfieldsSTRING_NETWORK_TYPE,STRING_CODEC,COMPONENT_NETWORK_TYPE, andCOMPONENT_CODEC. Code can no longer replace these values. Start the JVM with-Dminestom.inside-test=truewhen the test flag is required, and store custom codecs or network types in project owned fields instead. Though this migration is unlikely to affect you.Networking
The final
GameProfile, including changes made byAsyncPlayerPreLoginEvent, is now published to the connection before the login success packet is sent (#3300). This fixes a race where an immediate client acknowledgement could be handled beforePlayerSocketConnection#gameProfile()exposed the final profile.Worlds and Blocks
ChunkLoader#loadChunkare now documented as part of the loader contract.MotionBlockingHeightmapnow follows the block registry'sblocksMotionandfluidproperties (#3305). Kelp is one concrete case fixed by this change: it contains fluid but is not solid, is not a liquid block, and has nowaterloggedproperty, so the previous predicate ignored it. Kelp placed at Y=45 now correctly sets the motion blocking height to 45. Waterlogged states are also included, while solid blocks such as cobwebs and bamboo saplings that do not block motion are excluded.Development
Error Prone and a wider set of javac lints are now enforced during builds, alongside updated style and incremental import checks (#3301,#3303).
JUnit was updated to 6.1.2 and the GraalVM Native Build Tools plugin to 1.1.5 (#3299).
Full Changelog: Minestom/Minestom@2026.07.12-26.2...HEAD
v2026.07.12-26.2Compare Source
The 26.2 branch has now been merged, thanks to everyone who tested and contributed to it!
This is a larger release with a number of API changes. One of the largest API changes is the new set of generated
registry keys and tags, while projects that construct packets directly should also read the migration section below.
Registry Keys and Tags
Minestom now generates
RegistryKeyconstants for its built in gameregistries (#2951). These live in classes such as
BlockKeys,MaterialKeys, andEntityTypeKeys. Registry tags are available from the matching*Tagsclasses, whileBuiltinRegistriescontains the keys for the registries themselves.The existing value constants have not gone away.
Block.STONEis still aBlock, whileBlockKeys.STONEis the key tothat block. This means APIs can ask for a key without forcing the registry value to be resolved first.
26.2 also adds a data driven registry for sulfur cube archetypes. Custom archetypes can be registered in the same way as
other dynamic registry entries:
Register custom entries before the server starts. Internal game
registry usage was also cleaned up to avoid unnecessary static
access (#3269, #3264).
New in Minecraft
Minestom now targets Minecraft 26.2 with data revision
26.2-rv3(#3203, #2951).EntityType.SULFUR_CUBEandSulfurCubeMeta.DataComponents.SULFUR_CUBE_CONTENTrepresents the item stored inside a sulfur cube.TeamColortype, and team packets have been updated to the 26.2 format.HorseMeta.Variantstores the color while markings remainin entity metadata (#2996).
AbstractCubeMeta, with their metadata classes moved into themetadata.cubepackage.
camels, animals, and happy ghasts (#3222).
squids (#3260).
Data Components and Predicates
Block predicates now support vanilla's data component
predicates (#2732). This includes enchantments, attributes,
containers, damage, potions, trims, jukebox songs, books, custom data, and the other predicate types used by 26.2.
The new APIs include
ComponentPredicateSet,CollectionPredicate,DataComponentPredicate,ItemPredicate, andNbtPredicate. They support exact and partial matching, tags, unbounded ranges, collection constraints, and vanillastyle NBT matching.
DataComponents.LOCKnow stores anItemPredicateinstead ofCustomData.Item components can also be reset to their material defaults (#3161).
ItemStack#resetremoves an explicit override, whileItemStack#components()returns the fully resolved component map.The same operations are available through
DataComponentMap#resetandDataComponentMap#applyPatch.Numeric decoding now follows DataFixerUpper coercion behavior, including coercion inside byte, integer, and long
arrays (#3226, merged
through #3275). If you provide a custom
Transcoder, it must nowimplement
getNumber(Object).Migration Notes
Most of these changes are direct type or method replacements:
ArgumentType.ColorandArgumentColorhave been replaced byArgumentType.TeamColorandArgumentTeamColor.Scoreboard teams now use nullable
TeamColorvalues instead ofNamedTextColor(#3203).JoinGamePacketandRespawnPacketnow hold their shared fields inPlayerSpawnInfo.LoginSuccessPacketalsotakes a session UUID (#3203).
ClientSpectateEntityPackethas been replaced byClientSpectatorActionPacket. Its target may be absent in26.2 (#3203).
NetworkBuffer#readOnly()now returns a new read only buffer instead of modifying the original one. The oldcopyTooverload using long indices with a byte array has been removed, and
writeChannelnow accepts anyWritableByteChannel(#3233).PacketRegistry#packets()has been removed.PacketRegistryis now iterable, and the vanilla packet declarationslive in
PacketVanilla(#3179).BlockVec. This affectssize,absoluteStart,absoluteEnd, andsections(#3084).Rangetypes now use nullable boxed bounds, allowing either end to be omitted.EntityFinder#setDistancenowtakes
Range.Double(#2732, #3225).NbtPredicateinstead of a rawCompoundBinaryTag(#2732).
Bee#entityDatanow usesTypedCustomData<EntityType>instead ofCustomData(#2732).
Registriesimplementations must provide the sulfur cube archetype and component predicate type registries(#3203, #2732).
Entity#getPassengers()now returns an orderedList<Entity>instead of aset (#3222).
PlayerStartSneakingEventandPlayerStopSneakingEventhave been removed. Their replacements arePlayerInputEvent#hasPressedShiftKey()andPlayerInputEvent#hasReleasedShiftKey()(#3273).BenchmarkManagerandThreadResulthave been removed. Java Flight Recorder or a custom monitoring implementationshould be used instead (#3140).
Networking
Several packet APIs changed with the update to 26.2:
JoinGamePacketandRespawnPacketnow hold their shared fields inPlayerSpawnInfo.LoginSuccessPacketalsotakes a session UUID (#3203).
ClientSpectateEntityPackethas been replaced byClientSpectatorActionPacket. Its target may be absent in26.2 (#3203).
TeamsPacket.Settingsand use the new nullableTeamColortype (#3203).
PacketRegistry#packets()has been removed.PacketRegistryis now iterable, and the vanilla packet declarationslive in
PacketVanilla(#3179).NetworkBuffer#readOnly()now returns a new read only buffer instead of modifying the original one. The oldcopyTooverload using long indices with a byte array has been removed, and
writeChannelnow accepts anyWritableByteChannel(#3233).CachedPacketsynchronization and documentation were also cleaned up, particularly around caching andinvalidation (#3281).
NetworkBuffer#slicecan now create a bounded view without copying the underlyingmemory (#3277).
ServerFlag.PROXY_PROTOCOLto accept both proxied and direct Minecraft connections.ServerFlag.PROXY_PROTOCOL_REQUIREDas well if every connection must include a PROXY header.Worlds and Blocks
generation forks now use targeted block or section updates (#3228).
Block#isFluid()has been added forthe same distinction (#3253).
were added to track the affected operations (#3146).
instance (#3251).
chunks (#3084).
Other Changes
InventoryBundleItemSelectEventfor observing and controlling bundleselection (#3244).
bound (#3282).
Entity#teleportnot synchronizing head yaw (#3248).behavior (#3225).
OpenToLANso its socket, task, and cached response are managed as one synchronizedstate (#3170).
MojangUtils#formatUUIDfor Mojang UUID strings withouthyphens (#3266).
types (#3259, #3278, #3283).
ABI compatibility report
The ABI checker found 148 binary compatibility violations compared with
2026.07.01-26.1.2. A single record or returntype change can produce several entries in this count.
The report was generated with:
Raw checker output:
Full Changelog: Minestom/Minestom@2026.07.01-26.1.2...HEAD
v2026.07.01-26.1.2Compare Source
26.2
26.2 is still being worked on. If you require 26.2 early, feel free to try out the published snapshot located within Minestom/Minestom#3203.
What's Changed
Full Changelog: Minestom/Minestom@2026.06.20-26.1.2...2026.07.01-26.1.2
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.