High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Go to file
Aikar d0cd5b3b23
Duplicate UUID Resolve Option
Due to a bug in 2e29af3df0
which was added all the way back in March of 2016, it was unknown (potentially not at the time)
that an entity might actually change the seed of the random object.

At some point, EntitySquid did start setting the seed. Due to this shared random, this caused
every entity to use a Random object with a predictable seed.

This has caused entities to potentially generate with the same UUID....

Over the years, servers have had entities disappear, but no sign of trouble
because CraftBukkit removed the log lines indicating that something was wrong.

We have fixed the root issue causing duplicate UUID's, however we now have chunk
files full of entities that have the same UUID as another entity!

When these chunks load, the 2nd entity will not be added to the world correctly.

If that chunk loads in a different order in the future, then it will reverse and the
missing one is now the one added to the world and not the other. This results in very
inconsistent entity behavior.

This change allows you to recover any duplicate entity by generating a new UUID for it.
This also lets you delete them instead if you don't want to risk having new entities added to
the world that you previously did not see.

But for those who are ok with leaving this inconsistent behavior, you may use WARN or NOTHING options.

It is recommended you regenerate the entities, as these were legit entities, and deserve your love.
2018-07-21 14:47:05 -04:00
.github/ISSUE_TEMPLATE [CI-SKIP] Add newlines in templates for readability 2018-05-22 16:37:23 -05:00
licenses [CI-SKIP] Clarify project licensing 2018-03-06 20:41:03 -05:00
scripts Create a symlink on not-windows to current minecraft decompile dir 2018-07-21 08:09:40 -04:00
Spigot-API-Patches Update upstream B/CB 2018-07-13 02:39:44 -05:00
Spigot-Server-Patches Duplicate UUID Resolve Option 2018-07-21 14:47:05 -04:00
work Update upstream B/CB 2018-07-13 02:39:44 -05:00
.gitignore [CI-SKIP] macOS filesystem dust made it past gitignore! 2018-03-13 18:43:13 -04:00
.gitmodules Cleanup and restructure the project 2016-04-01 23:15:41 -05:00
.travis.yml Move mc decompile source to its own folder 2017-08-12 18:56:59 -05:00
CONTRIBUTING.md Add file import and patch notes to CONTRIBUTING.md 2018-01-24 22:47:00 -05:00
LICENSE.md Avoid item merge if stack size above max stack size (#1217) 2018-07-19 10:51:55 -05:00
paper change LAST_EDIT to PAPER_LAST_EDIT for edit commands 2018-07-21 12:07:33 -04:00
pom.xml Update URLs 2018-05-19 01:29:05 -05:00
README.md Update URLs 2018-05-19 01:29:05 -05:00

Paper Build Status

High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies.

IRC Support and Project Discussion

Discord

Documentation

Access the Paper docs here: paper.readthedocs.io
Access the Paper API javadocs here: destroystokyo.com/javadocs

How To (Server Admins)

Paperclip is a jar file that you can download and run just like a normal jar file.

Download a copy of paperclip.jar from our build server, here.

Run the Paperclip jar directly from your server. Just like old times

Paper requires Java 8 or above.

How To (Compiling Jar From Source)

To compile Paper, you need JDK 8, maven, and an internet connection.

Clone this repo, run ./paper jar from bash, get files.

How To (Pull Request)

See Contributing

Special Thanks To:

YourKit-Logo

YourKit, makers of the outstanding java profiler, support open source projects of all kinds with their full featured Java and .NET application profilers. We thank them for granting Paper an OSS license so that we can make our software the best it can be.