Repository navigation
Update dependency net.minestom:minestom to v2026.10.07-26.2 - #253
Merged
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/net.minestom-minestom-2026.x
branch
from
October 9, 2026 03:48
5cd110f to
ea837ab
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.09.12-26.2→2026.10.07-26.2Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
minestom/minestom (net.minestom:minestom)
v2026.10.07-26.2Compare Source
It is recommended to update to receive the latest security fixes. An advisory will be disclosed at a later date.
What's Changed
Full Changelog: Minestom/Minestom@2026.10.05-26.2...2026.10.07-26.2
v2026.10.05-26.2Compare Source
This is a breaking release. APIs that were deprecated for removal are gone,
ServerFlagis replaced by the newServerPropertiesAPI, and registry keys are created withRegistryKey.ofandTagKey.of. Several packets were fixed to match the protocol, which changes some packet constructors and accessors. Every breaking change has a before and after example in the migration section at the bottom.This release also continues the registry work from 26.2. Instances, packet buffers, and component serializers can use registries other than those of the running server process, which makes Minestom easier to use in tests and without a server process at all.
This is not the last breaking release of this cycle before 26.3, it is just a checkpoint for some of the work already completed.
26.3
26.3 is still being worked on. If you require 26.3 early, you can use the published snapshot located within Minestom/Minestom#3369.
Registries
Registries are a core part of this changeset so far, they will continue to be larger changeset until registry v3 is merged.
RegistryKey.ofandTagKey.ofare now the public way to create keys, replacing the internalunsafeOfmethods (#3401). A key is only a typed name. Its syntax is validated, but registry membership is not, so the same key can name an entry in one registry and nothing in another. Looking up a key that has no entry returnsnull, or-1for IDs.Instances can be created with the registry context of your choice (#3402).
InstanceManager#createInstanceContainerhas overloads that takeRegistries, and theInstanceandInstanceContainerconstructors without a registry context are deprecated.A number of places read the registries of the global server process instead of the registries they were given:
EnchantmentTableInventorylooks up enchantment IDs in the registry it was created with (#3391).maxLengthchecks measure typed NBT with them as well (#3385).NbtComponentSerializer.nbt(Registries)serializes components without an initialized server process (#3388).Buffers from
PacketVanilla.PACKET_POOLhold no registries until a write sets them (#3396). Code that takes a buffer from the pool directly must set its registries before writing registry dependent types.New and reset chunk sections fill their biome palette with the ID of
Biome.PLAINSin the instance registries, instead of ID 0 (#3370).Section#clear()is removed. Future release will change the ordering where id 0 is no longerBiome.PLAINS.BuiltinRegistries.WORLDGEN_BIOMEis removed in favor ofBuiltinRegistries.BIOME(#3368).Server Properties
ServerPropertiesreplacesServerFlag, which is deprecated for removal (#3354). Each setting is aServerPropertyinitialized from the same system property as before, and read throughget():Properties are immutable by default, so reads still fold to a constant. Setting
<name>.mutable=truelets that one property acceptset()at runtime, andminestom.properties.mutable=truedoes the same for every property. This is mostly intended for tests. Some settings are only read during startup, so changing them later may have no effect. TheServerFlagconstants hold the values from when the class was initialized and never see writes made throughset().Network error handling is configurable through new properties (#3347). By default, socket IO errors and failed accepts are no longer reported to the exception manager, since they are mostly noise from scanners.
minestom.suppress-connection-io-errorsandminestom.suppress-connection-accept-errors(bothtrue) hide socket IO errors and failed accepts.minestom.suppress-malformed-packet-error-levelandminestom.suppress-misused-packet-error-level(both0) skip reporting packets that fail to parse, or that throw in their listener, while the connection state ordinal is at or below the level. The default of0silences handshake errors.minestom.reject-malformed-packet(true) disconnects a client that sends a packet that fails to parse.minestom.reject-misused-packet(false) disconnects or kicks a client whose packet throws in its listener.minestom.warn-packet-unread-bytes(true) toggles the warning for packets that were not fully read.PacketListenerManager#processClientPacketno longer catches listener exceptions, so its callers handle them.Networking
Several packets did not match the protocol (#3382):
WorldBorder.createLerpSizePacketandWorldBorder.createInitializePackettake ticks.DebugChunkValuePackettakes the chunk x and z as separate ints.DeleteChatPacketholds a packed signature, so it can delete a message by its signature cache index as well as by its full signature.ClientChangeDifficultyPackethas nolockedflag, the structure block seed is read as a VarLong, andClientSetBeaconEffectPacketholdsPotionEffectvalues.DamageEventPackettakes aRegistryKey<DamageType>and nullable entity IDs instead of their encoded values (#3395).Entities only send their non-empty equipment slots, and send no equipment packet at all when every slot is empty (#3249).
EquipmentHandler#getEquipmentsPacket()returnsnullin that case.Instance#setHashedSeedsets the seed clients use to blend grass, foliage, and water colors near biome borders (#3302). It defaults to0and applies to players that enter the instance after the call.Player#sendPacketsandPlayerConnection#sendPacketsacceptCollection<? extends SendablePacket>, so aList<RegistryDataPacket>can be passed directly (#3346).NetworkBuffer
NetworkBuffer.IOViewandNetworkBuffer#ioView()are removed with no replacement (#3383).NetworkBuffer.resizableBuffertakes alongsize (#3387).NetworkBuffermatch those ofCodec(#3384). This is unlikely to affect you, but some code may need its generics adjusted, it should allow you fix some ugly casts.NetworkBufferis fully documented with Javadoc (#3386).Removed APIs
The map API in
net.minestom.server.mapandnet.minestom.server.map.framebuffersare deleted, along with theminestom.map.rgbmappingandminestom.map.rgbreductionflags (#3341). It had been unmaintained for a while and can be implemented entirely outside of Minestom. Minestom no longer requires thejava.desktopmodule.APIs deprecated for removal in earlier releases are removed (#3393). This covers
Block#isAir,isSolid,isLiquid, andisFluid,Material#isArmorandisBlock,Attribute#isSynced, theBlockoverloads ofTool#isCorrectForDropsandTool#getSpeed,TagKey.hashCodec, andStaticProtocolObject#registry(). The typedregistry()accessors onBlock,EntityType, and the other static protocol objects remain deprecated for removal.Several public static fields are now final and some return types are narrower (#3304).
ServerFlag.INSIDE_TEST,DataComponentPredicate.Damage.CODEC, and theFilteredTextfieldsSTRING_NETWORK_TYPE,STRING_CODEC,COMPONENT_NETWORK_TYPE, andCOMPONENT_CODECare final. Some return types are narrower:ConnectionManager#getOnlinePlayers()andgetConfigPlayers()returnSet<Player>,PlayerChatEvent#getRecipients()returnsList<Player>,Weather#createWeatherPackets()returnsList<SendablePacket>, andcomponents()onSetSlotPacket,SetCursorItemPacket,SetPlayerInventorySlotPacket, andSlotDisplay.ItemStackreturnsList<Component>.Other Changes
EaseFunction.CubicBezierpairs its control points correctly (#3379). Curves wherex1differed fromy1, orx2fromy2, sampled wrong values.CubicBezieris a record with value equality, and it rejectsx1orx2outside 0 to 1.ArgumentItemStackreports invalid item components as syntax errors instead of throwing (#3389).net.minestom.server.item.predicatepackage is exported from the module (#3373).Migration
Registry keys are created with
of(#3401).⬇️
Instance constructors take a registry context (#3402). Pass
MinecraftServer.getRegistries()to keep the current behavior, or create instances throughInstanceManagerinstead.⬇️
Server settings are read through
ServerProperties(#3354).⬇️
INSIDE_TESTis now final, so set it through its system property (#3304).⬇️
World border packets take the transition time in ticks (#3382).
⬇️
DebugChunkValuePackettakes the chunk x and z as separate ints (#3382).⬇️
DeleteChatPacket.signature()returns aMessageSignature.Packed(#3382). TheDeleteChatPacket(MessageSignature)constructor works as before.⬇️
ClientChangeDifficultyPackethas nolockedcomponent (#3382).⬇️
Beacon effects are
PotionEffectvalues (#3382).⬇️
DamageEventPackettakes a damage type key and plain entity IDs (#3395).⬇️
Pooled buffers need their registries set before writing (#3396).
⬇️
NetworkBuffer.resizableBuffertakes along(#3387). Most code only needs a recompile.⬇️
Deprecated accessors are replaced by their short forms (#3393).
⬇️
The biome registry key alias is removed (#3368).
⬇️
Section#clear()is removed (#3370).⬇️
getEquipmentsPacket()returnsnullwhen every slot is empty (#3249).⬇️
Player#sendDimensiontakes the hashed seed (#3302).⬇️
processClientPacketlets listener exceptions propagate (#3347).⬇️
Custom
PlayerConnectionimplementations overridesendPacketswith the wider bound (#3346).⬇️
The map API,
NetworkBuffer.IOView, andTagKey.hashCodechave no replacement. The narrower return types from #3304 only need a recompile.ABI compatibility report
The ABI checker found 62 binary compatibility violations compared with
2026.09.12-26.2. A single record or return type change can produce several entries in this count.The report was generated with:
Raw checker output:
Full Changelog: Minestom/Minestom@2026.09.12-26.2...2026.10.04-26.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.