Commit graph

2822 commits

Author SHA1 Message Date
Aikar
31aa97180b Update Upstream 2018-01-01 16:29:33 -05:00
Shane Freeder
b7c8cb0244 Update B/CB 2017-12-31 13:45:47 +00:00
Shane Freeder
743c6f83d4 Update B/CB 2017-12-30 08:55:15 +00:00
Shane Freeder
77f24f0be5 Update B 2017-12-28 16:56:31 +00:00
Zach Brown
fa8db475d6 Update upstream B/CB/S 2017-12-27 22:45:33 -06:00
Shane Freeder
a6be0047d7 Update CB 2017-12-26 00:52:24 +00:00
Shane Freeder
67eb9725e2 Provide a system property to set the keepalive limit
add a system property to allow people to tweak how long the server
will wait for a reply. There is a compromise here between lower and higher
values, lower values will mean that dead connections can be closed sooner,
whereas higher values will make this less sensitive to issues such as spikes
from networking or during connections flood of chunk packets on slower clients,
at the cost of dead connections being kept open for longer.
2017-12-24 13:44:41 +00:00
Zach Brown
9ba62bc998 Restructure lighting queue runnable handling
Instead of overriding add within the queue, never add runnables to the
queue if the light queue is disabled.

This change is made to make timings reports and stacktraces less
confusing for administrators, who prior to this change, would have seen
the lighting queue referenced in both, regardless of whether or not it
was enabled.

This change should not affect performance, nor is it made with the
intent to.
2017-12-22 15:25:01 -06:00
Aikar
c3791a5225 Ability to apply mending to XP API
This allows plugins that give players the ability to apply the experience
points to the Item Mending formula, which will repair an item instead
of giving the player experience points.

Both an API To standalone mend, and apply mending logic to .giveExp has been added.
2017-12-20 17:50:26 -05:00
Shane Freeder
21e410d42e [CI-SKIP] Fix apatch zsh support 2017-12-20 13:17:32 +00:00
Aikar
4f6b49e007 Always copy completions for #setCompletions in Tab Complete Events
Per feedback on 6364cb2
2017-12-20 01:09:54 -05:00
Aikar
8665021cdb ExperienceOrbMergeEvent
Fired when the server is about to merge 2 experience orbs
Plugins can cancel this if they want to ensure experience orbs do not lose important
metadata such as spawn reason, or conditionally move data from source to target.
2017-12-19 22:57:46 -05:00
Aikar
0968270200 Make PlayerPickupExperienceEvent extend PlayerEvent 2017-12-19 22:08:28 -05:00
Aikar
ac0ae12415 PlayerPickupExperienceEvent
Allows plugins to cancel a player picking up an experience orb
2017-12-19 22:05:16 -05:00
Aikar
1f44d0b82b Auto sort enchants on items - Fixes #915
This ensures that enchants are never added in inconsistent order.
The client shows the enchants in a sorted order already

This will auto fix previously created items too on load.
2017-12-19 17:56:13 -05:00
Aikar
6364cb2591 AsyncTabCompleteEvent shouldn't store Immutable Lists 2017-12-19 16:52:53 -05:00
Aikar
db3cc65511 ExperienceOrbs API for Reason/Source/Triggering player
Adds lots of information about why this orb exists.

Replaces isFromBottle() with logic that persists entity reloads too.
2017-12-19 16:46:27 -05:00
Aikar
7cc544d715 Add World#createExplosion(Location, float, boolean, boolean) API
don't know why this API was missing
2017-12-19 16:25:38 -05:00
Shane Freeder
497103c507 Don't blindly send unlit chunks when lighting updates are allowed
Spigot, by default, disables several mechanisms around how chunks are
lit, if ever, which has forced them to always send chunks before vanilla
would consider them ready to send, causing for lots of issues around
lighting glitches.

Shamefully, the amount of work to relight chunks can be detremental
to some servers, meaning that forcibily disabling light updates can
cause major performance issues.

as such, we make a compromise; if this "feature" is disabled, we will
only send chunks which are actually ready to be sent, otherwise, we
will always send chunks.
2017-12-18 07:37:50 +00:00
Shane Freeder
11635988ce Restore broken lighting logic from spigot 2017-12-18 07:35:42 +00:00
Aikar
3d71965eb8 Update upstream 2017-12-17 01:34:54 -05:00
Aikar
602a6e2bee SPIGOT-3699: Fix cloning banner itemstacks
the banner meta would end up with a shared reference to the patterns
2017-12-15 15:57:15 -05:00
Zach Brown
efc08694d8 Update upstream CB 2017-12-12 21:34:50 -05:00
Aikar
fa254542bc Display warning on deprecated recipe API
Any plugin still using this API will result in the server saving an inconsistent UUID to player data files,
which then triggers warnings such as "Tried to load unrecognized recipe: bukkit:9e5b92f5-e549-4f47-b0a8-9f89390ed77b removed now."
on the players login.

Plugin authors need to define a key to keep it consistent between server restarts.
2017-12-09 12:42:11 -05:00
Aikar
036910d741 add latest copy of my apatch to the repo for easy access 2017-12-09 12:37:31 -05:00
Aikar
0ef74cf264 Update upstream 2017-12-09 12:37:09 -05:00
Shane Freeder
fd25094445 Update B/CB 2017-12-07 01:07:36 +00:00
Shane Freeder
786d044753 Update B/CB/S 2017-12-05 01:34:10 +00:00
Aikar
f854342c1b Fix AsyncTabCompleteEvent not setting isCommand 2017-11-29 23:36:31 -05:00
Aikar
93477a5b68 Avoid NPE in PathfinderGoalTempt 2017-11-29 22:19:24 -05:00
Shane Freeder
149f6e1511 Fix ClassCastException in tabCompletor (fixes #942) 2017-11-27 16:52:32 +00:00
Aikar
f7f8c59f60 AsyncTabCompleteEvent
Let plugins be able to control tab completion of commands and chat async.

This will be useful for frameworks like ACF so we can define async safe completion handlers,
and avoid going to main for tab completions.

Especially useful if you need to query a database in order to obtain the results for tab
completion, such as offline players.

Also adds isCommand and getLocation to the sync TabCompleteEvent
2017-11-26 22:05:48 -05:00
Shane Freeder
2a3e13cc52 Fix javadocs 2017-11-25 17:53:42 +00:00
Shane Freeder
ea4b94d62e Do not use a snapshot for hoppers
In 1.12, Spigot improved their blockstate implementation to take a full
copy of the TE, this allows for a much better snapshot in that it will
actually retain all of the TE's state, it is a much more expensive
implementation. This is also implicated with their backwards compat
for inventories meaning that accessing of a snapshots inventory of a
placed block will actually access the inventory of the live TE, making
creation of a snapshot redundant if the only intent is to interact with
the TEs inventory.

Hoppers are a horrible hit, every attempt to transfer an ItemStack will
result in two TileEntity snapshots, with two hoppers and a double chest
ontop, I managed to log 380 cases per second where a snapshot would have been
taken in cases where the snapshot is redundant.
2017-11-25 17:35:32 +00:00
Aikar
584a612fc0 API to get a BlockState without a snapshot
This allows you to get a BlockState without creating a snapshot, operating
on the real tile entity.

This is useful for where performance is needed
2017-11-24 07:28:57 +00:00
Shane Freeder
4bb7ee49bb Update B/CB 2017-11-24 07:14:38 +00:00
Shane Freeder
902eb624bd Update B/CB 2017-11-20 14:49:40 +00:00
Zach Brown
4966489929 Fix view distance API handling on negative values
Prior to this change, if a player was ever set to have a negative view
distance, an attempt to set them back to the default would fail, leading
to them appearing to be stuck in that state.

Now we just interpret that negative value as a "reset" to default.
2017-11-18 21:45:22 -05:00
Shane Freeder
a907e21341 Update B/CB/S 2017-11-18 03:04:21 +00:00
Shane Freeder
03960c3d95 Update B/CB/S 2017-11-17 09:40:49 +00:00
Shane Freeder
f77372c65e use CB BlockState implementations for captured blocks (Fixes #868) 2017-11-16 12:37:52 +00:00
Shane Freeder
7c23108a2d Update B/CB 2017-11-16 07:16:50 +00:00
Zach Brown
0c011b87c5 Merge pull request #935 from avatarmc/prevent-disconnected-logins
Prevent logins from being processed when the player has disconnected
2017-11-15 22:36:56 -05:00
Zach Brown
dfab59dfc7 Fix logic for unconditional xp orb merging
Fixes GH-936
2017-11-13 20:30:45 -05:00
Aikar
1f4f072193 Update CB Upstream 2017-11-12 18:53:38 -05:00
Aikar
64fdf06f84 Use <= instead of < for structure patch
Thankfully I randomly think about code and randomly wondered if I used <= or < here, and caught this!

This would of missed some chunks for the structure at the highest X/Z
2017-11-12 18:51:10 -05:00
killme
d117fd54d1 Prevent logins from being processed when the player has disconnected 2017-11-12 20:04:08 +01:00
Aikar
41afad51da Improve Structures Checking
Improves performance by keying every chunk thats part of a structure to a hashmap
instead of only the first one.

This allows us to avoid iterating the entire structures value set to see
if a block position is inside of a structure.

This should have pretty decent performance improvement to any standard world
that has been around for a whilewith lots of structures due to ineffeciencies
in how MC stores structures (even unloaded chunks has structured data loaded)
2017-11-11 18:47:30 -05:00
Zach Brown
9650c9dddc Add Obfuscation helper for armor change impl
Also alphabetize the importmcdev script... heathens, all of you
2017-11-11 00:07:45 -05:00
pkt77
c849f4f132 Add PlayerArmorChangeEvent
Closes GH-928
2017-11-10 23:46:55 -05:00