Basically the result of the Delombok function, except we use IntelliJ's equals,
hashCode and toString and don't re-organize imports (cause that breaks the
preprocessor) and a bunch of manual cleanup was necessary (and half the classes
weren't even converted).
This fixes both, replay-exclusive keybindings blocking vanilla ones as well as
vanilla keybindings blocking replay-exclusive ones.
The magic happens in Mixin_ContextualKeyBindings.
The new preprocessor version brings first-party support for fabric, in
particular for automatically fetching mappings loom and for
automatically remapping between MC versions via intermediary mappings.
This will come in handy when updating to 1.15.
It also supports automatic remapping between fabric and forge on the
same MC version (by going mcp<->srg<->mojang<->intermediary<->yarn).
Therefore this commit replaces the previous 1.13.2 (forge) subproject
with a 1.14.4-forge one. Instead of manually providing full mappings for
1.14.4-fabric to 1.13.2-forge and partial (classes) for 1.13.2-forge to
1.12.2-forge, we now only need partial (classes) for 1.12.2-forge to
1.14.4-forge and preprocessor will take care of the forge to fabric
step (in fact, our mapping file for that is currently completely empty).
In an attempt to write an IDE (IntelliJ) plugin for quicker and easier
working with the preprocessor (e.g. immediately mapping single files
from within the IDE, jumping between different versions for the same
file), the preprocessor gradle plugin declaration now requires you to
explicitly specify variables in the common.gradle and the overall
relationship between projects in the build.gradle (latter is required
anyway, so the plugin can know where it should map between forge and
fabric and which subprojects are which versions).
Since that necessitated some changes to the build.gradle file, I took
the opportunity to convert it to Kotlin. As such we now also use
Gradle's newer plugin-block with the pluginManagement-block instead of
manually declaring buildScript (not for the common.gradle though), which
imo is nicer anyway and comes with various advantages (see gradle docs).
There were also some remapping bugs fixed and some new ones
introduced (e.g. manually declared inner class mappings seem to no
longer function properly under certain conditions).
There's also support for remapping Kotlin now. Just saying.
Failure to load the entity tracker usually (not always) results in
`entityTracker` remaining to be `null`, so there has to be an additional
condition for aborting the thenRun-loadEntityTracker-…-recursion.
The failing entity tracker really only breaks spectator keyframes.
This is also very desirable for minimal mode where entity tracker
failure is highly likely.
f36ebf1 Merge branch 1.8 into 1.8.9
08170b3 Downgrade FG to 2.1 because FG 2.2 is 1.9+ only
41d2547 Update translations
00e999f Fix replay not being closed when opened via URI scheme handler (fixes#92)
767ea29 Fix book gui not being suppressed during replay (fixes#90)
5b04edb Hide ReplayMod app entry from menus on Linux
6aff99d Fix livelock during netty write to embedded channel (fixes#85)
703805f Fix infinite loop in mc.scheduledTasks (fixes#86)
7a4440c Update ReplayStudio
0b9c56c Fix resource packs not working after first time jumping back in time
933ee5f [Compat] Fix camera entity with BetterSprinting prior to 2.0.0 (fixes#78)
83b1090 Fix hotbar being visible while spectating player (fixes#83)
5c73117 [Compat] Fix invisible entities with Orange's 1.7 Animations (fixes#78)
4704b29 Replace the RenderPlayer hook (used subclassing) with a mixin (fixes#79)
0c226b0 Fix path at end of replay resulting in constant reloading (fixes#56)
1b9b13e Rename render success sound to all lowercase (required for 1.11) (fixes#66)
c2000b3 Fix only front-facing chunks visible for ODS rendering (fixes#67)
aafeecc Fix initial login gui not closing on success (fixes#68)
9292add Use percent-encoding for replay file names (fixes#71)
8499c0f Fix name of invis armor stand with CustomNameVisible not rendering (fixes#72)
b9ea572 Try to handle invalid ffmpeg arguments more gracefully (fixes#77)
a2f8c88 Fix compression packets being recorded (fixes#80)
19629c3 Replace usages of System.out with logger
fe1d9b8 Stop Forge from allowing the mod to load on other MC versions (fixes#82)
1a1e96c Fix server with RM installed refusing clients without RM (fixes#76)
35eb9ca Replace usage of FMLLog with the mod logger
41d2547 Update translations
00e999f Fix replay not being closed when opened via URI scheme handler (fixes#92)
767ea29 Fix book gui not being suppressed during replay (fixes#90)
5b04edb Hide ReplayMod app entry from menus on Linux
6aff99d Fix livelock during netty write to embedded channel (fixes#85)
703805f Fix infinite loop in mc.scheduledTasks (fixes#86)
7a4440c Update ReplayStudio
0b9c56c Fix resource packs not working after first time jumping back in time
933ee5f [Compat] Fix camera entity with BetterSprinting prior to 2.0.0 (fixes#78)
83b1090 Fix hotbar being visible while spectating player (fixes#83)
5c73117 [Compat] Fix invisible entities with Orange's 1.7 Animations (fixes#78)
4704b29 Replace the RenderPlayer hook (used subclassing) with a mixin (fixes#79)
0c226b0 Fix path at end of replay resulting in constant reloading (fixes#56)
1b9b13e Rename render success sound to all lowercase (required for 1.11) (fixes#66)
c2000b3 Fix only front-facing chunks visible for ODS rendering (fixes#67)
aafeecc Fix initial login gui not closing on success (fixes#68)
9292add Use percent-encoding for replay file names (fixes#71)
8499c0f Fix name of invis armor stand with CustomNameVisible not rendering (fixes#72)
b9ea572 Try to handle invalid ffmpeg arguments more gracefully (fixes#77)
a2f8c88 Fix compression packets being recorded (fixes#80)
19629c3 Replace usages of System.out with logger
fe1d9b8 Stop Forge from allowing the mod to load on other MC versions (fixes#82)
1a1e96c Fix server with RM installed refusing clients without RM (fixes#76)
35eb9ca Replace usage of FMLLog with the mod logger
ed56673 Merge branch '1.8' into 1.8.9
91573d9 Update jGui, ReplayStudio and Translations
d71358b Add confirmation dialog before overwriting path presets (fixes#65)
1a55983 Move addCallback method from integration test Utils to main Utils
18c5bcd Be more cooperative with other mods on the ingame menu (fixes#42)
c054fe8 Register keys for simplepathing only once (fixes#63)
f13297c Fix default interpolator handling in keyframe gui and after loading (fixes#64)
391f304 Show error popup if entity tracker fails to load
0e0eaaa Fix entity tracker being set even if it failed loading (fixes#50)
a34bbbc Fix NPE when spectating a player without a camera entity
60879fb Change local class to be an inner class because Srg2Source breaks with it
dfafbec Load translations from github repo, only reload language not all resource packs
8a6ec51 Add missing tooltips to player overview and various missing chat messages
5677fc5 Re-add warning to replay editor
748a91e Fix missing tooltips on fav/like/dislike buttons in replay center
ee24866 Fix upload replay button not being updated when name/tags change
dba085c Move translations into separate repo
3f0e3e7 Fix NPE when receiving Replay|Restrict messages (fixes#16 GH)
40e1d85 Fix crash when saving the last keyframe in the edit gui (fixes#61)
03aada1 Update Mixin to 0.6.8 (fixes#9 GH)
0c1dc65 Fix interpolator being lost when moving keyframe to the end (fixes#62)
fcbbbc9 Add integration test. Run with ./gradlew runIntegrationTest
fe6ded0 Fix movement of keyframe via GuiEditKeyframe not updating selected keyframe
f58fa8f Fix Login GUI not respecting other GUIs opened on startup
4fc3a31 Fix OpenEye being installed into working dir instead of mcDataDir
91573d9 Update jGui, ReplayStudio and Translations
d71358b Add confirmation dialog before overwriting path presets (fixes#65)
1a55983 Move addCallback method from integration test Utils to main Utils
18c5bcd Be more cooperative with other mods on the ingame menu (fixes#42)
c054fe8 Register keys for simplepathing only once (fixes#63)
f13297c Fix default interpolator handling in keyframe gui and after loading (fixes#64)
391f304 Show error popup if entity tracker fails to load
0e0eaaa Fix entity tracker being set even if it failed loading (fixes#50)
a34bbbc Fix NPE when spectating a player without a camera entity
60879fb Change local class to be an inner class because Srg2Source breaks with it
dfafbec Load translations from github repo, only reload language not all resource packs
8a6ec51 Add missing tooltips to player overview and various missing chat messages
5677fc5 Re-add warning to replay editor
748a91e Fix missing tooltips on fav/like/dislike buttons in replay center
ee24866 Fix upload replay button not being updated when name/tags change
dba085c Move translations into separate repo
3f0e3e7 Fix NPE when receiving Replay|Restrict messages (fixes#16 GH)
40e1d85 Fix crash when saving the last keyframe in the edit gui (fixes#61)
03aada1 Update Mixin to 0.6.8 (fixes#9 GH)
0c1dc65 Fix interpolator being lost when moving keyframe to the end (fixes#62)
fcbbbc9 Add integration test. Run with ./gradlew runIntegrationTest
fe6ded0 Fix movement of keyframe via GuiEditKeyframe not updating selected keyframe
f58fa8f Fix Login GUI not respecting other GUIs opened on startup
4fc3a31 Fix OpenEye being installed into working dir instead of mcDataDir
Selecting a keyframe, double clicking it to open the gui, changing the
timestamp, saving and then clicking the Add/Remove Keyframe button used to
crash the client. This is fixed by updating the selection whenever the time is
changed.
24c58cb Merge branch '1.8' into 1.8.9
1ffeb01 Update jGui
c122d30 Merge branch '1.8-path-segments' into 1.8
27fd25a Fix crash when server responds with garbage to language query (fixes#51)
db6b0ff Fix / by 0 when two spectator keyframes are closer than 50ms (fixes#60)
d61d0ac Fix hand of invisible spectated player being visible (fixes#59)
f7460f9 Re-enable time path after path playback (fixes#55)
bdbffd5 Add Catmull-Rom spline interpolator to simplepathing
5cbfd28 Generate interpolator settings from InterpolatorType enum
6095aef Fix loading and storing of default interpolator with settings
3f52336 Revert "Fix AbstractMethodError caused by FG2.0 not supporting lambdas (fixes#58)"
c6293bc Update to FG2.2
c8126ed Merge '1.8' into 1.8.9
64898ce Fix NPE when saving recorded resource pack
70e3e54 Fix AbstractMethodError caused by FG2.0 not supporting lambdas (fixes#58)
3f2b3d6 Fix replacing source file in Replay Editor (fixes#57)
d2def94 Fix duration of replays corrupted because of JVM/OS crash
2c64030 Refactor simple pathing timeline logic into dedicated class with unit tests Fix logic for user-set interpolators
4deb374 Enable validation on focus change for all number input fields
5302bca Fix id and text of Replay Editor button in docs
057edcc Manually inject root cert for cross-signed LetsEncrypt cert in requests
cd16211 Register new Property to imply that the path segment following a keyframe has a user-set interpolator instead of the default Modified Keyframe GUI to allow for custom Path interpolator
1ffeb01 Update jGui
c122d30 Merge branch '1.8-path-segments' into 1.8
27fd25a Fix crash when server responds with garbage to language query (fixes#51)
db6b0ff Fix / by 0 when two spectator keyframes are closer than 50ms (fixes#60)
d61d0ac Fix hand of invisible spectated player being visible (fixes#59)
f7460f9 Re-enable time path after path playback (fixes#55)
bdbffd5 Add Catmull-Rom spline interpolator to simplepathing
5cbfd28 Generate interpolator settings from InterpolatorType enum
6095aef Fix loading and storing of default interpolator with settings
2c64030 Refactor simple pathing timeline logic into dedicated class with unit tests Fix logic for user-set interpolators
cd16211 Register new Property to imply that the path segment following a keyframe has a user-set interpolator instead of the default Modified Keyframe GUI to allow for custom Path interpolator