Skip to content

Feature: 26.1, API 2.10.0#6271

Merged
onebeastchris merged 66 commits intomasterfrom
feat/26.1
May 5, 2026
Merged

Feature: 26.1, API 2.10.0#6271
onebeastchris merged 66 commits intomasterfrom
feat/26.1

Conversation

@onebeastchris
Copy link
Copy Markdown
Member

@onebeastchris onebeastchris commented Mar 29, 2026

This PR has previews available!

⚠️ Please treat these builds as experimental; expect bugs and don't use on production! ⚠️

Important to note: Geyser now requires Java 21 or up to run. If you use a modern version of Paper, Fabric/NeoForge, or Velocity; that'll already be the case. Floodgate also requires a 26.1 update, which you can download on our site.

Please note that these builds do not work on Velocity as of right now.

You can download them below for your platform:


Original PR description:

Opening PR here to make it easier to track to-do's!

Mappings:

  • New sounds

  • New particles

  • Block / Item mappings

  • Updating Items / Blocks / Tags / Properties classes

  • Fixing dye color / sound reading in MCPL

  • World clocks

  • Fix build script for fabric / neoforge

  • Bump cloud / adventure

  • Gamerules!!!!

  • Bump Java version to 21 project wide; 25 for modded ofc

API:

  • Update component renames that we mirror 1:1

There is no ETA currently.

Copilot AI review requested due to automatic review settings March 29, 2026 13:31
hasankayra04 and others added 2 commits March 29, 2026 15:31
* Update to Gradle 9.4.1

* Set toolchain JVM to 25

* Enable Architectury for Java 26.1

* Enable mod project directories

* Uncomment geyser.modded-conventions.gradle.kts

* Remove declared mappings line

* Enable Fabric and NeoForge libraries

* Remove mod prefix on dependency configurations

* Remove namedElements configuration

* Switch to dev.architectury.loom-no-remap

* Remove remapJar and use shadowJar instead

* asLong -> pack

* displayClientMessage -> sendSystemMessage

* displayClientMessage -> sendSystemMessage

* Update DedicatedServerMixin for Java 26.1

* Target Java 25 instead of Java 21

* Fix file name issue

* Update fabric.mod.json

* Update neoforge.mods.toml
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Geyser’s protocol/mapping layer to target Minecraft 26.1 (API 2.10.0), including several MCProtocolLib-driven packet/component model changes and new/updated mapping data, while temporarily disabling modded (Fabric/NeoForge) builds.

Changes:

  • Bump protocol/library versions and adjust packet translators for renamed/changed serverbound/clientbound packets.
  • Add/adjust mappings/tags/properties (e.g., golden dandelion, new tags, noteblock instruments) and update registry/component hashing for new data shapes.
  • Introduce “world clock” registry + session-side clock rate tracking for time progression behavior.

Reviewed changes

Copilot reviewed 49 out of 50 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
settings.gradle.kts Comments out Fabric/NeoForge/mod subprojects and their projectDir mappings.
gradle/libs.versions.toml Bumps mcprotocollib + sets Minecraft version to 26.1; comments out modded toolchain entries.
core/src/main/java/org/geysermc/geyser/util/SettingsUtils.java Preps gamerule batching (currently commented) and keeps existing settings form behavior.
core/src/main/java/org/geysermc/geyser/util/LoginEncryptionUtils.java Switches login UI clock control to new session clock-ticking flag.
core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaSetTimeTranslator.java Uses world clock registry updates + delegates Bedrock time sending to session helper.
core/src/main/java/org/geysermc/geyser/translator/protocol/java/level/JavaGameEventTranslator.java Updates respawn command enum to renamed value.
core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/entity/player/BedrockInteractTranslator.java Updates interaction/attack downstream packets to new MCPL packet types/signatures.
core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockShowCreditsTranslator.java Updates respawn command enum to renamed value.
core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockRespawnTranslator.java Updates respawn command enum to renamed value.
core/src/main/java/org/geysermc/geyser/translator/protocol/bedrock/BedrockInventoryTransactionTranslator.java Updates attack/interact packets and instrument component types for new MCPL models.
core/src/main/java/org/geysermc/geyser/session/cache/tags/ItemTag.java Adds/removes item tags to match updated Java tag set.
core/src/main/java/org/geysermc/geyser/session/cache/tags/EnchantmentTag.java Removes special trades tags (now absent/changed upstream).
core/src/main/java/org/geysermc/geyser/session/cache/tags/BlockTag.java Adds/removes block tags to match updated Java tag set.
core/src/main/java/org/geysermc/geyser/session/cache/registry/JavaRegistries.java Adds WORLD_CLOCK registry key.
core/src/main/java/org/geysermc/geyser/session/cache/RegistryCache.java Registers WORLD_CLOCK via unit registry reader.
core/src/main/java/org/geysermc/geyser/session/cache/BlockBreakHandler.java Updates item frame “attack” to use ServerboundAttackPacket.
core/src/main/java/org/geysermc/geyser/session/GeyserSession.java Adds clock-rate-based world ticking + time packet helper; removes some start game fields.
core/src/main/java/org/geysermc/geyser/registry/populator/conversion/GoldenDandelionConverter.java Adds block palette conversion for golden dandelion to dandelion.
core/src/main/java/org/geysermc/geyser/registry/populator/ItemRegistryPopulator.java Applies java-only item remaps for older Bedrock palettes (golden dandelion).
core/src/main/java/org/geysermc/geyser/registry/populator/CustomItemRegistryPopulator.java Updates attack range component field names to new API.
core/src/main/java/org/geysermc/geyser/registry/populator/BlockRegistryPopulator.java Adds golden dandelion converter to selected palettes.
core/src/main/java/org/geysermc/geyser/network/GameProtocol.java Overrides MCPL codec version string/protocol version for 26.1.
core/src/main/java/org/geysermc/geyser/level/block/property/Properties.java Updates noteblock instrument enum values (adds trumpet variants).
core/src/main/java/org/geysermc/geyser/level/block/Blocks.java Adds GOLDEN_DANDELION blocks and potted variant; formatting adjustments.
core/src/main/java/org/geysermc/geyser/level/JavaDimension.java Updates custom-dimension inference keys + adds default_clock field.
core/src/main/java/org/geysermc/geyser/level/GameRule.java Updates TODO note for gamerule sourcing.
core/src/main/java/org/geysermc/geyser/item/type/ShulkerBoxItem.java Updates container component type to List<Optional>.
core/src/main/java/org/geysermc/geyser/item/type/GoatHornItem.java Updates instrument component type to Holder.
core/src/main/java/org/geysermc/geyser/item/hashing/RegistryHasher.java Updates hashers for new instrument/jukebox/optional-container representations; adds variant registries.
core/src/main/java/org/geysermc/geyser/item/hashing/DataComponentHashers.java Updates component hashing for new holder/id shapes and renamed attack range accessors.
core/src/main/java/org/geysermc/geyser/item/Items.java Adds GOLDEN_DANDELION item; adjusts cauldron block ordering.
core/src/main/java/org/geysermc/geyser/inventory/recipe/TrimRecipe.java Reworks trim material provider lookup to use Holder.
core/src/main/java/org/geysermc/geyser/inventory/item/GeyserInstrument.java Updates instrument conversion to use Holder.
core/src/main/java/org/geysermc/geyser/entity/type/living/animal/ArmadilloEntity.java Overrides baby scale.
core/src/main/java/org/geysermc/geyser/entity/type/living/DolphinEntity.java Overrides baby scale.
core/src/main/java/org/geysermc/geyser/entity/type/living/AgeableEntity.java Adjusts default baby scale.
core/src/main/java/org/geysermc/geyser/entity/type/ThrowableEggEntity.java Updates chicken variant component reading to new integer id form.
core/src/main/java/org/geysermc/geyser/command/defaults/StatisticsCommand.java Updates stats request command enum to renamed value.
core/build.gradle.kts Comments out loom-companion plugin.
build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts Entire modded conventions logic commented out (disables behavior).
build-logic/build.gradle.kts Comments out architectury/loom/loom-companion build-logic dependencies.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts
Comment thread core/src/main/java/org/geysermc/geyser/util/SettingsUtils.java Outdated
Comment thread core/src/main/java/org/geysermc/geyser/session/GeyserSession.java Outdated
@onebeastchris onebeastchris added the Work in Progress The issue is currently being worked on. label Mar 29, 2026
@onebeastchris onebeastchris marked this pull request as draft March 29, 2026 13:53
@onebeastchris onebeastchris marked this pull request as ready for review March 29, 2026 20:32
Copilot AI review requested due to automatic review settings March 29, 2026 20:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 55 out of 55 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/build.yml
Comment thread .github/workflows/build-remote.yml
Comment thread build-logic/src/main/kotlin/geyser.modded-conventions.gradle.kts
onebeastchris and others added 3 commits March 30, 2026 11:33
TL;DR - no more remap jar task, so JiJ is done in the jar task; the shadowJar doesn't use the jar task as input but rather source sets. Hence, we manually merge the two!
* Update to Shadow 9.4.1

* Remove unused import

* Revert "Remove unused import"

This reverts commit 5f876cf.

* Update MCProtocolLib version
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

@eclipseisoffline eclipseisoffline linked an issue May 1, 2026 that may be closed by this pull request
Copilot AI review requested due to automatic review settings May 2, 2026 19:27
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

(and some more recipe slot display fixes)
Copilot AI review requested due to automatic review settings May 2, 2026 20:19
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings May 3, 2026 12:06
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

@onebeastchris onebeastchris linked an issue May 3, 2026 that may be closed by this pull request
Copilot AI review requested due to automatic review settings May 4, 2026 17:43
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

onebeastchris and others added 2 commits May 5, 2026 01:26
# Conflicts:
#	README.md
#	api/src/main/java/org/geysermc/geyser/api/event/bedrock/ClientEmoteEvent.java
#	gradle.properties
* Start on implementing new gamerule packets and proper ViaVersion-based Java server version detection

* More work on gamerules et al

* Also add 26.1

* Yeet the JavaVersion stuff for now, that needs wayyyyyyyyy more testing

* Load deprecated language key file

* Cherry-pick language deprecation handling, add gamerule category based sorting

* <3

* Fix min/max swap, yeet unused permission

* Address review

* Fix tests and Javadocs

---------

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>
Copilot AI review requested due to automatic review settings May 5, 2026 08:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings May 5, 2026 12:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

@onebeastchris onebeastchris merged commit ee8e3d5 into master May 5, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Needs Testing When a PR needs testing but is currently not under review Work in Progress The issue is currently being worked on.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Geyser for version 26.1.2(java) / 26.1 Geyser doesn't support 26.1 yet

7 participants