Conversation
…nd component types changing.
* 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
There was a problem hiding this comment.
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.
| @@ -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; | |||
There was a problem hiding this comment.
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.
| import org.cloudburstmc.protocol.bedrock.data.TrimPattern; | ||
| import org.geysermc.geyser.api.util.Unit; | ||
| import org.geysermc.geyser.entity.type.living.animal.FrogEntity; |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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
stuff (yeah this isn't a good commit message I'll get back to this later who knows)
…omponent hashing working
…test, add primitives test
…arity, use effects hashing gametests
…, 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
- 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
…abstract types, bump adventure for release
… fuzzy hash NBT and object text components
I'm too tired for this
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 /
adventurewaiting until 5.x releases!Gamerules!!!!
Bump Java version to 21 project wide; 25 for modded ofc
API:
There is no ETA currently.