Fork of Paper which adds regionised multithreading to the dedicated server.
Go to file
Spottedleaf 093b1e5394 Fix several issues, mostly saving pending teleporting entities
The place/portal async function now track entities that have been
removed from the world but have not teleported. When the server
shuts down, these entities will have their passenger tree restored
and re-added to the entity slices at the location they were teleporting to,
or in the case of portals that did not run placeAsync yet,
the location they entered the portal on. This should ensure that
for regular teleports that the entity is placed at its correct
target location, and for portalling to ensure that either
the entity is placed at the portal entrace location (where
they entered) or the portal destination. In any case,
the entity is preserved in a location and will survive
the shutdown.

Additionally, move player saving until after the worlds save. This
is to ensure that the save logic is performed only after
all teleportations have completed.

Fix some other misc issues as well:
 - Fix double nether portal creation by checking if a portal exists again
   before creating it, fixing a race condition where two entites would portal
   and neither would see that the other created a portal.
 - Make all remove ticket add an unknown ticket.
   In general this behavior is better since it means that unloads will only
   ever occur at the next tick, rather than during the tick logic. Thus,
   there will be no cases where a chunk is unloaded unexpectedly.
 - Do not use fastFloor for calculating chunk position from block position
   It is not going to return a good value outside of [-1024, 1024]
 - Always perform mid tick update for ticking regionised player chunk loader
   If no entities were loaded, no chunks were loaded, and nothing else -
   the logic would not have otherwise ran. This fixed some rare cases of
   chunks never loading for players after logging in.
2023-03-01 19:12:31 -08:00
.github/workflows Update 2022-12-13 14:27:38 -07:00
build-data Add blank reobf-mappings-patch.tiny 2021-11-03 21:34:49 -07:00
gradle/wrapper Update gradle wrapper 2022-12-13 14:42:49 -07:00
patches Fix several issues, mostly saving pending teleporting entities 2023-03-01 19:12:31 -08:00
.editorconfig its working now 2021-06-12 20:04:04 +02:00
.gitattributes its working now 2021-06-12 20:04:04 +02:00
.gitignore Implement BlockEntity#updateTicks 2023-02-23 12:52:39 -08:00
build.gradle.kts Make the StructureCheck class MT-Safe 2023-02-23 23:35:30 -08:00
gradle.properties Initial commit 2023-02-23 08:13:45 -08:00
gradlew Update gradle wrapper 2022-12-13 14:42:49 -07:00
gradlew.bat Update gradle wrapper 2022-12-13 14:42:49 -07:00
jar.bat Shorter name for jar script 2023-02-28 06:54:53 -08:00
patch.bat Add some build scripts 2023-02-28 06:48:48 -08:00
rb.bat Add some build scripts 2023-02-28 06:48:48 -08:00
README.md Update README 2022-04-21 20:45:48 -07:00
regiontodo.txt Fix several issues, mostly saving pending teleporting entities 2023-03-01 19:12:31 -08:00
settings.gradle.kts Initial commit 2023-02-23 08:13:45 -08:00

ForkTest - A Paper fork, using paperweight

This is an example project, showcasing how to setup a fork of Paper (or any other fork using paperweight), using paperweight.

The files of most interest are

  • build.gradle.kts
  • settings.gradle.kts
  • gradle.properties

Tasks

Paperweight tasks
-----------------
applyApiPatches
applyPatches
applyServerPatches
cleanCache - Delete the project setup cache and task outputs.
createMojmapBundlerJar - Build a runnable bundler jar
createMojmapPaperclipJar - Build a runnable paperclip jar
createReobfBundlerJar - Build a runnable bundler jar
createReobfPaperclipJar - Build a runnable paperclip jar
generateDevelopmentBundle
rebuildApiPatches
rebuildPatches
rebuildServerPatches
reobfJar - Re-obfuscate the built jar to obf mappings
runDev - Spin up a non-relocated Mojang-mapped test server
runReobf - Spin up a test server from the reobfJar output jar
runShadow - Spin up a test server from the shadowJar archiveFile

Branches

Each branch of this project represents an example: