I run a fork of paper which replaces the visibleChunks and updatingChunks
field for gc performance reasons - visibleChunks is updated via
cloning updatingChunks, and at high chunk counts this causes gc issues
due to the humongous allocation. Unfortunately the only solution is to
not clone the map - which is why the field is removed.
Instead of BukkitAdapter#getPlayerChunk using the visibleChunks field,
it now uses a MethodHandle for PlayerChunkMap#getVisibleChunk. This method is
present on spigot & paper (only protected on spigot - which is why reflection is required),
and I preserve the same thread-safety it provides in my fork - so this solution
will not break compatibility with craftbukkit, spigot, and paper.
Removed LoggingChangeSet since it wasn't functional and the majority of it was commented out.
Migrated a lot of RunnableVal implementations to Suppliers for improved readability and a very small speed improvement.
Changed Lock to subclass ReentrantLock since that is the only subclass DelegateLock should be using. The lock should also never be null so I added an annotation in the constructor.
I also removed some code and replaced it with PaperLib code to just clean up things a little bit.
Adapter updated to 1.15.2, mostly a clone of 1.15 / 1.15.1's adapter. I encountered no issues from this, but the field names for our reflections may need to be double-checked for accuracy in this Minecraft version.
- Removed duplicated dependencies
- Credited important contributors
- Updated website with an actual website
- Update DummyFawe internal version to 1.15.2