Skip to content
forked from PaperMC/Paper

A Paper Minecraft fork, focusing on features and stability for the Iðavöllr server 🏰

License

Notifications You must be signed in to change notification settings

Ithavollr/Aincrad

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19,262 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aincrad 🛡️ Discord

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)

SETUP

Getting Started (new machines)

  1. Clone repo
  2. ./gradlew applyPatches from root

REPO SYNC

  1. git checkout main - switch to the main branch, that tracks Paper
  2. via Github UI, PR all new changes into main
  3. Make a list of any code that should make it into Aincrad
  4. git checkout seed
  5. git cherry-pick <new_paper_goodness_commit_hash>
  6. gradlew applyPatches - this makes sure your patch/source files are in sync. Forgetting this step will lead to errors the next time you rebuildPatches
  7. 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

BUILD

  1. Go to the gradle tasks -> bundling
  2. createMojmapBundlerJar

CHANGES

Apply Changes (per-file)

  1. Make changes (in paper-server/src/minecraft/java)
  2. ./gradlew fixupSourcePatches
  3. ./gradlew rebuildPatches

Apply Changes (feature)

  1. Make changes (in paper-server/src/minecraft/java)
  2. git add . in the java subfolder
  3. git commit -m with the patch message (it will become the patch filename)
  4. ./gradlew rebuildPatches from root

Fixup Changes (feature)

  1. Make changes (in paper-server/src/minecraft/java)
  2. git log in the same directory, find the commit hash of the target feature
  3. git commit -a --fixup <target_hash> in the java subfolder
  4. git rebase -i --autosquash base
  5. ./gradlew rebuildPatches from root

Add files for patching

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.

VERY helpful guide to patching:

PaperMC Contrib

Tip

If IntelliJ Idea is still not resolving references, go to File -> Invalidate Caches, delete the .idea folder, and restart the program.

About

A Paper Minecraft fork, focusing on features and stability for the Iðavöllr server 🏰

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%