91573d9Update jGui, ReplayStudio and Translationsd71358bAdd confirmation dialog before overwriting path presets (fixes #65)1a55983Move addCallback method from integration test Utils to main Utils18c5bcdBe more cooperative with other mods on the ingame menu (fixes #42)c054fe8Register keys for simplepathing only once (fixes #63)f13297cFix default interpolator handling in keyframe gui and after loading (fixes #64)391f304Show error popup if entity tracker fails to load0e0eaaaFix entity tracker being set even if it failed loading (fixes #50)a34bbbcFix NPE when spectating a player without a camera entity60879fbChange local class to be an inner class because Srg2Source breaks with itdfafbecLoad translations from github repo, only reload language not all resource packs8a6ec51Add missing tooltips to player overview and various missing chat messages5677fc5Re-add warning to replay editor748a91eFix missing tooltips on fav/like/dislike buttons in replay centeree24866Fix upload replay button not being updated when name/tags changedba085cMove translations into separate repo3f0e3e7Fix NPE when receiving Replay|Restrict messages (fixes #16 GH)40e1d85Fix crash when saving the last keyframe in the edit gui (fixes #61)03aada1Update Mixin to 0.6.8 (fixes #9 GH)0c1dc65Fix interpolator being lost when moving keyframe to the end (fixes #62)fcbbbc9Add integration test. Run with ./gradlew runIntegrationTestfe6ded0Fix movement of keyframe via GuiEditKeyframe not updating selected keyframef58fa8fFix Login GUI not respecting other GUIs opened on startup4fc3a31Fix OpenEye being installed into working dir instead of mcDataDir
ReplayMod
A Minecraft mod to record game sessions and replay them afterwards from any perspective.
Building
Make sure your sub-projects are up-to-date: git submodule update --init --recursive
For each branch you visit the first time, running ./gradlew setupDecompWorkspace is necessary.
This will also be necessary if the replaymod_at.cfg file has been changed (getting errors about code that is trying
to access private fields is a good indication that this has happened).
No IDE
You can build the mod by running ./gradlew :build. You can then find the final jar files in build/libs/.
IntelliJ
For the initial setup run ./gradlew preshadowJar idea genIntellijRuns.
You also need to enable the Mixin annotation processor:
- Go to File -> Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors
- Tick "Enable annotation processing"
- Add a new entry to the "Annotation Processor options"
- Set the name to "reobfSrgFile" and the value to "$path/build/mcp-srg.srg" where you replace $path with the full path to the folder containing the gradlew file
Whenever you switch to another branch, you can either just run ./gradlew preshadowJar idea or instead run
./gradlew preshadowJar copySrg and then refresh the gradle project from within IntelliJ.
Eclipse
Development
Branches
New features are developed on the 1.8 branch and merged upwards for release. Larger features are developed on their
own branch that is based on 1.8 and then merged back once it's finished.
Features or bug fixes that apply only to a specific Minecraft version are fixed on the branch corresponding to that version and reverted when merging upwards.
Both subprojects follow a similar branching model.
The user documentation (docs folder) is only committed to on the current development branch. Any changes committed on
a branch for a more recent Minecraft version are not kept up to date on the website and should only be
of importance once support for the previous Minecraft version is dropped.
The master branch is solely to be used for the version.json file that contains a list of all versions
used by the clients to check for updates of this mod.
Versioning
The ReplayMod uses the versioning scheme outlined here with three changes:
- No
MAJORAPI, the ReplayMod does not provide any external API - "Updating to a new Minecraft version" should not increment
MAJORMOD, we maintain one version of the ReplayMod for each version of Minecraft and all these versions share the same feature set (and most bugs). We therefore try to keep the version name the same for all of them (with the exception ofMCVERSIONof course). This also means that the "Multiple Minecraft Version" section does not apply. - For pre-releases the shorter
-bXis used instead of-betaX
When a new version is (pre-)release, a new annotated tag should be added with the name of the version and the
versions.json file in the master branch should be updated. To simplify this process the gradle task doRelease can
be used: ./gradlew -PreleaseVersion=1.8-2.0.0-rc1 doRelease. It will create the tag and update the version.json
accordingly.
Care should be taken that the updated version.json is not pushed before a jar file is available on the
download page (or Jenkins) as it will inform the users of the update.
Bugs
Bugs in the mod are tracked via Bugzilla. GitHub should only be used for issues that are generally not likely to affect any end users.
Bug numbers in commits such as (fixes #42) refer to Bugzilla unless noted otherwise.
License
The ReplayMod is provided under the terms of the GNU General Public License Version 3 or (at your option) any later version.
See LICENSE.md for the full license text.