Commit graph

475 commits

Author SHA1 Message Date
Aikar
f718f4dbd7 Fix errorneous call of EntityDismountEvent 2016-04-03 19:11:25 -04:00
Aikar
3c0a1bcc25 Fix Cancelling BlockPlaceEvent triggering physics 2016-04-03 17:49:31 -04:00
Aikar
57b915a706 Configurable Keep Spawn Loaded range per world
This lets you disable it for some worlds and lower it for others.
2016-04-03 17:34:15 -04:00
Aikar
746d46f6bb Configurable Grass Spread Tick Rate
Raise this value to make grass spread slower. Set to 0 to turn off grass spreading all together.
2016-04-03 16:29:39 -04:00
Riley Park
7fa8b081c4 Fix reducedDebugInfo not initialized on client 2016-04-03 05:08:46 -05:00
Zach Brown
d7c909b5cb Merge branch 'feature/unknown-use' of https://github.com/kashike/Paper into kashike-feature/unknown-use 2016-04-03 04:52:36 -05:00
Zach Brown
9fe95d850e Mark chunk as active if ChunkUnloadEvent is cancelled
Potentially related to GH-169
2016-04-03 02:02:00 -05:00
Zach Brown
b6e39d3f5c We don't need to go fast anymore 2016-04-03 02:00:35 -05:00
Riley Park
67ec2cd957 Add PlayerUseUnknownEntityEvent 2016-04-02 18:10:38 -07:00
Aikar
9fcb513a2e Update upstream 2016-04-01 22:08:40 -04:00
DemonWav
3125accf7d <~Z750> sex it up for me 2016-04-01 01:54:53 -05:00
Zach Brown
d89da5a2ad gottagofast 2016-04-01 01:33:12 -05:00
Aikar
e5d103dd3f improve implementation of chunk access patch 2016-04-01 00:35:44 -04:00
Aikar
0706403fa6 Fix pom to be compile instead of provided for fastutil 2016-04-01 00:35:21 -04:00
Aikar
1ac9958e8b Move fastutil from a patch file to a library, and improve EAR 2016-04-01 00:18:18 -04:00
Aikar
a4d29fef6a 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 21:45:30 -04:00
Aikar
809051d050 Fix isEdgeOfChunk check for MCUtils 2016-03-31 21:43:37 -04:00
Aikar
775169422d Update upstream for memory leak patch 2016-03-31 21:43:21 -04:00
Aikar
baf8797e8f 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
8b77debaf3 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
a01a25ff57 Missed diff, unused config entry, general cleanup
cc GH-170
2016-03-30 22:55:46 -05:00
Aikar
4e89e1f0c7 add null check to getEntity API 2016-03-30 21:56:07 -04:00
Aikar
9fc220ea02 Use paperclip.properties so CI can work 2016-03-30 21:27:13 -04:00
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
Aikar
8abad348b6 Cache BlockState for Blocks
Improve performance for many plugins that call .getState() multiple
times for things like signs that have to "build" sign data.
2016-03-21 23:38:19 -04:00
Aikar
ae95189944 Another attempt at unload queue, including EAR improvements.
should be fully working now as I pretty much fell back to existing
methods so anything touching the unloadQueue set should behave correctly.

And maintained NMS Reflection safe change too
2016-03-21 22:51:14 -04:00
Aikar
9300f163fd fix rebuild patches and rebuild current patches 2016-03-21 20:46:54 -04:00
Daniel Ennis
4916cd2551 Merge pull request #91 from willies952002/feature/permReload
Allow Reloading of Custom Permissions - resolves #49
2016-03-21 20:24:27 -04:00
Zach Brown
044d463764 Use singleton in Village class to work around null issue that evades 2016-03-21 10:28:45 -05:00
Zach Brown
d4ba72a83f Support offline mode from the whitelist command
Closes GH-79
2016-03-21 00:53:32 -05:00
Zach Brown
71f8b70f10 Also handle original end case that spawned the issue
Final commit for GH-96 if there's any justine in the world
2016-03-20 23:15:37 -05:00
Zach Brown
c0d5c00a34 Merge pull request #118 from Techcable/fix/spigot-title-compatibility
Fix backwards compatibility with spigot title api
2016-03-20 22:53:57 -05:00
Techcable
acad27e9e7 Fix backwards compatibility with spigot title api
I shouldn't have assumed their api was anything other but a thin (and incomplete) wrapper over the packets.

Fixes #94
2016-03-20 20:45:13 -07:00
Zach Brown
614aee73bc Only mark player as invulnerable if they're actually changing worlds
Fixes GH-96
2016-03-20 22:38:31 -05:00
Zach Brown
84b79f3f41 Only mark player as invulnerable if they're going to the end
cc GH-96
2016-03-20 19:44:49 -05:00
Daniel Ennis
1098519c4d Catch Async PlayerChunkMap operations - Fixes #113 2016-03-20 15:24:24 -04:00
Aikar
6acff7d61d Disable Chunk Unload Queue Patch for now 2016-03-20 00:53:34 -04:00
Aikar
0b26bbd451 handle NaN health/absorb values and repair bad data
Undoes damage from Damage API bugs
2016-03-20 00:35:02 -04:00
Aikar
db0f31134f Improve chunk unload queue to maintain some previous expectations
While the previous logic was logically correct, some CB API's before
would request a chunk without removing it from the unload queue.

While this is logically wrong, some plugins seem to be causing unload issues.

This change will make anything using that one API that use to not remove from
queue, no longer remove from queue.

Hopefully other activities on the server will touch the chunk if it REALLY is in use.
2016-03-20 00:13:20 -04:00
Zach Brown
a424df3323 Update upstream and rebuild patches 2016-03-19 20:20:25 -05:00
Zach Brown
85451753d1 Remove patch pulled upstream and rebuild patches 2016-03-19 17:52:09 -05:00
William
13587006dc Allow Reloading of Custom Permissions
Add the ability to reload the custom permissions file by doing "/reload permissions"

Implements Feature Request: https://github.com/PaperMC/Paper/issues/49
2016-03-19 16:19:00 -04:00
Riley Park
0a9d183bd4 Set health before death event 2016-03-19 10:12:30 -07:00
Riley Park
6d01d7f9ea Custom replacement for eaten items 2016-03-19 09:57:19 -07:00
Aikar
d1c4507c9c Fixes #95 - Vanilla bug with Villages 2016-03-19 15:21:39 -04:00
Zach Brown
67a3d9cb57 Merge pull request #101 from DemonWav/master
Revert Spigot changes to blocking damage code
/me glances at imports
/me will fix later
2016-03-19 12:25:22 -05:00
DemonWav
4e7056af65 Revert Spigot changes to blocking code, fix issue where entities cannot die 2016-03-19 12:20:27 -05:00
Aikar
7efe31a331 Fix chunk unload issues - Resolves #97 2016-03-19 11:29:46 -04:00
Aikar
bb82a8a401 forgot to rebuild after last light change, another fix 2016-03-19 10:57:22 -04:00
Aikar
e59f9ab2e6 fix light level check on monsters 2016-03-19 10:45:28 -04:00
Aikar
d72abafa8f Optimized Light Level Comparisons
Use an optimized method to test if a block position meets a desired light level.

This method benefits from returning as soon as the desired light level matches.

Also Optimize Grass more
2016-03-18 23:55:31 -04:00