This is the custom server code used in the Minecraft world of Iðavöllr.
Changes from PaperMC
- Edit max speeds so minecart > horse > ice boat (paddles only, sails should still be fast)
- Implement Giants AI
- Add new source of Levitation Effect
- Strongly suggest Villagers do not swim
- Make Shulkers aquatic, fix shulker bullet water pathing
- Make Chorus fruit aquatic (TODO: add client mixin for ChorusNNBlock.getFluidState)
- Implement Purpur rideables
- Implement Villager Tasks (Armorer heals golems, Priest heals villagers)
- Implement Smallships
- Implement Accessories
- Implement Sparkly per-world ticking
- Integrate Denizen for all entity goals & behaviours
- Merge NMS/world/entity/ai/behavior
- Merge NMS/world/entity/ai/goal
- Find out how Brain.java is leaking default-world POI's to serverLevelTickExecutors (so far detected in
SetWalkTargetFromBlockMemory&AssignProfessionFromJobSite)- Re-implement SmartBrainLib
- Clone repo
./gradlew applyPatchesfrom root
git checkout main- switch to the main branch, that tracks Paper- via Github UI, PR all new changes into main
- Make a list of any code that should make it into Aincrad
git checkout seedgit cherry-pick <new_paper_goodness_commit_hash>gradlew applyPatches- this makes sure your patch/source files are in sync. Forgetting this step will lead to errors the next time yourebuildPatches- Push the changes back to origin, all done!
Note
for mistakes,
Reset all non-committed local changes: git reset --hard
Reset branch to remote state: git reset --hard origin/seed
Reset to specific commit: git reset --hard <commit-hash>,
then git push origin seed --force
Tip
Current sync status tracked here
- Go to the gradle tasks -> bundling
createMojmapBundlerJar
- Make changes (in paper-server/src/minecraft/java)
./gradlew fixupSourcePatches./gradlew rebuildPatches
- Make changes (in paper-server/src/minecraft/java)
git add .in the java subfoldergit commit -mwith the patch message (it will become the patch filename)./gradlew rebuildPatchesfrom root
- Make changes (in paper-server/src/minecraft/java)
git login the same directory, find the commit hash of the target featuregit commit -a --fixup <target_hash>in the java subfoldergit rebase -i --autosquash base./gradlew rebuildPatchesfrom root
find the file needed using "view source" or manually in the gradle cache, add the full classpath to ./build-data/dev-imports.txt, run the Gradle task "applyPatches", and you should be able to find your new NMS file in the ./Paper-Server dir.
Tip
If IntelliJ Idea is still not resolving references, go to File -> Invalidate Caches, delete the .idea folder, and restart the program.