forked from ReplayMod/ReplayMod
-
Notifications
You must be signed in to change notification settings - Fork 0
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
update upstream #2
Open
DaCubeKing
wants to merge
149
commits into
DaCubeKing:fovkeyframes
Choose a base branch
from
ReplayMod:develop
base: fovkeyframes
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
This is necessary so we can add mod dependencies via modImplementation.
Also using Kotlin+Elementa instead of jGui now. The new button is on the right side, so the status indicators have temporarily been moved to the far left. Once converted to Elementa, they can be positioned properly.
Cause we'll be adding more buttons there.
Cause the MCP site is now offline.
E.g. from the Replay Viewer while it is still being recovered. Because that would potentially corrupt it.
Used to always be super short because that method returns 0 when `isSubmergedIn` returns false.
MC uses the client-side position of an entity to determine whether it is inside the simulation range and therefore whether it will get ticked. For some (most) entities it interpolates the client-side position to match the server-side one inside of the tick method... no prices for guessing where this goes wrong. Somewhat similar to the issue we have with chunk unloads which we work around in FullReplaySender but worse cause they'll get stuck if they ever leave the sim range even for a single tick, rather then just when their chunk is unloaded.
We cannot filter this packet purely on the netty thread because our filter depends on the current camera position (if it's too far, we do want to teleport it closer) and accessing the camera is only safe from the main thread. Previously the second part had not been considered which could lead to race conditions where the camera may not yet exist on the netty thread at time of handling. These appear to have gotten the wholly inappropriate "just put a null check around it" treatment, but that means that the filter sometimes doesn't work (hence the bug report). This commit changes handling such that all access to `allowMovement` is always done on the main thread and then moves the filtering there as well. And therefore filtering should now work properly.
Because on 1.11+ a `null` item stack is not something that should exist. This then also allows us to compare item stacks by value rather than only by reference, potentially saving a few redundant entity equipment update packets (but more importantly, also allows us to store a copy instead of the original, which will be important for the next commit).
These would otherwise fail to be initialized and cause the game to disconnect itself on the first chat message from the corresponding player.
Should be better for compatibility because multiple mods can ModifyArg but only one can Redirect, and will be easier to port to 1.19.3.
The respawn packet re-creates the player entity, so we need to re-send its armor (and technically also the riding and sleeping state, though that probably wouldn't ever have caused issues in practice because a respawn will implicitly reset those, unlike your inventory which is preserved).
Building against 1.19.3-rc3 for now because 1.19.3 has yet to release. ReplayStudio/ViaVersion is already targeting the release version though.
First version of modmenu in its repo appears to be for 1.15, so we need to disable it in 1.14.
It's only required for legacy Optifine doesn't even apply any more as of 1.18, so we can just disable it on modern versions so it doesn't spam the log.
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.
No description provided.