Commit Graph

775 Commits

Author SHA1 Message Date
Zach Brown 14c974629c
Stop collideRule team from seeing invis 'friends'
More appropriately aligns ourself with the no team option, because the
collideRule team is only a team because it has to be, not because we want
anyone to have any sort of gameplay based relationship.

Also block any options from being set on this team to further enforce that
it is not a persistent team and should not be treated as such.
2016-09-15 16:36:57 -05:00
Zach Brown eb3ff14afd
Block minecart portal teleports in some instances
Mitigates GH-373
Technically a workaround rather than a true fix
2016-09-14 18:52:41 -05:00
Zach Brown 2b244fb51e
Update upstrean CB/S 2016-09-11 14:55:02 -05:00
Zach Brown 2e880e7676
Make UseItem rate limiting stricter, configurable 2016-09-10 23:27:07 -05:00
Zach Brown 5626ad5f58
Fix patch, need to investigate build issues 2016-09-10 22:45:09 -05:00
Zach Brown 8a8fc89534
[ WHITESPACE ] 2016-09-10 22:09:14 -05:00
Zach Brown c02c01b2c5
Add rate limiting to PacketPlayInUseItem as well
Also removes our toggle for Spigot's option, I doubt anyone uses it.
2016-09-10 21:44:06 -05:00
Zach Brown 3a128de0c1
Further safety for player collision setting
Hopefully the end of similar problems
Fixes GH-415
2016-09-08 12:39:40 -05:00
Zach Brown feccc25412
Make collide team removal more patient, safer
Fixes GH-414
2016-09-06 12:33:47 -05:00
Zach Brown d26051ef63
Create a team as needed for disabling collisions
Fixes GH-383
2016-09-04 17:29:25 -05:00
Zach Brown eb7e4424fa
Update upstream B/CB 2016-09-04 16:59:06 -05:00
Brokkonaut e153f46603
Fix an AIOOBE in inventory handling
Closes GH-404
2016-09-04 16:49:29 -05:00
Zach 8d5cd3f054 Merge pull request #408 from kashike/feature/health-conversion
Convert new health to a float
2016-09-04 16:05:38 -05:00
kashike 8f91416dcb @Zbob750 missed a few name changes 2016-09-04 06:35:42 +00:00
Zach Brown f9f96ea3a5
Update upstream B/CB/S 2016-09-02 22:44:52 -05:00
kashike e44b71a6b4 Convert new health to a float during set
Convert the new health value to a float before doing any validation logic
2016-09-01 23:32:32 +00:00
Zach Brown 8eb7f073d6
Revert team creation for player collision setting
Needs more work, have redone it locally but its not quite ready for
prime time.
2016-08-31 19:22:43 -05:00
Zach Brown d8acf96e94
Rename patch file to be more specific 2016-08-31 17:18:54 -05:00
killme 078b6fb1e0 Disable ticking of snow blocks 2016-08-30 23:45:59 +02:00
Zach Brown 8e220b8ef9
Make getEntity dead check more specific 2016-08-28 00:46:21 -05:00
Zach Brown ba4aaaa607
Restore some timings functionality lost in last 2016-08-27 19:36:26 -05:00
Zach Brown b170e8cedb
Update upstream B/CB/S
Remove two features added upstream
2016-08-27 18:41:58 -05:00
Aikar 173d0fa33f Timings v2 updates for more chunk related timings (generations) 2016-08-20 00:07:26 -04:00
Alfie Cleveland d9afd08cee
Optimise BlockStateEnum 2016-08-19 13:06:37 -05:00
Zach Brown 17c9d7d9da
Kick git and rebuild patches 2016-08-15 19:22:10 -05:00
Zach Brown f80163c4ab
More changes to view distance API implementation
Should fix GH-381
2016-08-13 15:26:40 -05:00
Gabriele C e51a3a332e
Introduce a setting to handle offline proxies
Servers behind a bungeecord proxy in offline mode
will now properly pull offline mode UUIDs and data
when this setting is set to false. Default is unchanged.
2016-08-12 18:22:58 -05:00
Zach Brown 997fa37ee7
Update upstream B/CB 2016-08-11 15:07:07 -05:00
Zach Brown 15f3ca7ecb
Update upstream B/CB 2016-08-07 00:01:31 -05:00
Zach Brown 9f95fbcd24
Send Bukkit scoreboards as well as vanilla boards
Fixes GH-384
2016-08-04 19:46:35 -05:00
Zach Brown ae77393ad9
Re-track players that dismount from other players
Fixes GH-265
2016-07-31 16:33:25 -05:00
Zach Brown af70722300
Fix entity tracking when the player is the vehicle
Fixes GH-378
2016-07-31 15:22:25 -05:00
Zach Brown 2763f8fe5e
Randomly generate team names for earlier commit
[17:17] _MylesC: the biggest issue you run into is bungee not handling
2 teams with same name :(
http://i.imgur.com/jbDigxW.png
2016-07-30 18:13:56 -05:00
Zach Brown 8f6208b1d3
Send a fake team as needed for the collision rule 2016-07-30 17:04:39 -05:00
Zach Brown 46bfd418a8
Update upstream B/CB/S 2016-07-30 18:02:34 -05:00
Zach Brown c62efac3eb
Default configuration changes
Disable push based hoppers by default
Set chunk unload delay to 15s by default
Neither of these changes are retroactive for old users
2016-07-28 20:57:36 -05:00
Zach Brown 7dcb9b67ea
Make alternative falling block ground detection configurable
Workaround for GH-336
2016-07-28 20:54:48 -05:00
Zach Brown dff26d883a
More informative vehicle moved wrongly log message 2016-07-28 19:17:26 -05:00
Zach Brown f9f1a2e97e
Cleanup obfuscation helper comment format 2016-07-28 19:09:54 -05:00
Zach Brown e30fab8ee6
Update upstream B/CB 2016-07-26 19:30:03 -05:00
Zach Brown 56d669ca52
Push based hoppers cleanup 2016-07-22 18:54:48 -05:00
Zach Brown 9918f90710
Update upstream CB 2016-07-22 17:24:30 -05:00
Zach Brown 4a551284a5
Fix TNTPrimed head hight calculation
Fixes GH-370
2016-07-19 18:48:08 -05:00
Zach Brown 11fabc9552
Less strict skull validation
Fixes GH-367
2016-07-18 18:07:48 -05:00
Gabscap a6ef4fa064 Fix-Banner Patch: Display correct time in F3 2016-07-17 19:56:16 +02:00
Zach Brown 29e16baccb
Don't try and lookup profiles that have no UUID and no name
Closes GH-347
2016-07-16 20:19:25 -05:00
Zach Brown c03e56be67
Remove use-hopper-check functionality that we restored
Our improved hopper checking system should provide a better benefit without
as many vanilla behavior issues.
2016-07-16 20:18:38 -05:00
Zach Brown f1691b34c5
Update upstream B/CB/S 2016-07-15 17:36:53 -05:00
Zach Brown d67763d7a3
Update upstream B/CB/S 2016-07-12 23:22:58 -05:00
Zach Brown aea3ab11ab
Block sketchy head items and blocks 2016-07-10 10:45:05 -05:00
Zach Brown 2e2f401132
Update upstream tacos B/CB/S 2016-07-04 18:49:14 -05:00
Zach Brown 97d0490c4a
Disable delayed chunk unloads by default
While the option remains a powerful tool we recommend everyone use, 30s is
proving to be a bit much for certain gametypes and many admins are confused
that after updating they are now facing extreme loaded chunk counts.

We do recommend experienced users configure this value as needed, but we
cannot keep it as a default option given the variety of gametypes, the
potential inexperience of new users, and previous users upgrading and
now facing extreme chunk counts that offer little benefit.
2016-06-30 21:41:10 -05:00
Aikar 2e2842032f More Upstream tacos 2016-06-30 01:38:53 -04:00
Aikar 22f2c98375 Upstream tacos 2016-06-30 01:23:30 -04:00
Zach Brown 66bfe72181
Update upstream CB
It seems they've gotten their own workaround figured out, we'll keep our own fix for TE removal in but let them try theirs and see if it's better now.
2016-06-26 22:51:20 -05:00
Zach Brown 36f28b9cae
Stop overwriting block locations, root issue looks to be the TE fixer itself
Fixes GH-352
2016-06-26 18:39:33 -05:00
Zach Brown bb3c7b16e5
Move setBlock tile->tile transition workaround into TE removal 2016-06-26 14:13:27 -05:00
Zach Brown 92195ceb57
Update upstream CB
Doesn't change anything except puts the last commit upstream, where it belongs
because we're nice like that, or something
2016-06-25 21:34:09 -05:00
Zach Brown 51e2a4f6d6
Update clients when setting blocks to air 2016-06-25 21:09:08 -05:00
Zach Brown 45d9b4c497
Update to MC 1.10.2 2016-06-25 12:21:26 -05:00
Aikar 18433121dc Fix Old Sign Conversion
1) Sign loading code was trying to parse the JSON before the check for oldSign.
       That code could then skip the old sign converting code if it triggers a JSON parse exception.
    2) New Mojang Schematic system has Tile Entities in the new converted format, but missing the Bukkit.isConverted flag
       This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
2016-06-22 22:56:57 -04:00
Aikar 1f940b2ffa Fix Double World Add issues - Fixes #328
Vanilla will double add Spider Jockeys to the world, so ignore already added.

Also add debug if something else tries to, and abort before world gets bad state
2016-06-22 22:50:19 -04:00
Aikar 3faaaab75d Optimize isInvalidYLocation, getType and getBlockData
Some pretty micro optimizations, but this is the hottest method in the server....

This will drastically reduce number of operations to perform getType

the 2 previous patches was squashed into 1
2016-06-22 22:43:02 -04:00
Aikar 0973e46de1 Update upstream 2016-06-22 22:18:41 -04:00
Zach Brown a656161705
Update upstream B/CB 2016-06-19 21:41:46 -05:00
Jadon Fowler d61f37c0b2
Toggleable Elytra Wall Damage
Instead of calculating the damage taken from hitting a wall, you can
disable it in the config.
2016-06-18 23:14:58 -07:00
Aikar 0aa71fbf41 Delay Chunk Unloads based on Player Movement
When players are moving in the world, doing things such as building or exploring,
they will commonly go back and forth in a small area. This causes a ton of chunk load
and unload activity on the edge chunks of their view distance.

A simple back and forth movement in 6 blocks could spam a chunk to thrash a
loading and unload cycle over and over again.

This is very wasteful. This system introduces a delay of inactivity on a chunk
before it actually unloads, which is maintained separately from ChunkGC.

This allows servers with smaller worlds who do less long distance exploring to stop
wasting cpu cycles on saving/unloading/reloading chunks repeatedly.
2016-06-18 23:33:57 -04:00
totokaka 4d7917a87d
Fix issue with setting player view distance 2016-06-18 20:52:18 -05:00
Aikar c8643cef2e Remove the item from the correct hand when spawn egg depletes 2016-06-18 03:44:11 -04:00
Techcable bf40dd5557
Make entities look for hoppers
Cherry-pick of PR GH-319
2016-06-18 01:06:44 -05:00
Zach Brown fab2a52fe1
Fix missed case in top of nether void damage patch
General cleanup, etc.
Closes GH-343
2016-06-18 01:06:37 -05:00
Jadon Fowler f9837e4068
Fix infinite loop when saving chunks
Running `/save-all flush` would start an infinite loop that prints:
    ThreadedAnvilChunkSotrage (world): All chunks are saved
2016-06-17 02:29:57 -07:00
Zach Brown d73cd6a4bc
Update upstream B/CB/S 2016-06-16 20:27:47 -05:00
Zach Brown cabb2450ed
Remove timings addition that was fixed upstream 2016-06-15 17:51:30 -05:00
Zach Brown cd6dadb8bc
Update upstreams 2016-06-15 17:43:51 -05:00
Zach Brown 98d1d2ac57
Update upstream B/CB
Merges fixes for SPIGOT-2404 and SPIGOT-2408 into Paper
2016-06-13 18:42:08 -05:00
Zach Brown 5bad141169
Update upstream CB/S 2016-06-12 12:00:07 -05:00
Zach Brown 14ffaf5d2c
Update upstream B/CB 2016-06-11 22:22:27 -05:00
Jedediah Smith 83191ef7a1
Resolve an ISE in MagmaBlock damage handling 2016-06-11 19:10:37 -05:00
Zach Brown 4924e9398f
MC-80966 - Always send chunk sections 2016-06-11 14:59:28 -05:00
Zach Brown 47db868df1
Update upstream and rebuild 2016-06-11 14:58:54 -05:00
Zach Brown b864322a18
Simplify getEntity by UUID patch, misc readme changes 2016-06-09 21:43:32 -05:00
Zach Brown c442e96eb9
Update to Minecraft 1.10 2016-06-08 23:42:46 -05:00
chickeneer 171a079cd2 Fix Potion Equals Bug
Will be in Spigot 1.10, but getting it in for 1.9 users
2016-06-08 20:41:10 -04:00
Aikar 3201cfe07a Fix issue with chests being erased - #322 Fixed 2016-06-07 03:03:51 -04:00
Aikar a9d8237509 more chunk unload queue fixes, hopefully fix various odd bugs 2016-06-07 02:08:59 -04:00
Aikar 092733e8ff Fix bug with lootable refresh not saving inventory if on 2016-06-06 19:56:51 -04:00
Martin Panzer cf65e06d96
Make falling block height nerf respect doEntityDrops 2016-06-06 21:14:35 +02:00
Aikar b394ec0472 Add sub timings to chunk map 2016-06-05 00:10:50 -04:00
Zach c2fd63eebf Merge pull request #317 from MyPlayPlanet/fix-fence-fallblock
Fix fallingblocks getting stuck on fences
2016-06-04 18:24:27 -05:00
Zach Brown dbbf2eb27b
Fix a few global configuration options being unavailable 2016-06-04 17:26:11 -05:00
Aikar e483da14b5 remove part of my hopper patch, not sure its doing what I intended 2016-06-04 11:52:25 -04:00
Aikar f4a43ec92d Update Upstream 2016-06-04 11:41:04 -04:00
Martin Panzer 96a263cddf
Fix fallingblocks getting stuck on fences 2016-06-04 10:11:03 +02:00
Aikar 4becba32a6 Only send Dragon/Wither Death sounds to same world
Also fix view distance lookup
2016-05-31 23:56:19 -04:00
Aikar 1aef85c2bb Fix skeleton horse spawn chance ignoring difficulty modifier if custom set
Also reduce diff
2016-05-30 12:50:57 -04:00
Zach a272c3c0cb Merge pull request #310 from MyPlayPlanet/server-name-param
Add server-name as server parameter
2016-05-29 18:35:03 -05:00
Zach Brown 0ae5768736
Update upstreams 2016-05-29 18:32:21 -05:00
Zach Brown 0a98d670fe
Stop relocating jopt-simple
Workaround for GH-189
Relocation breaks the lookup of a resource bundle, and this is easier than forking and maintaining our own version
 AFAIK this should be fine to do. Guess we'll see
2016-05-29 18:26:35 -05:00
Martin Panzer 7add3186a7
Add server-name as server parameter 2016-05-28 16:56:55 +02:00
Aikar a8d326f367 re-add timing that spigot missed 2016-05-27 22:29:09 -04:00
Aikar dfd19063f9 Ensure chunks never load async
Force operation to main thread if it occurs async
2016-05-27 22:28:23 -04:00
Zach Brown 06a6c422b4
Update upstreams 2016-05-27 21:22:18 -05:00
Aikar fe18b38aea Remove unneeded mob spawn cap patch - Fixes #235
I misread the code and thought the code kept looping until the mob spawn cap was hit.

Upon furthur review, this is not true, so this patch doesn't do anything sane.
2016-05-27 21:35:28 -04:00
Aikar 13492455a1 Update Upstream 2016-05-25 12:37:17 -04:00
Martin Panzer 391d0c04f8
Optimize Redstone torch list removal 2016-05-24 20:08:40 -05:00
Zach Brown b71c0e6f49
Remove comment and fix build }}}}} 2016-05-22 21:20:15 -05:00
Zach Brown 3ab1f229c5
Re-add some method synchronization and move to a SingleThreadedExecutor in MCUtils 2016-05-22 21:17:19 -05:00
Zach Brown aaf6c3f329
Temporarily remove synchronization from UserCache optimizations
In regards to GH-301
2016-05-22 21:07:45 -05:00
Zach Brown be3daf857b
Update old TNT cannon mechanics patch to 1.9.4
Behavior may be buggy or otherwise broken, testing with the option is needed.
`fix-cannons` has been removed in favor of `enable-old-tnt-cannon-behaviors`
2016-05-22 20:26:15 -05:00
Zach Brown 08701a47f7
Update upstream CB
Closes GH-303
2016-05-21 22:07:14 -05:00
Zach Brown df1df5d4b4
Update B/CB/S
Closes GH-288
2016-05-20 17:32:50 -05:00
Aikar d22f9071ff Avoid blocking on Network Manager creation
Fixes #294

Use a pending list to handle new connections so that the netty threads
do not block waiting for the main thread to finish ticking
2016-05-16 23:21:26 -04:00
Aikar 2c6feab963 MC-99914 - ensure EntityItem loads before EntityPotion 2016-05-16 22:54:48 -04:00
Aikar 18b4817a33 bump the default maxMobSpawns default to 250, and add support for unlimited
Use -1 to represent vanilla/unlimited.
Updated PaperWorldConfig to also update the individual worlds limit if it was set
to the new default value.

Should hopefully help #235
2016-05-16 22:07:12 -04:00
Aikar a8271cdc05 Optimize UserCache / Thread Safe
Because Techable keeps complaining about how this isn't thread safe,
easier to do this than replace the entire thing.

Additionally, move Saving of the User cache to be done async, incase
the user never changed the default setting for Spigot's save on stop only.
2016-05-16 21:14:28 -04:00
Aikar 484a23f437 Add Async Helper method to MCUtil 2016-05-16 20:50:09 -04:00
Aikar e56bbcdcda Refactor Lighting Queue System
may help #284

Cleans up the lighting queue system, reducing diff and improving implementation.

We no longer stop chunk unloads due to lighting updates, and instead simply flush the lighting queue.
The cost of forcing the chunk (and its neighbors!) to stay loaded waiting for its
lighting work to finish is much greater than simply taking the hit and doing the work.

This change also helps reduce the diff and avoid bugs with missed diffs by removing
duplicated logic.

Also switches to a more effecient data structure (ArrayDeque instead of LinkedList) for the queue itself.
2016-05-15 18:48:39 -04:00
Zach Brown 613655eae6
TileEntityLootable can call processRefill with a null player
Seems specific to EntityMinecartChest
Fixes GH-290
2016-05-15 01:41:36 -05:00
Aikar 024bc323bc More cases of avoiding marking active for chunks, to stop potential leaks 2016-05-13 22:27:20 -04:00
Aikar db83abe17d Bring back an EAR optimization from 1.9.2 2016-05-13 01:39:03 -04:00
Aikar bf2ed8af45 Fix chunk leak issue with queued light updates 2016-05-13 01:34:37 -04:00
Zach Brown 4cfcd525c4
Make watchdoge disabler its own patch file
Change implementation, smaller diff, less NPE
2016-05-12 23:05:46 -05:00
BlackHole ad63fd7d6a
Override BlockPosition.MutableBlockPosition.isValidLocation()
Fixes GH-281
2016-05-12 12:58:45 -05:00
Aikar 74a73b7223 Fix T/TE removal list bug
Thanks @Cat6363
2016-05-12 08:55:35 -04:00
Aikar dba25d1e86 unmark chunk as unloading when unload is cancelled
no obviousy bugs caused by this at the moment, but we may need to clean up process to be like
how I use to have it before vanilla did it, and we shouldn't leave this boolean in an invalid state.
2016-05-12 02:07:39 -04:00
Aikar 8e57fdd12b Fix chunk unload leak issues due to neighbor updates 2016-05-12 01:55:53 -04:00
Aikar b59e2a51de Paper 1.9.4 Update 2016-05-12 01:01:13 -04:00
Zach Brown 442d190103
Make beacons force secondary potion effect application
Fixes GH-273
Missed case from earlier fix 52f462d52d
2016-05-08 15:34:40 -05:00
Aikar c10df228a7 Don't save empty scoreboard teams to scoreboard.dat - Fixes #244
While I can't think of any reason to do this except some REALLY weird workflow, I still added a config
to let you save them incase someone runs into issues.
2016-05-07 23:39:22 -04:00
Aikar 0494f36efe fix bug with lootable API
was returning the NMS instance of objects instead of the Bukkit API objects
2016-05-07 21:16:38 -04:00
Gabscap abd098642a Add null-check to "Entity Tracking Improvement" 2016-05-06 16:42:09 +02:00
Zach Brown fa24cff5ba
Move this somewhere sane 2016-05-05 20:18:20 -05:00
Zach Brown 32ecc21162
Revert "Add debug property to disable the watchdog"
This reverts commit d1c470756f962801e7d3bc19bee9440f33a4706e.
2016-05-05 20:10:32 -05:00
Zach Brown 4f73ddb766
Add debug property to disable the watchdog
Use at your own risk, we will not waste our time with support
if your server times out and you cant put 2+2 together to
figure out that its because you killed the watchdoge
2016-05-05 20:04:28 -05:00
Aikar 9dffc43aec Fix hopper suck in patch bug
was checking for ItemStack's instead of EntityItem
2016-05-05 20:22:01 -04:00
Aikar f4a62ba294 Implement getNMSWorld on EntityMinecartContainer
Was missed because the class is abstract and nothing implementing the class was imported in Paper
2016-05-04 20:33:16 -04:00
Aikar 53abbfdc4c Entity Tracking Improvements
If any part of a Vehicle/Passenger relationship is visible to a player,
send all passenger/vehicles to the player in the chain.
2016-05-04 20:10:22 -04:00
Aikar 3f0e24eaf3 Do not load chunks for pathfinding 2016-05-04 19:53:33 -04:00
Aikar 211cba970b LootTable API & Replenishable Lootables Feature
Provides an API to control the loot table for an object.
Also provides a feature that any Lootable Inventory (Chests in Structures)
can automatically replenish after a given time.

This feature is good for long term worlds so that newer players
do not suffer with "Every chest has been looted"

API and Event added to control the Auto Replenish feature for players.
2016-05-04 19:46:28 -04:00
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