Commit Graph
100 Commits
Author SHA1 Message Date
Jonas Herzig 193e51b3c2 Release 2.6.19 2024-09-09 13:27:52 +02:00
Jonas Herzig a0c5f25e61 Update ReplayStudio 2024-09-09 13:22:04 +02:00
Jonas Herzig 8503ff0e67 Remove unnecessary manual mappings 2024-09-09 13:22:04 +02:00
Jonas Herzig 73fe633819 Update preprocessor 2024-09-09 13:22:04 +02:00
Jonas Herzig 9f5a8c3d0f Release 2.6.18 2024-07-12 12:42:10 +02:00
Jonas Herzig 5959da8744 Fix LoginSuccess packet being recorded with incorrect id on 1.20.2-4 2024-07-12 12:38:17 +02:00
Jonas Herzig 6de0e37d96 Release 2.6.17 2024-07-10 22:06:28 +02:00
Jonas Herzig 5b766b4fe7 Fix included mod jars being exploded into outer jar
Caused by this stupid behavior of the shadow plugin:
https://github.com/johnrengelman/shadow/issues/111

Fixes #976
2024-07-10 22:04:38 +02:00
Jonas Herzig 203aad687d Release 2.6.16 2024-07-10 19:37:17 +02:00
Jonas Herzig 1836b7fb18 Fix Iris shader animation time on 1.21 2024-07-10 19:07:19 +02:00
Jonas Herzig ca6ae4b983 Fix ODS export with Iris 1.7 2024-07-10 19:07:00 +02:00
Jonas Herzig d2cdcb02fc Remove unnecessary isTransitive exclusion
Now that it's using Modrinth maven, there won't be any transitive
dependencies anyway.
2024-07-10 18:20:19 +02:00
Jonas Herzig b537822d3c Enable Gradle daemon
Now that we no longer have to deal with ForgeGradle, we can actually use
this pretty fundamental Gradle feature again.
2024-07-10 17:36:01 +02:00
Jonas Herzig 6b5993ad64 Fix post-screenshot popup being invisible while HUD is hidden 2024-07-07 11:02:41 +02:00
Jonas Herzig b4ead9e064 Update ReplayStudio
1e96fda Fix SquashFilter dropping config-phase custom packets
2024-07-07 10:32:55 +02:00
Jonas Herzig 8adb65d724 Move old mapping files to standard location 2024-07-01 12:48:23 +02:00
Jonas Herzig 329530de0e Update ReplayStudio so it works via includeBuild 2024-07-01 12:24:53 +02:00
Jonas Herzig a04fd5b00b Move ReplayStudio submodule into libs folder 2024-06-30 20:27:59 +02:00
Jonas Herzig 486056de24 Fix recording whith login-phase custom packets 2024-06-25 10:31:12 +02:00
Jonas Herzig 2b2ab2ba8b Fix time keyframe lines rendering below timeline 2024-06-25 10:30:43 +02:00
Jonas Herzig d70e41006d Add ReplayStudio as submodule instead of JitPack
Because JitPack breaks Gradle variants so we get the Java 17 jar even
when we use the Java 8 variant.

This works for building via Gradle. However it does not work for usage
from IntelliJ, where you must currently publishToMavenLocal ReplayStudio
and then depend on that version. Still looking for a better solution
there.
2024-06-23 21:41:18 +02:00
Jonas Herzig a4e0abec7f Update to 1.21 2024-06-23 20:33:41 +02:00
Jonas Herzig 1433fccaf1 Update EGT to 0.6.1 2024-06-23 20:24:57 +02:00
Jonas Herzig 310dc90e11 Remove WrappedTimer 2024-06-23 20:24:57 +02:00
Jonas Herzig 454e990849 Replace InputReplayTimer with Mixin 2024-06-23 20:24:57 +02:00
Jonas Herzig 76a68b7867 Prevent pausing in the middle of a bundle packet
Because certain actions (e.g. switching to Quick Mode) will fail in this
state.
2024-06-23 20:24:57 +02:00
Jonas Herzig 5218feb6b6 Update to 1.20.6 2024-06-23 20:24:57 +02:00
Jonas Herzig 3f12413c6b De-duplicate recording channel configuration 2024-06-23 20:07:57 +02:00
Jonas Herzig 675134e6d6 Split outbound handler from FullReplaySender
This because with 1.20.6, MC will require outbound messages to reach its
handlers to switch between protocol versions. So we need our drop
handler two be at the very end of the write processing chain.
2024-06-23 20:07:57 +02:00
Jonas Herzig 4df627029c Fix race condition in PacketListener
The ChannelHandlerContext was only set on the next received packet,
however `save` could be called before that happened.
2024-06-23 20:07:57 +02:00
Jonas Herzig 046a50f326 Target WorldRenderer in Mixin_PostRenderWorldCalback 2024-06-23 20:07:57 +02:00
Jonas Herzig f388e4af54 Update MixinExtras and include it on all Fabric versions 2024-06-23 20:07:57 +02:00
Jonas Herzig 8900d5a4fb Split MixinGameRenderer into multiple mixins 2024-06-18 14:50:34 +02:00
Jonas Herzig acd56a7ba3 Remove player list packet entry workaround
No longer using ForgeGradle \o/
2024-05-13 17:33:06 +02:00
Jonas Herzig c74ef8c0e4 Let Minecraft handle packet decoding during recording
We've done this ourselves only because it was easier at the beginning.
However with 1.20.5, Minecraft's packet decoding became substantially
more sophisticated, to the point that it's probably a bad idea to try
to do it ourselves.

Additionally, getting the packet ids, which we require for identifying
the packets which we want to decode, has becomes significantly more
difficult too, and this way it's a simple instanceof check.
2024-05-13 17:01:03 +02:00
Jonas Herzig fe0677923c Let Minecraft handle packet decoding during playback
We've done this ourselves only because it was easier at the beginning.
However by now (and especially with 1.20.5), Minecraft's packet decoding
has become substantially more sophisticated, to the point that it's
probably a bad idea to try to do it ourselves.

This commit gives back that responsibility to Minecraft by adding the
standard decoder (and encoder because it's required for proper
connection state management on modern versions) to our channel pipeline,
changes the full and the quick replay sender to send raw `ByteBuf`s into
the front of the channel, and moves the posititon of the full replay
sender in the channel pipeline such that it can see and modify packets
after Minecraft has decoded them.
2024-05-13 15:25:50 +02:00
Jonas Herzig ad49a69f37 Switch from FG to archloom + essential-gradle-toolkit
- Upgrade Gradle to 8.7
- Increase build daemon max memory to 8GB because archloom can compile a lot
  more projects at the same time.
- Disable Minecraft 1.8 (not 1.8.9) because archloom fails to set up for that
2024-05-12 14:24:43 +02:00
Jonas Herzig 706d46f6a9 Release 2.6.15 2024-03-10 18:05:59 +01:00
Jonas Herzig c11fffedc1 Update ReplayStudio
95a7c07 Process PlayerPositionRotation packet in SquashFilter
603bdce Create dedicated class for PacketPlayerPositionRotation
88343aa Fix incorrect order of ViaVersion-emitted packets
9ebaa97 Fix 1.20 to 1.20.2 ViaVersion conversion
c490e9f Update ViaVersion
bcccb2c Fix Reconfigure packets not being filtered out
a0df6c9 Fix ConfigFinish being emitted before other config packets
a672023 Separate pre-join-game packets from login-phase packets
a70161c Emit Reconfigure packet when required
074d78d Separate "emit first" list from "login phase" list
20a3bf9 Reorder loginPhase and configurationPhase code
2024-03-10 18:02:19 +01:00
Jonas Herzig ba6078e080 Update jGui, fixes JPG loading on 1.20.4+ 2024-03-10 16:30:25 +01:00
Jonas Herzig f8379fa317 Fix thread-unsafe server resource pack playback 2024-03-10 16:29:31 +01:00
Jonas Herzig 61ef87eebe Release 2.6.14 2023-12-12 15:11:49 +01:00
Jonas Herzig 6e5536305b Bump 1.20.2 fabric-api to version 0.92.2 2023-12-09 10:43:26 +01:00
Jonas Herzig 1bf1e0d7be Port to 1.20.4 2023-12-09 10:43:26 +01:00
Jonas Herzig faebeb525a Port to 1.20.3-rc1 2023-12-03 18:51:37 +01:00
Jonas Herzig 43576efeb3 Convert JPG images to PNG
Minecraft 1.20.3 no longer supports loading JPG images.
2023-12-03 16:28:28 +01:00
Jonas Herzig b8ab7aa5a7 Port to 1.20.2 2023-11-27 19:40:42 +01:00
Jonas Herzig e8f9234bf0 Fix EXR rendering failing on Windows on MC 1.20+ 2023-11-27 17:55:13 +01:00
Jonas Herzig 329ac51309 Fix rubber-banding on rotation of entity in vehicle (fixes #846) 2023-11-13 13:51:47 +01:00
Jonas Herzig f506d5ac65 Fix missing networking-api-v1 on 1.16.4/5
We recently bumped the fabric-api version there, and newer versions of the v0
api just delegate to the v1 one now, so we need to include that there as well.
2023-10-18 12:09:59 +02:00
Jonas Herzig 96dbc54a53 Fix Iris dependency
Seems like it no longer builds on JitPack and their cache has expired.
2023-10-18 12:09:13 +02:00
Jonas Herzig 094ca1ce01 Release 2.6.13 2023-06-20 09:44:55 +02:00
Jonas Herzig 24237557f1 Port to 1.20.1 2023-06-20 09:31:07 +02:00
Jonas Herzig d8c6ce9b5e Clean up 1.17 .gitkeep file 2023-06-12 11:04:25 +02:00
Jonas Herzig 7726550131 Port to MC 1.20 2023-06-12 10:28:08 +02:00
Jonas Herzig 96a05e256f Add MixinExtras on 1.16.4+
We'll use it in 1.20 mixins.
Unclear what minimal fabric-loader version it requires, so in the interest of
keeping older versions compatible with OptiFabric (old versions of which aren't
compatible with the latest fabric-loader), we'll add it to 1.16.4+ only.
2023-06-12 10:28:08 +02:00
Jonas Herzig 587eff59fe Rewrite main menu button injection code (closes #577, fixes #621)
For 1.16.4+ only because we use parts of fabric-screen-api.
2023-06-12 10:23:21 +02:00
Jonas Herzig f92d6f5281 Fix overlay gui elements not moving on resize (fixes #841) 2023-06-12 09:07:45 +02:00
Jonas Herzig fb4ae1b60a Delegate bindTexture to jGui's MCVer 2023-06-12 09:05:42 +02:00
Jonas Herzig 0c5009db8d Drop 1.17 in favor of 1.17.1
Primarily because fabric-api for 1.17 never received any updates, so
fabric-screen-api isn't available for it.
2023-06-12 08:49:15 +02:00
Jonas Herzig 81509a9acf Release 2.6.12 2023-03-28 12:24:16 +02:00
Jonas Herzig fd740a4af6 Update ReplayStudio 2023-03-28 12:23:18 +02:00
Jonas Herzig 36741b97fa Release 2.6.11 2023-03-26 19:43:21 +02:00
Jonas Herzig bf32672536 Fix active timeline changes affecting render queue (fixes #814)
The `Timeline` type is mutable, so we need to create a copy before we pass it to
GuiKeyframeRepository because we don't want anything stored in there (or more
specifically in render queue which can also be added to from that gui) to be
affected by subsequent changes.
2023-03-26 19:21:30 +02:00
Jonas Herzig 8037a9ad30 Fix ridden boat missing when joining 1.18+ Spigot server 2023-03-26 18:59:14 +02:00
Jonas Herzig 78bd060249 Port to MC 1.19.4 2023-03-26 18:58:49 +02:00
Jonas Herzig ae5f893014 Release 2.6.10 2022-12-09 13:16:17 +01:00
Jonas Herzig 043664ab0c Fix multiplayer recording on 1.19.3 (fixes #803) 2022-12-09 13:14:56 +01:00
Jonas Herzig 9a5b88fd48 Release 2.6.9 2022-12-07 16:35:51 +01:00
Jonas Herzig 77ce90b2b0 Disable MixinShaderRenderChunk on 1.18+
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.
2022-12-07 16:34:55 +01:00
Jonas Herzig 3816671207 Fix depth export on 1.14.4 2022-12-07 16:34:55 +01:00
Jonas Herzig 000ff19749 Fix depth export while spectating on 1.12.2 and below (fixes #785) 2022-12-07 16:34:55 +01:00
Jonas Herzig ffcca61b5b Fix running in 1.14.4 dev environment
First version of modmenu in its repo appears to be for 1.15, so we need to
disable it in 1.14.
2022-12-07 16:34:55 +01:00
Jonas Herzig d571e8fed5 Port to MC 1.19.3
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.
2022-12-07 16:34:55 +01:00
Jonas Herzig e8ea70aabc Port to MC 1.19.2 (fixes #801) 2022-12-07 16:34:50 +01:00
Jonas Herzig e0a682a5df Fix armor missing after dimension change (fixes #791)
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).
2022-12-06 18:01:07 +01:00
Jonas Herzig 19404032fe Fix jGui resource pack when using per-version run folder 2022-12-06 17:51:55 +01:00
Jonas Herzig bee13fc9a1 Replace projection matrix Redirect with ModifyArg
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.
2022-12-06 17:37:15 +01:00
Jonas Herzig 3cec8fde9f Release 2.6.8 2022-08-10 14:29:15 +02:00
Jonas Herzig cce65ec76d Ignore expired player public keys during replay
These would otherwise fail to be initialized and cause the game to disconnect
itself on the first chat message from the corresponding player.
2022-08-10 14:22:21 +02:00
Jonas Herzig 06f1e0c36c Fix chat message validation failure when Show Chat is off on 1.19.1+ 2022-08-10 14:22:21 +02:00
Jonas Herzig 35d1b7f24b Fix game crashing if client disconnects from replay during jump 2022-08-10 13:47:47 +02:00
Jonas Herzig 82d4408567 Add missing MC 1.19.1 .gitkeep file 2022-07-31 14:38:54 +02:00
Jonas Herzig e8ff8a2066 Release 2.6.7 2022-07-31 13:46:49 +02:00
Jonas Herzig ff98260216 Fix build on MC 1.8 2022-07-31 13:46:01 +02:00
Jonas Herzig c34f75d95a Fix item staying visually equipped after being dropped (fixes #658) 2022-07-31 13:03:43 +02:00
Jonas Herzig 62b9cd0538 Use DefaultedList for equipment tracking
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).
2022-07-31 13:03:43 +02:00
Jonas Herzig 42d04d123c Deduplicate code 2022-07-31 12:55:54 +02:00
Jonas Herzig 7550e3dcb7 Fix race conditions in movement packet filtering (fixes #760)
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.
2022-07-31 12:55:54 +02:00
Jonas Herzig af3f6ddbe2 Always handle PlayerPositionLookS2CPacket manually 2022-07-31 12:48:39 +02:00
Jonas Herzig 962f08718f Fix "Show Chat" setting on 1.19+ (fixes #757) 2022-07-31 10:38:14 +02:00
Jonas Herzig a9401a9779 Update ModMenu 2022-07-31 10:38:07 +02:00
Jonas Herzig 400ec6bda5 Port to MC 1.19.1 2022-07-31 10:37:22 +02:00
Jonas Herzig bdea84b9a2 Remove unused GuiMainMenuAccessor 2022-07-31 10:22:20 +02:00
Jonas Herzig 6db47ee070 Updated broken forge docs link 2022-07-31 10:22:11 +02:00
Jonas Herzig a95edaa31d Update translations 2022-07-31 09:30:19 +02:00
Jonas Herzig 738320e896 Update translations 2022-07-17 23:03:44 +02:00
Jonas Herzig 6e3d30e41b Fix thread unsafety in OpenGlToBitmapProcessor
Sharing the temporary `row` and `rowSwap` buffers between different calls to the
processor is not safe because it will be used by multiple threads.
As a result some of the rows in the image could randomly get corrupted.

This commit gets rid of the cached buffers (the value of which questionable
anyway) and simply re-uses the same code which other processors use.
2022-07-17 17:08:03 +02:00
Jonas Herzig 633ac10d89 Fix main hand in first person spectator view (fixes #731) 2022-07-17 17:08:03 +02:00
Jonas Herzig 42aef017c1 Fix skin in Player Overview and first person on 1.8.9 (fixes #749)
No clue why `getResourceLocationForPlayerUUID` was implemented the way it was,
that commit dates back to 2015 (332c36a), but if the skin isn't loaded yet, it
won't load it, so sometimes it just won't show properly in first person and in
the Player Overview.
This commit just calls `AbstractClientPlayer.getSkinTexture` instead.

Unclear which MC versions are affected. At some point before 1.16.4 something
else was introduced which loads the skin for us, hence why modern versions were
not affected.
2022-07-17 16:02:41 +02:00