mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-23 19:15:32 +01:00
High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
bukkitcraftbukkithacktoberfestjavaminecraftminecraft-apiminecraft-performanceminecraft-serverpaperpaper-apipapermcspigot-forktacos
a2d9f33ca3
Add a check to avoid doing movement work if an entity doesn't move. This usually will not ever happen in the current server but is useful when it does and will be more useful in the future. Only process mob on mob (non-player) collisions every other tick. Players tend to pack a lot of mobs into a small space (sheep farm, mob grinder, etc) so they do a lot of work processing collisions. To help alleviate some of this we only run these calculations every other tick. This has no visible effect on the client but can be a huge win on the server depending on circumstances. Use generic entity inWater checking for squids. Squids have their own logic currently for determining if they are in water. This check is almost identical to the generic entity checking which is run anyway. To avoid doing duplicate work we just remove the squid version. This does not have any noticeable effect on gameplay since the checks are so similar. Use HashSet for tile entities instead of ArrayList. Using an ArrayList for storing tile entities in a world means we have very expensive inserts and removes that aren't at the end of the array due to the array copy this causes. This is most noticeable during chunk unload when a large number of tile entities are removed from the world at once. Using a HashSet here uses a little more memory but is O(1) for all operations so removes this bottleneck. |
||
---|---|---|
src | ||
.gitignore | ||
CONTRIBUTING.md | ||
LGPL.txt | ||
LICENCE.txt | ||
pom.xml | ||
README.md |
CraftBukkit
A Bukkit (Minecraft Server API) implementation
Website: http://bukkit.org
Bugs/Suggestions: http://leaky.bukkit.org
Contributing Guidelines: CONTRIBUTING.md
Compilation
We use maven to handle our dependencies.