Commit Graph

2025 Commits

Author SHA1 Message Date
Aikar cd3d8fb27e Update upstream 2016-04-01 22:08:40 -04:00
Aikar adc286112e Use relative paths for paperclip 2016-04-01 19:50:31 -04:00
Aikar 446ad1940f use windows line endings for paperclip.properties 2016-04-01 19:29:36 -04:00
Zach 55ea1ef524 Merge pull request #173 from DemonWav/master
<~Z750> sex it up for me
2016-04-01 02:00:36 -05:00
DemonWav 2b99b1095e <~Z750> sex it up for me 2016-04-01 01:59:59 -05:00
Zach Brown d8c6c41507 gottagofast 2016-04-01 01:33:12 -05:00
Aikar 081420d738 improve implementation of chunk access patch 2016-04-01 00:35:44 -04:00
Aikar c0e1410682 Fix pom to be compile instead of provided for fastutil 2016-04-01 00:35:21 -04:00
Aikar c92ce02363 Move fastutil from a patch file to a library, and improve EAR 2016-04-01 00:18:18 -04:00
Aikar 78202f87b7 Remove Long2ObjectHashMap for Chunks
Speaking with Amaranth, his point of his implementation was that most
of the lookups are on loaded chunks, so that code is optimized for that case.

While Long2Object should be faster as a general purpose map,
for MC uses, Amaranth's version should be faster. Will try to benchmark
the 2 at some future.
2016-03-31 22:17:33 -04:00
Aikar d03da137f2 Fix isEdgeOfChunk check for MCUtils 2016-03-31 22:17:33 -04:00
Aikar 578af64827 Update upstream for memory leak patch 2016-03-31 21:47:17 -04:00
Aikar dea2d41b86 Do not load chunks for light checks
Should only happen for blocks on the edge that uses neighbors light level
(certain blocks). In that case, there will be 3-4 other neighbors to get a light level from.
2016-03-31 19:29:06 -04:00
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 3a653d5605 use original paperclip name 2016-03-30 20:53:39 -04:00
Aikar 38df6e505c Paper 1.9.2 Update 2016-03-30 20:50:23 -04:00
Zach Brown 3948c54b6c Update CB/Spigot : Add 1.9.2 protocol
/me rolls eyes
2016-03-30 11:03:20 -05:00
Zach Brown 0704c2c54c Update CB/Spigot : Add 1.9.1 protocol 2016-03-30 10:15:07 -05: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
Zach 6462bb4e20 Merge pull request #167 from DemonWav/getentity
Add getEntity by UUID API
2016-03-30 01:30:29 -05:00
DemonWav 4bf9c3c177 Add getEntity by UUID API 2016-03-30 01:20:36 -05:00
Aikar 31a482e9f0 Move Timings v2 TimingHandler to FastUtil Int map 2016-03-30 01:59:47 -04:00
Aikar c2f872aed3 Add Minimal FastUtil int/long collections.
Importing the full library would double the jar size... its way too large.
So lets just import the basic int/long based collections to then use
to improve performance on these kind of collections.
2016-03-30 01:57:56 -04:00
Aikar 23467ff8d6 Update contributing information to be more accurate 2016-03-30 01:03:27 -04:00
Zach Brown d46c56abf0 Put this patch in the patches folder, so it's actually used 2016-03-29 13:56:19 -05:00
Zach 9bebf86d50 Merge pull request #163 from cybertiger/region-file-cache
Sanitise RegionFileCache and make cache size configurable.
2016-03-29 11:15:30 -05:00
Zach 19f8c428c0 Merge pull request #162 from cybertiger/region-file-io-ops
Reduce IO ops opening a new region file.
2016-03-29 11:15:23 -05:00
Antony Riley 91d9131e0c Reduce IO ops opening a new region file. 2016-03-29 19:11:48 +03:00
Antony Riley af65eaaa3b Sanitise RegionFileCache and make cache size configurable. 2016-03-29 19:09:43 +03:00
Aikar 77663e58d9 Link to contributing for PR section 2016-03-29 00:07:27 -04:00
Aikar 08c9934f83 update README for PR instructions 2016-03-28 23:59:19 -04:00
Zach Brown ebe7176b2e Merge pull request #158 from Minefabser/fix-minecart 2016-03-28 22:41:54 -05:00
Fabse d71444f966 Add a workaround for bugged Minecart drop names 2016-03-28 22:41:27 -05:00
Aikar b97cbbb698 Update upstream 2016-03-28 23:19:49 -04: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 3d61632b53 Remove last patch, doesn't exactly do what I thought it was doing 2016-03-28 22:28:52 -04:00
Aikar e77e65499f Remove Invalidated Metadata
Bukkit was using an unimplemented method to invalidate plugin meta.
2016-03-28 22:15:23 -04:00
crast 6a54004bb4 Reduce thread synchronization in MetadataStoreBase
Use ConcurrentHashMap to allow thread-safe access methods and very
limited synchronized portions to allow much higher concurrency in
MetadataStore as well as far less locking, especially on reads
2016-03-28 22:10:01 -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 e90cdc3639 Remove some code from Timings v2 that was only for EMC. 2016-03-28 21:41:17 -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