Aikar
368a822c47
Rename a Timings class and split up Tracker timings
2016-04-29 21:23:40 -04:00
Aikar
5aa3237a21
Improve Maps (in item frames) performance and bug fixes
...
Maps used a modified version of rendering to support plugin controlled
imaging on maps. The Craft Map Renderer is much slower than Vanilla,
causing maps in item frames to cause a noticeable hit on server performance.
This updates the map system to not use the Craft system if we detect that no
custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
2016-04-29 20:04:12 -04:00
Aikar
242ddc939b
comment out the other update call instead
...
otherwise might break stuff
2016-04-27 22:22:35 -04:00
Aikar
28bf70ee16
Improve Minecraft Hopper Performance
...
Removes unnecessary extra calls to .update() that are very expensive
Also reset cooldown each hopper tick that a hopper is full.
2016-04-27 22:15:57 -04:00
willies952002
02494f5be7
Reimplement PlayerEditBookEvent
2016-04-26 23:04:20 -04:00
kashike
db8f9e663c
Add ability to disable, and to set min/max next tick delay, of frosted_ice. Resolves #172
2016-04-25 13:36:21 -07:00
kashike
0cfd3c0dc6
Merge pull request #230 from kashike/feature/arrow-pickup
...
Arrow pickup rule API
2016-04-25 13:27:51 -07:00
Zach Brown
ef64712c6c
SPIGOT-1401: Fix dispenser/dropper/furnace placement being different from SP
2016-04-24 19:56:04 -05:00
Aikar
9381554475
update upstream
2016-04-23 22:41:46 -04:00
Aikar
2cbd400e17
Fix Player View Distance API corrupting Chunk Sending - Fixes #207
...
The Player View Distance patch has been screwing with the configured world view distance.
The world a player was created in would set the players view distance, which would be locked to that distance.
Then switching worlds would not give you an updated view distance.
This then caused issues with what view distance the player should have in the chunk map and did not send chunks to the client correctly during movement.
This patch has now been changed to use a -1 default for "default" and will not override view distance until someone has actually used the API to change it.
2016-04-23 21:39:22 -04:00
Aikar
422f32484b
remove potentially bad check
2016-04-23 13:10:55 -04:00
Aikar
55afa33cbc
Fix a vanilla bug thats likely causing the mob spawn issues
2016-04-23 12:27:46 -04:00
Aikar
485ad4238b
improve the jackass test
2016-04-23 11:57:39 -04:00
Zach Brown
3591fb7ed9
Update upstream Spigot and rebuild
2016-04-22 22:21:10 -05:00
kashike
784ba17340
Fix wrong variable being checked. Fixes #233
2016-04-22 19:02:57 -07:00
Zach Brown
a1e3c0b12b
Check entity count adds and mark entities removed as needed
2016-04-22 20:35:24 -05:00
Zach Brown
e9ffa94994
More involved workaround for vehicle event cancellation
2016-04-22 18:43:22 -05:00
Zach Brown
4f7b7bb31a
Fix EntityDismountEvent and VehicleExitEvent cancellation
...
Perhaps "workaround" would be the better term
2016-04-22 15:45:22 -05:00
kashike
7ac2b8139e
Arrow pickup rule API
2016-04-22 00:07:58 -07:00
Zach Brown
a6536804fd
EntityHealthRegain isFastRegen API
2016-04-22 01:48:49 -05:00
Zach
b3a6b5d2a1
Merge pull request #212 from willies952002/feature/permReload
...
Also Reload Plugin-Defined Permissions
2016-04-22 00:58:32 -05:00
Zach Brown
9abe6f6882
Update upstream CB and rebuild
2016-04-20 11:58:49 -05:00
willies952002
a313078d97
Also Reload Plugin Defined Permissions
...
Closes https://github.com/PaperMC/Paper/issues/210
2016-04-19 17:29:33 -04:00
Zach Brown
c08f771081
Re-add PlayerLocaleChangeEvent implementation
...
Apparently this was missed at some point, likely during the 1.9 update"
2016-04-19 14:25:05 -05:00
Zach Brown
1bce5c2438
Here have a rebuild while we're at it
2016-04-18 09:43:19 -05:00
Zach Brown
68cdc4fa90
Remove non-zero BlockIterator block and Loading chunks earlier in player TP patches
...
Allowing only non-zero BlockIterators breaks an API contract explicitly allowing them
(*eyeroll*)
And loading chunks earlier in the TP patch did not resolve the original issue, and now
that it is resolved, shouldn't actually provide any tangible benefits
2016-04-18 09:41:11 -05:00
Aikar
ce9e19cfed
Prevent Fire from loading chunks
...
This causes the nether to spam unload/reload chunks, plus overall
bad behavior.
2016-04-17 17:28:16 -04:00
Zach Brown
2e57c5774e
Don't check velocities on Projectiles
...
Closes GH-217
2016-04-17 13:32:19 -05:00
Aikar
8ba4b64739
Configurable RCON IP address to bind to
2016-04-16 00:46:01 -04:00
Aikar
ba9266a37b
Allow capping number of attempts at spawning mobs
...
By default, this logic would loop endlessly trying to fill the world
with entities until it hits the worlds spawn.
This patch will cap the # of attempts to so that the tick does not spend
extra long time on mob spawning
2016-04-15 22:35:03 -04:00
Aikar
845090e570
Ensure we actually removed entity from chunk before decrementing counts
...
If a plugin hacks into NMS and triggers entity removal, it could
result in an entity being attempted to remove from the chunk twice.
The 2nd pass will return false, as it did not find the entity in the list.
We should not touch entity counts if the entity was not removed, to avoid
going negative.
2016-04-15 21:31:12 -04:00
Zach Brown
8672653871
Check the block water mobs spawn in, not the block under
2016-04-15 15:49:39 -05:00
Aikar
77cdcc281b
Fix Bugs with Spigot Mob Spawn Logic - Fixes #138
...
Spigot drastically altered vanilla mob spawn logic and caused a few issues.
1) Used only spawnable chunks vs entire world for entity counting, resulting in ignoring
other entities in the world, and causing the world to go over its intended limit.
Specially with servers using smaller mob spawn ranges than view distance, as well as affects spawning API
2) Spigot was using 16x16 division instead of vanilla 17x17 division.
Issues got worse in 1.9 due to more chunks being loaded due to 1.9 changes, that fall out
of the monster spawn radius.
This patch returns mob counting to use all loaded chunks, and 17x17 division.
2016-04-14 21:03:57 -04:00
Zach Brown
794a848857
Revert "Only check for async callers, do not remove potentially used variables"
...
This reverts commit da7320fc42
.
2016-04-14 19:26:57 -05:00
Zach Brown
8ccd31ed38
Water mobs should only spawn in the water
...
Closes GH-199
2016-04-14 18:06:29 -05:00
Zach Brown
da7320fc42
Only check for async callers, do not remove potentially used variables
...
Potentially resolves GH-138
2016-04-14 16:48:52 -05:00
Zach
2924ae631e
Merge pull request #205 from kashike/feature/handshake
...
Add handshake event
2016-04-13 23:10:34 -05:00
kashike
66d3688b39
Add handshake event to allow plugins to handle client handshaking logic themselves
2016-04-13 21:12:57 -07:00
Zach Brown
d07eac31bc
Update bungeecord chat API graduations
2016-04-13 22:21:42 -05:00
Zach Brown
0084b02703
Re-add Configurable Player Collision
...
Nothing to see here, move along
2016-04-13 16:12:44 -05:00
Jedediah Smith
7ab9a51731
Fix some players not being kicked on shutdown
...
Closes GH-8
2016-04-13 16:04:21 -05:00
Jedediah Smith
15cdfc7472
Update SB's affectsSpawning API to use filters
...
Closes GH-169
2016-04-13 16:03:49 -05:00
Aikar
4ee5d3eb31
Configurable Player Collision - Resolves #161
2016-04-13 02:11:40 -04:00
Aikar
d98f9cc5ae
Don't tick Skulls - unused code - Fixes #202
2016-04-13 00:32:05 -04:00
Aikar
e177666bfb
Remove unused World Tile Entity List
...
Massive hit to performance and it is completely unnecessary.
2016-04-13 00:27:38 -04:00
Aikar
3f68b7f930
Update PlayerConnection for all teleportation of players
...
Previous fix for SPIGOT-1903 only applied to world changes, but many other
cases of players been teleporting can cause that same bug. So call it any time
setPosition is called to ensure we never falsely trigger "moved too quickly"
And this commit may be considered evil to some people.
2016-04-12 23:26:42 -04:00
Zach Brown
189235906d
Update upstream
2016-04-12 11:31:54 -05:00
Zach Brown
ef3f6a481a
Update upstreams
2016-04-11 10:30:12 -05:00
Aikar
a0d38c0b55
update MCUtil.cmpFromMessage to use proper JSON
2016-04-11 01:06:28 -04:00
Aikar
8f89e0f84c
SPIGOT-1903: Update PlayerConnection on world change - Fixes #120
2016-04-10 22:36:56 -04:00
Zach Brown
a3358b1915
Ugly workaround for SPIGOT-1915 & GH-114
...
Closes GH-114
2016-04-10 03:24:54 -05:00
Zach Brown
6fc0a013a5
Apply the Ensure inv drag is in bounds patch properly
...
Closes GH-174
2016-04-09 21:33:29 -05:00
Zach Brown
a97fe29d9d
Can't expect others to follow formatting if I don't
2016-04-09 13:54:47 -05:00
Zach Brown
4ed5672cd9
Backport a memory cleanup change from 16w14a
2016-04-09 13:50:56 -05:00
Zach Brown
38d2939ff1
Update upstreams and rebuild
2016-04-08 17:24:26 -05:00
Zach Brown
44a1d43781
Simplify vanilla scoreboard nickname coloring patch
...
Closes GH-195
2016-04-07 17:31:09 -05:00
Zach Brown
6b75dac6f4
Add basic support for using vanilla style, world-based, scoreboard name coloring
...
Closes GH-188
2016-04-06 01:10:26 -05:00
Aikar
11d1937145
Include Redstone Torches in the redstone physics event optimization
2016-04-05 23:20:46 -04:00
Aikar
539e1e024c
Remove Debug checks from DataBits
...
These are super hot and causing noticeable hits
Before: http://i.imgur.com/nQsMzAE.png
After: http://i.imgur.com/nJ46crB.png
2016-04-05 21:55:07 -04:00
Aikar
cdd926c1e9
Re-add fastutil map to Chunk map. Amaranth confirmed its faster by 3x
2016-04-05 20:43:11 -04:00
Aikar
8e68f444f1
Fix Nether/End world unloading spawn chunks - Fixes #92
2016-04-05 19:53:30 -04:00
Zach Brown
bce92696c6
Update upstream and rebuild
2016-04-04 09:53:03 -05:00
Aikar
94fd16aa4a
fix keep spawn loaded config
2016-04-03 23:08:13 -04:00
Aikar
62071aad36
Fix errorneous call of EntityDismountEvent
2016-04-03 19:11:25 -04:00
Aikar
d46dec88b4
Fix Cancelling BlockPlaceEvent triggering physics
2016-04-03 17:49:31 -04:00
Aikar
e11a8f0bd5
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:38 -04:00
Aikar
47221671ba
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
kashike
73fc582824
Fix reducedDebugInfo not initialized on client
2016-04-03 05:09:42 -05:00
Zach Brown
f6782d5738
Rebuild
2016-04-03 05:06:48 -05:00
Zach Brown
d463cc6139
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
2f79610112
Mark chunk as active if ChunkUnloadEvent is cancelled
...
Potentially related to GH-169
2016-04-03 02:02:06 -05:00
Zach Brown
bb265b967d
We don't need to go fast anymore
2016-04-03 02:00:35 -05:00
kashike
871920f2f5
Add PlayerUseUnknownEntityEvent
2016-04-02 18:10:41 -07:00
Aikar
cd3d8fb27e
Update upstream
2016-04-01 22:08:40 -04: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
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
Aikar
30748518b4
Setting the cache is important to access a cache
2016-03-22 23:44:35 -04:00
Zach Brown
222a306fb9
How does typing work?
...
Closes GH-125
2016-03-22 14:55:42 -05:00
Zach Brown
3f3fc8b6dc
Configurable spawn chances for skeleton horses
...
Closes feature request GH-111
2016-03-22 12:07:34 -05:00
Aikar
06e453017f
rebuild patches
2016-03-22 01:49:52 -04:00
Aikar
e11c563e9f
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:48:05 -04:00
Aikar
15dd8f0692
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 01:48:05 -04:00
Aikar
2e29af3df0
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 01:48:05 -04:00
Gabscap
6b4b7d300c
Add "Waving banner workaround"
2016-03-22 00:37:00 -05:00
Aikar
17a08203ed
Make Chunk IO Thread Base count configurable
2016-03-21 23:53:04 -04:00
Aikar
816fccea08
Fix skull cache case bug
...
missing cache hits on players with uppercase letters in name
2016-03-21 23:38:24 -04:00
Aikar
9a2f82feca
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
8d0fbc5c1d
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 23:04:38 -04:00
Aikar
646b62a220
Make /reload require typing confirm to actually reload
2016-03-21 21:40:29 -04:00
willies952002
62580304f4
Add Bukkit#reloadPermissions()
...
Fix issues with Paper build #544
2016-03-21 21:29:41 -04:00
Aikar
def021fb9b
fix rebuild patches and rebuild current patches
2016-03-21 20:46:54 -04:00
Daniel Ennis
8616dc012c
Merge pull request #91 from willies952002/feature/permReload
...
Allow Reloading of Custom Permissions - resolves #49
2016-03-21 20:24:27 -04:00
William
869ab5202e
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-21 19:28:52 -04:00