Skip to content

Conversation

@oryxel1
Copy link
Collaborator

@oryxel1 oryxel1 commented Dec 17, 2025

Based off the https://github.com/GeyserMC/Geyser/tree/interesting-entity-movement branch, however slight adjustments were made.

Here are 2 videos showing entity falling before/after the changes.

https://github.com/user-attachments/assets/9ea68a4b-f8ec-4b63-9002-656d69dd2ccf
https://github.com/user-attachments/assets/7694cef6-763d-42a1-a8e8-a904e244bbd1

Even though the entity delay (also known as knockback delay issue) isn't entirely fixed, it's 10 times better after these changes.

@oryxel1 oryxel1 changed the title Lerp entity position to resolve weird entity position delay. Fix: lerp entity position to resolve weird entity position delay. Dec 17, 2025
@oryxel1 oryxel1 marked this pull request as ready for review December 23, 2025 11:03
Copy link
Member

@onebeastchris onebeastchris left a comment

Choose a reason for hiding this comment

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

LGTM

@rtm516
Copy link
Member

rtm516 commented Jan 6, 2026

This might also close #4945

@oryxel1
Copy link
Collaborator Author

oryxel1 commented Jan 6, 2026

This might also close #4945

actually no xd, arrow delay is cuz we're not ticking it (cuz it move client sided), I think chris fixed it in the custom entity branch?

@onebeastchris
Copy link
Member

nah i didnt touch arrows there

@oryxel1
Copy link
Collaborator Author

oryxel1 commented Jan 7, 2026

oh

@onebeastchris onebeastchris merged commit 192c755 into GeyserMC:master Jan 11, 2026
4 of 6 checks passed
misieur added a commit to misieur/GeyserMC that referenced this pull request Jan 19, 2026
* Improve error handling when registering custom items

* Clean up custom item registry populator a bit

* Improve documentation of (predicate) new API

* Apparently Javadoc can break builds

* Improve documentation just a bit

* Add predicate caching

* Default to definition type when no type key is given

* Whoops got to include the lib

* Factor in range dispatch scaling when sorting predicate

* Component combination validation

* Fix max stack size validation when reading json mappings

* "Implement" v2 block mappings reading

* Cleanup item registry populator a bit

* Fix mapping reading

* Move identifierToKey out of ItemRegistryPopulator

* Throw UnsupportedOperationException when reading block v2 mappings

* Move predicate implementations out of API module

* Send nutrition and saturation to the client

* Refactor mappings reading with proper type checking and conversions and better error messages, read nutrition and saturation values from mappings

* Small cleanup

* Clean up predicates in the API

* Implement predicate strategies

* Read predicate strategies from mappings

* Remove MCPL from API module, but now stuff is broken. Also still needs component verification

* Update implementations and mappings reader, but populator is broken

* My IDE did something it shouldn't have

* Improve enum reader error message

* Move predicate classes up

* Fix component patching, MCPL removal is done now

* Component validation in the API

* Proper support for the enchantable value property

* Reformat some stuff my IDE shouldn't have done

* Properly implement protection value

* Documentation improvements, add converter for enchantable component

* Remove unused stuff

* Remove rarely used method

* Small documentation stuff

* Work on tool component stuff

* Add tool component to API

* Implement tool component in custom item populator

* Add tool component mappings reader

* Update documentation

* Add repairable mappings reader

* Implement repairable component in custom item registry populator

* Documentation whoopsy

* Javadoc broke my build again (this isn't proper HTML)

* Update MCPL

* Consistency renames, start on has component predicate

* Update API module with has component predicate

* Update implementations and implement has component predicate

* Update reading of match predicate property

* Fix broken/damaged predicates

* Remove enchantable stuff from chargeable properties as that is decided by enchantable Java component, hand equipped because that's decided by custom item definition

* Clean up custom item registry populator

* Make new item definition register method throw exception

* Charge type javadocs

* Make air model constant

* Rename creative category internal name to bedrock name

* Make sure deprecated getExistingCustomItems method still functions

* Data component map javadoc

* Apply suggestions from code review

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

* Forgot one

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

* I messed up the merge conflicts, whoops

* Work on component javadoc

* Some fixes

* Whoops

* Work on changing mappings reader to Gson

* Update data component readers to use Gson

* Mappings reader gson part 1

* Mappings reader gson part 2

* Mappings reader gson part 3

* Whoops almost removed v2 mappings

* Some fixes and stuff

* Bye bye render offsets

* More small fixes

* Rename getExistingCustomItemDefinitions to customItemDefinitions in define custom items event

* Use API Identifiers to represent vanilla items instead of strings

* Add javadocs to CustomItemDefinitionRegisterException

* Switch tags to identifiers

* Switch Identifier constructors to short .of call

* Change Identifier in API to interface

* Add tag(Identifier) method to bedrock options builder

* Add new creative categories

* Work on making predicates in API abstract

* Implement predicate changes in geyser, range predicates still broken

* Write javadocs for new predicate stuff in the API

* Fix the build™

* Fix the build™ v2.0: now for the fancy predicate API

* Lazy initialise the stuff in predicate context

* Move item predicate context

* Work on fishing_rod/cast predicate

* Work on range-dispatch predicates in the new predicate API

* Improve some javadocs

* Write more javadocs

* Re-implement reading range dispatch predicates from JSON mappings

* Cleanup ItemMatchProperty a bit

* Write some TODOs

* Some fixes and docs

* Start working on non-vanilla custom items v2

* Implement the stuff in Geyser

* Update the define custom items event

* More progress with non-vanilla custom items

* Implement NonVanillaCustomItemData -> definition conversion

* Fix v1 mappings using the vanilla item identifier as bedrock identifier

* Add chargeable geyser data component

* Implement chargeable data component in geyser

* Convert old chargeable property to new component, don't allow chargeable component to be used for vanilla items

* Remove chargeable method from NonVanillaCustomItemDefinition, work on attack damage geyser component

* Implement attack damage component

* Add and implement block placer component

* Update documentation

* Write some more documentation

* Some TODOs and stuff

* Reintroduce player place null check in BlockPlaceMixin

* Make it build

* Support new equipment slots

* Introduce component converter for tool component and use in custom item registry populator

* Random stuff to make it build

* Some cleanups

* Predicate conflict detection is back, sort of, by using a bunch of record implementations for common predicates

* Add back fishing rod cast predicate

* Implement removing of default vanilla item components

* Fix the build

* Allow 0 values for max draw duration in chargeable component

* Fix applying component removals to custom items

* Allow overriding vanilla models if the model is not used by the vanilla item

* Some small changes

* Some more small changes

* Range dispatch predicate sorting and comments/documentation

* More javadocs

* Some more comments

* Add back enchantment glint override component

* Add enchantment_glint_override component reader

* Give custom items a breaking speed of 1

* Add useBlockIcon property

* Some clarifying comments

* Allow null values for cooldown group in use cooldown component

* I worked on this in 2025 too

* Let it build

* Use the right mappings

* Component Javadocs and interfaces (#3)

* Split component interfaces & record implementations, document fields, split java vs geyser data components

Also updates mappings, and introduces the GenericBuilder interface for convenience

* Address review

* Apply suggestions from code review

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>

* fix repairable mapping reader

* Small fixes and consistency things, default values for some components, shorthand constructors for BlockPlacer, Consumable, FoodProperties

* Consistency things

* Note down default component values in Javadocs

---------

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>

* Start on extended tool properties component, API is done

* Work on resolvable components/session based components

* Create CustomItemContext record

* Fix build, actually create resolvable tool properties component

* Make it run

* Register Holders builder API

* Only store ComponentCache for item stacks, debug statements

* Fix build

* Null-safety for component cache

* Fix looking up block IDs by key

* Javadocs and minor API changes

* Proper Repairable component

* Fix repairable reader

* Move v2 JSON mapping reader logic out of MappingsReader_v2 and into separate classes

* Implement legacy definitions

* Fix custom item definition sorting and legacy definition reading

* Allow passing JSON text component as display name

* First batch of Javadoc reviews

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

* Address more reviews, and some other things

* More reviews addressed

* Fix: creative item groups/categories (GeyserMC#8)

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

* interfacing of predicates (GeyserMC#7)

* interfacing of predicates

* register all interfaces in the provider registry loader

* remove reflection hack

* address review

* Apply suggestions from code review

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>

* Suggestions from review

* More things from review

* Switch from PredicateCreator to static factories

* Whoops, this one too

---------

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>

* Simplify some component converters

* Check non-vanilla item network ID for conflicts in API event call

* Clarify enchantable component Javadocs

* Clarify and test consumable animation behaviour

* Translation string javadocs

* Fix custom trident mappings not having an animation in 3rd-person (#6)

* Add throwable, projectile, entity placer components to the API

* Address reviews

* Little things

* Fix the build

* Fix: right clicking for custom items

* Account for non-vanilla item definitions in block breaking.

* Fix: creative category registration without a creative item group specified

* Use IntSet instead of List.

* New components API definitions/interfaces, still needs documentation

* Write implementations for new components

* Implement new components in custom item registry populator

* Implement new component readers

* Simplify registering data component readers

* Write documentation in the API for new components, remove some unnecessary things

* Write component converters for 1.21.11 MCPL components and use them in custom item registry populator

* Custom item registry populator cleanups, only send new context on 1.21.130 and above

* Fix trident use animation

* Fix: Read resource pack versions in string format

Fixes GeyserMC#6096

* Don't send "Ride Minecart" suggestion for tnt minecarts

* Add full support for Java ping pong packets (GeyserMC#5460)

* Add full support for Java ping pong packets

* Address reviews

* Fixed duplicated comments.

* Fixed old config code.

---------

Co-authored-by: onebeastchris <github@onechris.mozmail.com>
Co-authored-by: oryxel <gamingnoob681@gmail.com>

* Fix: item data -> item mapping lookup

supersedes GeyserMC#6053

* Truncate problematic command descriptions (GeyserMC#6095)

Command descriptions are truncated after 950 characters to comply with length limits introduced in 1.21.130 (fixes GeyserMC#6093)
Command descriptions are truncated at the first line break to avoid overlapping text in the command suggestion list (fixes GeyserMC#6094)

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

* Fix: lerp entity position to resolve weird entity position delay. (GeyserMC#6059)

* Initial work on lerping entity position

* Address review.

* Added position check, queue packets to send immediately.

* Use MoveEntityDeltaPacket instead.

* TELEPORTING flag.

* Use moveAbsoluteRaw where moveAbsolute has been previously used; hack around ender dragon parts

* Some minor fixes

* Use the new packet batch update system here as well

* correct comment.

* Fix overrides in ThrowableEntity

* Don't lerp player movement.

* Lerp old minecart movement behaviour.

* Move this to AvatarEntity instead.

* Minor changes.

---------

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

* these should not call super

* Fix: don't lerp minecart when we shouldn't (GeyserMC#6105)

* Fix: don't lerping minecart when we shouldn't

* oops.

* oops.

* more oops.

* Chore: Entity system refactor (GeyserMC#6100)

* Refactor: Entity#getGeyserId / Entity#getUuid() use now fluent getters

* Introduce EntitySpawnContext

* Remove unused offsets in entity definitions

* Fix tnt offset issue

* oops

* Fix items not displaying on brushable blocks (GeyserMC#6089)

* Fix items not displaying on brushable blocks

* Use the block registry for the type

* Lerping improvements: Use correct lerp position for moveRelative, set isOnGround when lerping (GeyserMC#6107)

* Fix: allow client vehicles to float on water (GeyserMC#6084)

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

* Fix: Display a number instead of 'false' in the connection test command. (GeyserMC#6109)

* minecarts should not desire the skies

* Fix: lunge enchantment showing up in enchantment table

* Fix: Text display offsets

The base translation for the display entity base looks wonky, but, we unfortunately cannot fix that

* fix wrong line separators

how did that even happen

* smol refactor: prefix components with Java / Geyser, prefix DataComponent / DataComponentMap

---------

Co-authored-by: Eclipse <eclipse@eclipseisoffline.xyz>
Co-authored-by: chris <github@onechris.mozmail.com>
Co-authored-by: oryxel1 <gamingnoob681@gmail.com>
Co-authored-by: Kas-tle <26531652+Kas-tle@users.noreply.github.com>
Co-authored-by: SamB440 <sam@islandearth.net>
Co-authored-by: Zachary <91029880+ookiegajwa@users.noreply.github.com>
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: ProxyCipher <154368175+ProxyCipher@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants