SNWCreations / Citizens2Legacy

Fork of Citizens2 to bring back the support for Minecraft 1.18.2, 1.20.1 and 1.20.4 | No binaries provided, compile it by yourself.
Other
0 stars 0 forks source link

Citizens2Legacy

This project brings back the support of older Minecraft versions for Citizens 2.

This branch is for Minecraft 1.20.1.

Developed for The SRS Project because our tech stack is based on Minecraft 1.20.1.

This is based on (my fork of) GitPatcher, it makes us maintain the patches easier. See my fork of it there: Link

Supported versions

This repository contains support for the following Minecraft versions:

Did not find the version you want?

If the version you want is the latest patch version of that major Minecraft version (e.g. 1.18.2 is the latest patch for 1.18) and the support module of it is not removed, you can just clone the upstream Citizens repository, and then compile it using the full profile, the resulting jar maybe very big, but it will work well if compilation succeeded. However, the versions that not included in spigot-release profile will NOT be supported by CitizensDev. You'll have to deal with the errors by yourself. DO NOT ASK ME FOR SUPPORT, I JUST GIVE YOU A WAY.

If not, you'll have to do backport by yourself, just like what this repository did. DO NOT ASK ME TO ADD MORE SUPPORT. I only consider adding more support for a random MC version when I'm bored. To be honest, there's really no need to stop at a particular patch version if possible.

Compiling

Run git submodule update --init if you forget to add --recurse-submodules flag while cloning this repository, this make sure the upstream repository exists so the patch would be able to be applied.

Run gradlew applyPatches to apply the patches to the upstream project.

Now the patched project is ready at target folder, use Maven to compile it, and you're good to go.

Work with this project

This project (excluding the upstream part) is only used to patch the upstream using our own patches, so changes to the project should be commited to the target submodule.

The upstream submodule is only used to sync with the upstream. DO NOT MODIFY IT.

When updating the project is needed, run git pull in upstream submodule to sync with upstream, and then run gradlew applyPatches to apply patches, solve the conflict and then use Git CLI to continue the process of applying patch, if any.

When your patches are commited to the target repository, run gradlew makePatches to export them.

After that, your patches are ready to be commited to the bootstrap repository (this project).

If you're working with several Minecraft versions at the same time, DO NOT merge the different branches as the patches will break, Git will just tell you "patch does not apply, did you hand edit the patch"?

Disclaimer

This project is unaffiliated with CitizensDev and will NOT be supported by them.

DO NOT EXPECT THIS ALWAYS WORK, NO WARRANTY. If it does not work, you'll have to deal with the exceptions by yourself. Although issues are welcome, but I am still just focus on 1.20.1 unless my project has moved to other Minecraft version.

License

Copyright (C) 2024 SNWCreations.

This project and the patches to the upstream project inside this project are licensed under Open Software License 3.0, see LICENSE file in this repository for the license content.