Skip to content

Feature: 26.1, API 2.10.0#6271

Open
onebeastchris wants to merge 50 commits intomasterfrom
feat/26.1
Open

Feature: 26.1, API 2.10.0#6271
onebeastchris wants to merge 50 commits intomasterfrom
feat/26.1

Conversation

@onebeastchris
Copy link
Copy Markdown
Member

@onebeastchris onebeastchris commented Mar 29, 2026

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 waiting until 5.x releases!

  • 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 on lines 28 to +43
@@ -36,6 +37,10 @@
import org.geysermc.geyser.text.GeyserLocale;
import org.geysermc.geyser.text.MinecraftLocale;
import org.geysermc.mcprotocollib.protocol.data.game.setting.Difficulty;
import org.geysermc.mcprotocollib.protocol.packet.ingame.serverbound.ServerboundSetGameRulePacket;

import java.util.HashMap;
import java.util.Map;
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

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

The imports added for Key/ServerboundSetGameRulePacket/HashMap/Map are currently unused because the related gamerule batching code is commented out. Unused imports are a Java compile error, so this file will not compile as-is. Please remove these imports or re-enable the code that uses them.

Copilot uses AI. Check for mistakes.
Comment on lines 31 to 33
import org.cloudburstmc.protocol.bedrock.data.TrimPattern;
import org.geysermc.geyser.api.util.Unit;
import org.geysermc.geyser.entity.type.living.animal.FrogEntity;
Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

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

org.geysermc.geyser.api.util.Unit is imported but not referenced anywhere in this file. Unused imports are a Java compile error; please remove it.

Copilot uses AI. Check for mistakes.
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.

onebeastchris and others added 13 commits April 8, 2026 08:32
stuff (yeah this isn't a good commit message I'll get back to this later who knows)
…, custom model data, tooltip display component hashing tests
… protection, enchantable, equippable, food, glider, item_name, piercing weapon, repairable, swing animation, tool, tooltip style, use_cooldown, use_remainder, weapon component hashing
- "with" translatable text component args
- score text component not being wrapped in "score"
- piercing weapon component encoding the wrong value
- custom sounds not encoding float when it is 16
- item stacks always encoding count, even when it is 1
- adventure mode predicates not encoding nbt as a string
Copilot AI review requested due to automatic review settings April 8, 2026 18:53
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.

- block entity data, bucket entity data, entity data
- banner patterns
- base color
- bees
- block state
- blocks attacks
- break sound
- bundle contents
- charged projectiles
- container
- container loot
- debug stick state
- dye
- firework explosion
- fireworks
- instrument
- jukebox playable
- kinetic weapon
- lock
- lodestone tracker
- map decorations
- wolf collar, tropical fish colors, cat collar, sheep color, shulker color
- villager variant, wolf (sound) variant, fox variant, salmon size, parrot variant, tropical fish pattern, mooshroom variant, rabbit variant, pig variant, cow variant, chicken variant, zombie nautilus variant, frog variant, horse variant, painting variant, llama variant, axolotl variant, cat variant
- note block sound
- pot decorations
- potion contents
- dyed color, map color, map id, potion duration scale, ominous bottle amplifier
- profile
- provides banner patterns
- provides trim material
- recipes
- suspicious stew effects
- trim
- writable book content
- written book content
- Encode the right field in kinetic_weapon
- Use default value for "generation" in written_book_content
- Lowercase player model type in resolvable_profile
- Bee occupant entity data in entity_data field
- NBT string serialisation with child maps or lists
…ser, add hashers and testsfor missing components

- pig, cow, chicken and cat sound variants
Copilot AI review requested due to automatic review settings April 15, 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.

Copilot AI review requested due to automatic review settings April 15, 2026 19:38
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.

I'm too tired for this
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.

7 participants