-
-
Notifications
You must be signed in to change notification settings - Fork 245
Contributing
IzzelAliz edited this page Jun 11, 2021
·
3 revisions
Contributions are welcomed, in any form.
You are welcomed to:
- sumbit bugs/feature requests to GitHub issue tracker
- submit new translations here
Prerequisite:
- Java IDE (IntelliJ IDEA is recommended)
- Java, Gradle, MinecraftForge, Bukkit understanding
- Arclight is based on Mixin. You should understand how to write Mixins, and how them work.
Setting up workspace and build:
Clone this project first, and in project folder, run gradlew remapSpigotJar
. When it's done, import this project into your IDE and refresh it.
To build Arclight, run gradlew remapSpigotJar idea
first and run gradlew build
. If you have not built it before, you need to run gradlew build
again.
Refer to https://gist.github.com/IzzelAliz/ddac7f3f1a82dd19d28e29b1da33aac1 for setting up a mojmap spigot workspace.
Porject sturcture:
-
arclight-api
contains codes that is not related to Minecraft -
arclight-common
contains most of the codes- mixins are in
io/izzel/arclight/common/mixin
package - bridge classes bridge the gap between Minecraft and Bukkit, are implemented in mixins
- other codes including the remapper are in
io/izzel/arclight/common/mod
package
- mixins are in
-
arclight-forge-<version>
contains bootstrap code and optimization mixins
Code style:
- In general, follow Google Java Style.
- Mixins should follow this implementation policy: mixin method names and bridge class names
- Shadows should wrap using
@formatter:off/on
for readability
Tips:
- You can find bukkit <-> srg mappings in
arclight-common/build/arclight_cache/tmp_srg/bukkit_srg.srg
once you built the project
Steps:
- Update forge version, mcp mappings version, spigot version in
build.gradle
- Check if
arclight-gradle-plugin
generate proper bukkit.srg mapping - Update version fields in
ArclightVersion
class, file hash inForgeInstaller
- Update upstream patches, both spigot and forge
- Update resource files, including
async-catcher.json
,accesstransformer.cfg
,bukkit.at
,extra_mapping.tsrg
(for generating refmap) - Upload new library files to
arclight.mcxk.net