Commit Graph

402 Commits

Author SHA1 Message Date
Aikar f16d938497 Paper 1.9.2 Update 2016-03-30 20:50:23 -04:00
Aikar fb94038453 Use FastUtil Long/Int HashMap's
For DataWatcher, swap out plain Integer key HashMap for a Int2ObjectOpenHashMap
For ChunkProviderServer, swap out CB's custom LongHashMap with Long2ObjectOpenHashMap

These collections are super fast as seen
http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/
2016-03-30 02:10:27 -04:00
Zach Brown 50811b1ca5 Skip dead entities in getEntity(UUID) API 2016-03-30 09:41:12 -05:00
DemonWav 443a949bac Add getEntity by UUID API 2016-03-30 01:20:36 -05:00
Zach Brown 3a4b55aa5d Put this patch in the patches folder, so it's actually used 2016-03-29 13:56:19 -05:00
Antony Riley 4b5902de92 Sanitise RegionFileCache and make cache size configurable. 2016-03-29 08:27:14 +03:00
Fabse 2a3cfd15eb Add a workaround for bugged Minecart drop names 2016-03-28 00:52:36 +02:00
Aikar 88ef71592b Remove, not invalidate, Metadata on reload
Objects loaded over different class loaders are not the same. Nasty dragons lie here.

Also clean up the previous patch to no longer butcher imports.
2016-03-28 22:43:05 -04:00
Aikar 553319f958 Prevent Waterflow BlockFromToEvent from loading chunks
Many protection plugins would unintentionally trigger chunk loads
by calling .getToBlock() on an unloaded chunk, killing performance.

Simply skip the event call. as CraftBukkit blocks changing the block
of unloaded chunks anyways.

This keeps behavior consistent, vs inconsistent flowing based on plugin triggered loads.
2016-03-28 22:04:43 -04:00
Aikar 2b55c92307 EntityPathfindEvent
Fires when an Entity decides to start moving to a location.

This is not the same as a move event. This only fires when an entity chooses
to start moving to a location, and allows cancelling that pathfind.

Additionally, only get is supported for now. Unsure if changing target location
is safe to do.
2016-03-28 21:24:45 -04:00
Aikar 0623a754d8 Add MCUtils helper
This will be used by my next commit. But trying to get the build going
since CI blew up
2016-03-28 21:01:42 -04:00
Aikar 1180a5dd87 And AddTo is a different event than RemoveFrom 2016-03-28 20:58:42 -04:00
Aikar dab09d46bc Actually fire those events 2016-03-28 20:57:15 -04:00
Aikar 9148dbbf4a Configurable Chunk Inhabited Timer
Vanilla stores how long a chunk has been active on a server, and dynamically scales some
aspects of vanilla gameplay to this factor.

For people who want all chunks to be treated equally, you can disable the timer.
2016-03-28 20:47:46 -04:00
Aikar a661a1737f Entity AddTo/RemoveFrom World Events
These events will give plugins a reliable way to track every entity that is added
or removed from a world, so that one may always ensure they are in a desired state.
2016-03-28 20:33:10 -04:00
Aikar 2e4f0cb627 Option to disable BlockPhysicsEvent for Redstone
Not sure of any reason a plugin would need to act on a Physics event
for redstone. There is a BlockRedstoneEvent that plugins can also use
for accessing redstone activity.

Defaulting this to false will provide substantial performance improvement
by saving millions of event calls on redstone heavy servers.
2016-03-28 19:57:13 -04:00
Zach Brown 51c738e817 Don't set spawn world in PlayerInitialSpawnEvent
Fixes GH-85 and GH-157
2016-03-28 13:00:44 -05:00
Zach Brown 010e7652b3 Fix player tab list API 2016-03-28 10:41:04 -05:00
Zach Brown 587aaefcc4 Update upstream B/CB/Spigot and rebuild 2016-03-27 20:48:50 -05:00
Zach Brown 4634458d72 Check async spawn chunk check, remove unused variables, GH-159 2016-03-27 20:31:23 -05:00
DemonWav 4e5569e6cd Add same infi-loop fix to other identical block of code I missed earlier 2016-03-27 05:42:02 -05:00
Zach Brown 8ec0ce4b89 Merge pull request #153 from kashike/feature/slot
Access items by EquipmentSlot
2016-03-27 02:24:12 -05:00
Zach Brown 1109dc8d70 Update upstream and rebuild 2016-03-27 01:38:58 -05:00
Riley Park d880c248bf Access items by EquipmentSlot 2016-03-26 22:23:42 -07:00
DemonWav 92aa154184 Prevent possible infinite loop in BlockPosition iterator 2016-03-26 21:38:36 -05:00
Gabscap 3ed9c2917e Load chunk before player teleport - Fixes #147 2016-03-26 18:45:15 +01:00
Zach Brown 32ac0a9a4b Pull in ArrowPickupItemEvent and legacy dataconverter fix from SportBukkit 2016-03-26 03:38:02 -05:00
Zach Brown 95adcf7863 Merge upstream changes and rebuild patches 2016-03-25 18:21:38 -05:00
Byteflux 5532826f02 Entity#getOrigin() should return a cloned Location 2016-03-25 09:39:37 -07:00
Byteflux fc3f55ddc8 Always try to load entity origin location from new NBT tag 2016-03-25 09:32:09 -07:00
Byteflux bcc957e753 Add Entity Origin API
This replaces the TNT and Falling Block Source Location API with a more
general purpose API that works with all entities.
2016-03-25 02:02:35 -07:00
Zach Brown eb5c119269 Re-add TileEntity removal list, fix build 2016-03-25 02:50:56 -05:00
Byteflux cadf65501b Fix timings config being removed by another patch 2016-03-24 23:46:53 -07:00
Byteflux dd60ba4869 Add Lighting Queue
The lighting queue spreads out the processing of light updates across
multiple ticks based on how much free time the server has left at the end
of the tick.
2016-03-24 23:38:38 -07:00
Byteflux fc2341a996 Relocate Timings v2 patch 2016-03-24 21:59:37 -07:00
Byteflux d242dca587 Fix decompile errors in mc-dev imports patch 2016-03-24 19:57:01 -07:00
Gabscap 8fa4818d1b rebuild 2016-03-25 02:23:23 +01:00
Zach Brown 926ba9a3bb Update upstream B/CB
Remove patch 0099: Pulled into upstream CraftBukkit
2016-03-24 01:39:29 -05:00
Aikar 6f4bf57aa0 remove blockstate cache patch 2016-03-23 21:19:45 -04:00
Zach Brown d1afdd87f4 Clean up title and tab list patch
Remember kids, the Ballmer peak is hard to hit https://xkcd.com/323/
Finally fixes #126 and #94 (I tested, it does, please, really, promise)
2016-03-23 01:05:09 -05:00
Aikar 7ab893447a Optimize isValidLocation for inlining - Resolves #123 2016-03-22 23:44:46 -04:00
Aikar 97e083b9b0 Setting the cache is important to access a cache 2016-03-22 23:44:35 -04:00
Zach Brown fb05841421 How does typing work?
Closes GH-125
2016-03-22 14:55:42 -05:00
Zach Brown 71d9f402d5 Configurable spawn chances for skeleton horses
Closes feature request GH-111
2016-03-22 12:07:16 -05:00
Aikar 95b9e1e6f2 Optimize Chunk Access
getting a loaded chunk is one of the most hottest pieces of code in the game.
Often, getChunkAt is called for the same chunk multiple times in a row, often
from getType();

Optimize this look up by using a Last Access cache.
2016-03-22 01:46:32 -04:00
Aikar 87ebc85c3c Don't teleport dead entities
Had some issue with this in past, and this is the vanilla logic.
Potentially an old CB change that's no longer needed.
2016-03-22 00:56:09 -04:00
Aikar bd75ff8b5b Use a Shared Random for Entities
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
2016-03-22 00:36:20 -04:00
Gabscap 100cd60c65 Add "Waving banner workaround" 2016-03-21 15:34:09 +01:00
Aikar d24502015a Make Chunk IO Thread Base count configurable 2016-03-21 23:51:58 -04:00
Aikar 37afe5e662 Fix skull cache case bug
missing cache hits on players with uppercase letters in name
2016-03-21 23:38:24 -04:00