Yatopia/patches/Empirecraft
Simon Gardling 15bf6a2103
Updated Upstream and Sidestream(s) (Paper/Tuinity) (#430)
* Updated Upstream and Sidestream(s) (Paper)

Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Paper Changes:
808bd9198 Add fast alternative constructor for Vector3f (#5339)
e849c51da fix #5336
0b25bacfc fix patch 'Remove streams from SensorNearest' (fixes #5330)
4d287e31c Use Adventure for `/version` command feedback, add copy to clipboard click event (#5333)

* Updated Upstream and Sidestream(s) (Tuinity)

Upstream/An Sidestream has released updates that appears to apply and compile correctly
This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing.

Tuinity Changes:
19ac660 Move region chunk unload & poi unload hook up
38ad5a1 Do not run close logic for inventories on chunk unload
fb75a6f Do not allow the server to unload chunks at request of plugins
2021-03-11 10:56:46 -06:00
..
patches Updated Upstream and Sidestream(s) (Paper/Tuinity) (#430) 2021-03-11 10:56:46 -06:00
README.md Use modified toothpick for our build & patch system. 2021-01-21 12:58:52 +02:00

EmpireCraft

What

EmpireCraft is a fork of Spigot used by the Empire Minecraft Server.

It contains many gameplay changes to suit our server, but more importantly, contains new performance improvements pending testing to be contributed to Spigot / Paper / Sponge.

We also have many APIs that we privately use but choose not to publicly PR upstream.

Why we don't release all APIs

APIs are tough to design. In public projects such as Bukkit, Spigot, Paper, etc., once an API is commited, it's almost forever. You can't go breaking it without solid justification. This is the politics game.

With that in mind, much thought has to be given to our APIs in current and future use cases and applications to ensure it can be extended without breaking.

This is a lot of politics that we don't have time in our lives to deal with.

Therefore, we write APIs to OUR base needs, which is often not 'complete' or 'up to style guidelines' of upstream repositories. We do not have the time to write code that we personally do not need for these APIs.

We also want to retain the ability to make breaking changes to these APIs if it results in a better way to do things or performance improvements.

By contributing it upstream, we would give up that power.

So that is why we have many extremely useful APIs that are not PR'd upstream.

License, Support, & Usage of Patches

All patches written by Aikar, Starlis LLC, and/or Contractors of Starlis LLC that are included within EmpireCraft are licensed MIT, and are free to be used in your own fork.

We offer ABSOLUTELY NO SUPPORT for these patches. If you wish to use them, you must take the effort to extract them from our repo, apply them to your own, and repair any code changes to get it to compile (note: we use a .callEvent() utility method on the Event class for nearly all custom events to reduce diff.)

If we make any breaking changes, and you still wish to use these patches, it's your job to fix the changes!

So in summary, we love to share! Use anything we wrote in this repo how ever you please, but support it yourself :)

OS Support & Scripts

We only directly support the latest LTS Ubuntu for shell scripts. It may work elsewhere... but no promises.

Many scripts will try to push to our repos, please change that if you fork :)

scripts/importmcdev

Imports specific files from mc-dev that CB/Spigot doesn't use, but we need.

scripts/generatesources

Generates an mc-dev folder that can be added to IDE for the other mc-dev files located in minecraft-server.jar.

scripts/rebuildpatches

Rebuilds patch state from the EmpireCraft-* repo's current state. Automatically handles patch deletion and renaming for you, unlike Spigot's version of these scripts.

scripts/applypatches

Takes current patches, i.e., Bukkit & CraftBukkit, and applies them on the latest Spigot upstream.