Commit Graph

452 Commits

Author SHA1 Message Date
Aikar
0ba94906ad Fix Massive Memory Leak
Pathfinder objects are storing references to ChunkCache's, and never cleaning up.

These ChunkCache's then leak other entity objects. Those entity objects then have leaks to their
own chunk cache. A recursive problem....

Clean up the ChunkCache reference after it is done being used.
2016-03-31 19:08:27 -04:00
Zach Brown
fb52abdf7e Upstream merge CB, rebuild patch 2016-03-31 12:58:20 -05:00
Zach Brown
582ad801b5 Missed diff, unused config entry, general cleanup
cc GH-170
2016-03-30 22:56:30 -05:00
Aikar
3b2d6fd59e add null check to getEntity API 2016-03-30 21:56:07 -04:00
Aikar
fb74f6dbfd Use paperclip.properties so CI can work 2016-03-30 21:27:13 -04:00
Aikar
38df6e505c Paper 1.9.2 Update 2016-03-30 20:50:23 -04:00
Aikar
f051ea2ab3 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 09:43:11 -05:00
Zach Brown
a785a9460e Skip dead entities in getEntity(UUID) API 2016-03-30 09:41:12 -05:00
DemonWav
4bf9c3c177 Add getEntity by UUID API 2016-03-30 01:20:36 -05:00
Zach Brown
d46c56abf0 Put this patch in the patches folder, so it's actually used 2016-03-29 13:56:19 -05:00
Antony Riley
af65eaaa3b Sanitise RegionFileCache and make cache size configurable. 2016-03-29 19:09:43 +03:00
Fabse
d71444f966 Add a workaround for bugged Minecart drop names 2016-03-28 22:41:27 -05:00
Aikar
48dff29f31 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
c09424fd33 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:05:22 -04:00
Aikar
b99e8381ab 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
9ff01b16ab 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
fb3834f805 And AddTo is a different event than RemoveFrom 2016-03-28 20:58:42 -04:00
Aikar
53309e9172 Actually fire those events 2016-03-28 20:57:15 -04:00
Aikar
89c912061b 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
22b248d631 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
030de0f42a Update upstream 2016-03-28 20:27:56 -04:00
Aikar
d52a49cfa1 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
0363644455 Don't set spawn world in PlayerInitialSpawnEvent
Fixes GH-85 and GH-157
2016-03-28 13:00:47 -05:00
Zach Brown
249e52e7a8 Fix player tab list API 2016-03-28 10:41:04 -05:00
Zach Brown
b210aa7dfe Update upstream B/CB/Spigot and rebuild 2016-03-27 20:48:50 -05:00
Zach Brown
bf877b9a72 Check async spawn chunk check, remove unused variables, GH-159 2016-03-27 20:31:23 -05:00
DemonWav
34973fe898 Add same infi-loop fix to other identical block of code I missed earlier 2016-03-27 05:42:02 -05:00
Zach
5108183346 Merge pull request #153 from kashike/feature/slot
Access items by EquipmentSlot
2016-03-27 02:24:12 -05:00
Zach Brown
85ee80938b Update upstream and rebuild 2016-03-27 01:40:17 -05:00
kashike
eeb64630cd Access items by EquipmentSlot 2016-03-26 22:23:42 -07:00
DemonWav
ef3d40bf2a Prevent possible infinite loop in BlockPosition iterator 2016-03-26 22:06:33 -05:00
Gabscap
f356b447b7 Load chunk before player teleport - Fixes #147 2016-03-26 19:05:31 +01:00
Zach Brown
79c54e4434 Pull in ArrowPickupItemEvent and legacy dataconverter fix from SportBukkit 2016-03-26 03:38:02 -05:00
Zach Brown
47b71ea411 Update upstream CB/Spigot
cc GH-146
2016-03-26 01:38:02 -05:00
Zach Brown
451ede36cf Merge upstream changes and rebuild patches 2016-03-25 18:21:38 -05:00
Byteflux
8b76c66f4b Entity#getOrigin() should return a cloned Location 2016-03-25 09:39:58 -07:00
Byteflux
5bd7a9ab62 Always try to load entity origin location from new NBT tag 2016-03-25 09:32:20 -07:00
Byteflux
ced183982a 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:24:27 -07:00
Zach Brown
a6a5b12b9e Re-add TileEntity removal list, fix build 2016-03-25 02:50:56 -05:00
Zach Brown
dab9d40bfd Update upstream CB 2016-03-25 02:30:39 -05:00
Byteflux
074838e0f3 Fix timings config being removed by another patch 2016-03-24 23:46:53 -07:00
Byteflux
3fd3544a36 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
1d88720b2c Relocate Timings v2 patch 2016-03-24 22:04:44 -07:00
Byteflux
2f0866fef0 Fix decompile errors in mc-dev imports patch 2016-03-24 19:57:01 -07:00
Gabscap
a897a66edf rebuild 2016-03-25 02:23:23 +01:00
Aikar
f5eb0e04bc rebuild 2016-03-24 20:29:40 -04:00
Zach Brown
7d084c8b67 Update upstream B/CB
Remove patch 0099: Pulled into upstream CraftBukkit
2016-03-24 01:39:29 -05:00
Aikar
4b35a6d530 remove blockstate cache patch 2016-03-23 21:19:45 -04:00
Zach Brown
6c16a295b5 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
f794ca4eca Optimize isValidLocation for inlining - Resolves #123 2016-03-22 23:44:46 -04:00