Skip to content

Feature: 26.2#6452

Open
onebeastchris wants to merge 56 commits into
masterfrom
feature/26.2
Open

Feature: 26.2#6452
onebeastchris wants to merge 56 commits into
masterfrom
feature/26.2

Conversation

@onebeastchris

@onebeastchris onebeastchris commented Jun 14, 2026

Copy link
Copy Markdown
Member

Downloads for this preview can be found below, please note that these are not production ready! Use with caution and always make backups!

Opening as a draft now to keep track of TO-DOs 👀

API additions left:

  • supporting dyeable items - postponed
  • custom waypoints
  • custom entities???

Not api, not 26.2; still neat to have more testing:

  • hashed block ids - postponed
  • resolvable data components

26.2 changes:

  • ClientboundSetPlayerTeamPacket changes -> nullable team color!
  • Spectator action packet
  • new clientbound login packet field
  • geysers: particles / sounds / block entity
  • new entity attributes
  • sulfur cube
    • baby sulfur cube size
  • 26.30 based mappings + backwards compat
  • MushroomCow#mobInteract
  • beds are no longer block entities on Java, but are on Bedrock
  • gametests/component hashing
  • automate fabric.mod.json mc version via resource processing
  • Adventure 5.2.0: Needed for modded; needed to bump cloud properly

Mappings:

  • 26.30 -> 26.0 backward mappings
  • new sounds
  • new particles

@eclipseisoffline eclipseisoffline added PR: Needs Testing When a PR needs testing but is currently not under review PR: Feature When a PR implements a new feature labels Jun 16, 2026
Remove state from potent sulfur in backport mapping

Fix minimal string usage

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>
@onebeastchris onebeastchris added the Work in Progress The issue is currently being worked on. label Jun 16, 2026
Comment thread bootstrap/spigot/build.gradle.kts Outdated
@@ -1135,6 +1129,24 @@ public final class EntityDefinitions {
.addTranslator(MetadataTypes.BOOLEAN, TurtleEntity::setLayingEgg)
.build();

// Slime entities
EntityDefinition<AbstractCubeEntity> cubeEntityBase = EntityDefinition.inherited(AbstractCubeEntity::new, ageableEntityBase)
.heightAndWidth(0.51f)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

idea: we could check height / width in gametests 👀

eclipseisoffline and others added 4 commits June 17, 2026 08:47
* Re-work ResolvableComponent/ComponentCache to be applied to every Item

* Load resolvable registry components from to-be-generated mappings

* Support loading holder set resolvable components, target mappings with newly generated file

* Fix tests

* Abstract ComponentCache with ResolvableComponentGetter and EMPTY implementation

* Proper handling of PROVIDES_TRIM_MATERIAL in TrimRecipes

* Address reviews

* Target latest 26.2 mappings
* Initial work on better world border.

* Cleanup code.

* Don't let player collide with the border if the border is resizing.

* Avoid respawning entity if possible.

* Address review.

* Address review.
onebeastchris and others added 4 commits July 5, 2026 22:43
* Start working on custom entity API (for real this time)

* Split EntityDefinition up into EntityDefinition and VanillaEntityDefinition, create GeyserEntityType, target custom entities MCPL

* Allow creating custom entity types from API

* Further refactor EntityDefinition, create a Base class

* Work on exposing custom entity definitions in the API

* Add EntityDefinition#is

* Implement CustomEntityDefinition, part one

* Move CustomEntityDefinition into custom package

* CustomEntityDefinition should extend GeyserEntityDefinition

* Separate BedrockEntityDefinition from Entity classes

* EntityDefinition -> EntityTypeDefinition

* Continue splitting bedrock entities from java types

* Width, height and offset should be tied to the Java entity type; and can now be modified in the ServerSpawnEntityEvent

* More work on events, closer to working

* Fix startup

* Expose geyserId in API, add SessionAttachParrotsEvent

* Rename SessionAttachParrotsEvent -> ServerAttachParrotsEvent, fill in API Javadocs

* Apply some suggestions

* Another couple changes, start designing an entity data system to set scale/variant/height/width and so forth

* Api design goes brrr

* Implement dirty entities to send updates once a tick

* Fix NPE in test

* Attempt to add feature branch publishing

* API polishing; properly initialize height/width

* Refactor: unify offset handling, always store Java entity position

* Remove unused offsets

* Remove debug print, validate that entity definitions have been registered, setup publishing

* Set up feature branch publishing and vertical offset applying

* correct javadoc

* Change entity definition log level to debug for missing definitions (#6042)

* Fix villager inventories not showing up

* Fix interaction range check

* Expose entity hitboxes in API, store bedrock position to avoid re-calculation

* Minor cleanup

* Log unknown implementations of GeyserEntityDefinition

* Use position setter instead of directly setting entity position

* Fix client crashing related to sending & unlocking smithing recipes

* Merge upstream

* Fix hitbox querying, fix offset handling for boats

* Fix entity lerping

* Remove bedrockPosition variable again, simpler to only store one source of truth

* Address issues

* Bump mcpl

* make it build again

* Partially address review

* fix le test

* Fix: ResourcePackClientResponsePacket's may contain empty pack lists in the send_packs case

* Fix debug log formatting calls

* Minor fixes, reviews, etc

* Support setting empty hitbox

* Reviews and comments

* Improve height / width handling

This will be later reworked to allow setting a height + width combo that accounts for the entity pose. For now, it's a general override

* Allow custom height / width to be 0

* Likely fix entity registration

* Reduce diff, fix issue related to odd entity movement

* Work around pistons creating ghost blocks

* Feature: Expose basic seat offset / update entity passengers event

* Fix tests

* Temporarily revert "Fix: hide living entity name when it is a vehicle (#6290)"

This reverts commit 3e91129.

* Fix: sent bogus furnace recipes when none are sent by the server

Remove debug exception

Fix: client crash because no furnace recipes are sent

# Conflicts:
#	core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaRecipeBookAddTranslator.java

* Update to 26.1

* Update to jspecify conform nullability annotations

* Fix test, use a fixed snapshot build

* Fix build

* Implement new geyser entity data override system

* Address reviews

* Support more entity data types

* Revert "Temporarily revert "Fix: hide living entity name when it is a vehicle (#6290)""

This reverts commit 60f0bb5.

* Revert initial changes for supporting non-vanilla entities

* le ✨ javadocs ✨

* Misc improvements: Javadocs, some structural fixes

* Improve entity data system by using EntityDataBehaviorRegistry, improve some data type javadocs

* Fix: IdentifierImpl hacks

* Mark API as experimental

* Add debugging logs, smaller fixes to armor stand entity

* Document remaining entity data types

* this is aktschually unmodifiable

* mhm this was supposed to be pushed

* Update hitbox handling to resolve to-do

* Differentiate between override and value in the API, improve offset handling in API

* Include number of custom entities in the API

* Apply suggestions from code review

Co-authored-by: chris <github@onechris.mozmail.com>

* Merge fixes

* Add read/write lock for entity cache to allow safe off-thread entity lookups

* dirtyMetadata -> metadata

The class is no longer just a wrapper for metadata, but also handles API overrides / tracks entity data exposed in the API

* Apply suggestion

---------

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>
Co-authored-by: Pierpaolo Coletta <pierpi0900@gmail.com>
@onebeastchris onebeastchris marked this pull request as ready for review July 9, 2026 20:29
Copilot AI review requested due to automatic review settings July 9, 2026 20:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

Copilot AI review requested due to automatic review settings July 9, 2026 22:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@Tyviebrock

Copy link
Copy Markdown

This should also fix #5932 as it's a bug caused by adventure 4 and is fixed in adventure 5 PaperMC/adventure#1335

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: Feature When a PR implements a new feature 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.

10 participants