-
-
Notifications
You must be signed in to change notification settings - Fork 806
Fix: lerp entity position to resolve weird entity position delay. #6059
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Camotoy
reviewed
Jan 3, 2026
core/src/main/java/org/geysermc/geyser/entity/type/Tickable.java
Outdated
Show resolved
Hide resolved
Camotoy
reviewed
Jan 3, 2026
onebeastchris
approved these changes
Jan 4, 2026
core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java
Outdated
Show resolved
Hide resolved
core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java
Outdated
Show resolved
Hide resolved
onebeastchris
approved these changes
Jan 5, 2026
Member
onebeastchris
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Member
|
This might also close #4945 |
Collaborator
Author
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? |
Member
|
nah i didnt touch arrows there |
Collaborator
Author
|
oh |
… around ender dragon parts
…ty-delay-fix # Conflicts: # core/src/main/java/org/geysermc/geyser/entity/type/LivingEntity.java
…xel1/entity-delay-fix
core/src/main/java/org/geysermc/geyser/entity/type/player/PlayerEntity.java
Outdated
Show resolved
Hide resolved
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.