Commit Graph
100 Commits
Author SHA1 Message Date
Shane Freeder 1470add5c4 Fix compat with PluginClassloader implementations 2018-06-12 16:10:01 +01:00
Shane Freeder 4d3ec19658 [CI-SKIP] Fix comment on unlit chunk sending patch 2018-06-12 15:46:08 +01:00
Shane Freeder d8e8748f70 Fix missed change inside of CraftSkullMeta 2018-06-10 12:45:04 +01:00
Shane Freeder 50eaba9503 Cleanup last commit (Remember, always git diff!)
Because the one time you don't...
2018-06-09 20:03:42 +01:00
Shane Freeder 6812a948db Only close classloaders unless implict, reload or error on enabling (Closes #1120)
We also expose the control of this behavior to the API, while retaining
the old behavior unless implictly requested.
2018-06-09 18:58:04 +01:00
Shane Freeder 056199bd92 Add EntityTeleportEndGatewayEvent for entities (closes #1124) 2018-06-09 14:21:40 +01:00
Shane Freeder 463d2a2bc0 Allow plugins to replace texture if already set on skulls 2018-06-09 12:09:21 +01:00
Shane Freeder f6f8ff278f Update B/CB 2018-05-08 23:09:45 +01:00
Shane Freeder 45f29dbd99 re-revert Better reloading of pending unload chunks 2018-04-18 13:03:59 +01:00
Shane Freeder 72bd990d87 Allow logger instances to be used across reloads 2018-04-08 02:02:48 +01:00
Shane Freeder 0ed67b50a3 remove warning for custom entities in precreaturespawn (closes #1069)
There can be no survivors.
2018-04-08 01:44:14 +01:00
Shane Freeder 492ed12781 revert "Better reloading of pending unload chunks"
This change by spigot ensures that many interactins with chunks,
e.g. getting a list of TEs will cause the chunk to be marked for not
unloading and will block their unload. This is especially true for
servers using Timings (it needs to access the TE list of chunks), or
any plugins which need to access entity/TE lists periodically.
2018-04-08 01:26:37 +01:00
Shane Freeder 4502a946d7 Flag to disable the channel limit
In some enviroments, the channel limit set by spigot can cause issues,
e.g. servers which allow and support the usage of mod packs.

provide an optional flag to disable this check, at your own risk.
2018-03-31 17:07:09 +01:00
Shane Freeder 75a9b9e07d Delay initial ping sent to the client 2018-03-31 15:27:41 +01:00
Shane Freeder 1872a94c83 Update CB/S 2018-03-31 10:34:25 +01:00
Shane Freeder d0ccbd3161 Return null instead of players location on EnderChests opened by plugins 2018-03-10 20:26:05 +00:00
Shane Freeder d207b66009 Add OBFHELPER - InventoryEnderChest#getTileEntity 2018-03-10 17:11:51 +00:00
Shane Freeder 3af34bfe45 Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:07:40 +00:00
Shane Freeder db23ad30cb Fix ItemStack.damage OBFHelper (fixes #1036) 2018-03-08 19:41:00 +00:00
Shane Freeder ab5b167d08 Update CB/S 2018-03-08 19:36:35 +00:00
Shane Freeder 11625293d1 [CI-SKIP] The power of MIT compells me 2018-03-07 12:15:43 +00:00
Shane Freeder 9488fd00fc [CI-SKIP] Merge 'Add me (Mystiflow) to MIT list' 2018-03-07 12:13:50 +00:00
Shane Freeder cf2f346ccb Update B/CB 2018-02-24 04:03:32 +00:00
Shane Freeder f10fedcc19 Update CB 2018-02-18 14:41:40 +00:00
Shane Freeder ca86dc72f6 Extend Player Interact to cover CommandBlocks (@Phoenix616) 2018-02-18 14:39:02 +00:00
Shane Freeder 808e2dff16 Update B/CB 2018-02-12 18:04:05 +00:00
Shane Freeder a95873bd35 Close Structure Window when PlayerInteractEvent is cancelled
This is opened on the client, and so we send a CloseWindow packet
2018-02-11 10:52:04 +00:00
Shane Freeder 26144e31b3 Update B/CB 2018-02-08 10:07:27 +00:00
Shane Freeder 6d2da5e46e Update B/CB 2018-01-24 17:31:43 +00: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
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
Shane Freeder 21e410d42e [CI-SKIP] Fix apatch zsh support 2017-12-20 13:17:32 +00: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
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
Shane Freeder 149f6e1511 Fix ClassCastException in tabCompletor (fixes #942) 2017-11-27 16:52:32 +00: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
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
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
Shane Freeder c1e786e5b0 Merge pull request '#925' from Brokkonaut/NoAttackSoundsFromVanishedPlayers
Send attack SoundEffects only to players who can see the attacker
2017-11-08 16:27:17 +00:00
Shane Freeder 6d76e5b46a Update B/CB/S 2017-11-08 16:13:57 +00:00
Shane Freeder ef87e1e584 Revert maven-surefire to prevent a build regression
In some environments, the 2.20.1 version of the maven surefire plugin
can cause builds to fail due to changes in surefire in how it detects
that the forked JVM used for testing is still alive or not.
2017-11-06 23:58:32 +00:00
Shane Freeder 9fd1b06aa8 allow nerfed mobs to jump again
Entity AI tasks are initialized earlier in recent versions
of MC, this means that the fromMobSpawner has not been set
at the point where AI tasks are initilazed and so the goalFloat
will never be populated.

To rectify this, we can rely on the entity tick checking if
the mob is from a spawner each tick, and just initialize the
field should the paper option be enabled. This saves us from
having to modify the call chain in order to pass the fact that
it was created by a mobSpawner earlier.
2017-10-31 15:13:55 +00:00
Shane Freeder cfb274d3af rectify Configurable Cartographer Treasure Maps patch 2017-10-30 13:06:35 +00:00
Shane Freeder c738f996e8 Update B/CB/S 2017-10-29 15:19:21 +00:00
Shane Freeder 16e823a55d Don't send keepalive logger message if we've already disconnected 2017-10-17 21:40:53 +01:00
Shane Freeder 141f231181 Update CB 2017-10-17 14:05:49 +01:00
Shane Freeder 2b03c96d72 Merge pull request #919 from electronicboy/improve-keepalive-handling
allow keepalive to wait longer for a client response (#895)
2017-10-16 16:58:44 +01:00
Shane Freeder b1fa92a5e4 allow keepalive to wait longer for a client response
and also provide a bit more information in the server
logs so we can work out what is going on.
2017-10-15 14:00:42 +01:00
Shane Freeder 0e26fc4fbb Update CB 2017-10-13 22:07:48 +01:00
Shane Freeder e813ac8f9f Remove lighting patches from spigot that cause more harm than good.
This commit removes two patches from spigot:
please review the patch messages for more information, however;

"Allow Disabling of Random Lighting Updates" potentially leaves chunk light maps in an invalid state, with
how often the server looks at these anyways, this patch really serves a questionable nature, the work is
going to be done, only it's being delayed and allowing the light map to be left in a potentially outdated
state.

"Fix some chunks not being sent to the client" sends chunks before their lighting has been calculated, this
means that the client will recieve chunks before they lighting has been calculated which can cause rendering
artifacts. The original issue around this patch appears to have already been fixed years ago.
2017-10-04 07:02:04 +01:00
Shane Freeder 45c25c868e Update B/CB 2017-10-09 10:15:17 +01:00
Shane Freeder f618803d57 Revert keepalive back to 15 seconds 2017-10-09 09:49:12 +01:00
Shane Freeder d649f90be0 Update CB/S 2017-10-07 09:57:38 +01:00
Shane Freeder 4632195902 Fix patch message (off the main thread!)
Don't tired and push!
2017-10-06 04:27:26 +01:00
Shane Freeder f23cfe77fe rectify comment derp somebody just to point out 2017-10-05 03:39:51 +01:00
Shane Freeder 58a24b5aaf handle PacketPlayInKeepAlive async
In 1.12.2, Mojang moved the processing of PacketPlayInKeepAlive off the main
thread, while entirely correct for the server, this causes issues with
plugins which are expecting the PlayerQuitEvent on the main thread.

In order to counteract some bad behavior, we will post handling of the
disconnection to the main thread, but leave the actual processing of the packet
on the main thread.
2017-10-05 02:25:41 +01:00
Shane Freeder d398f6ccf6 Update CraftBukkit 2017-10-03 21:12:34 +01:00
Shane Freeder 2727dfbafc Update craftbukkit 2017-10-01 01:57:01 +01:00
Shane Freeder 4a6a473a13 Update metrics to support java 9
http://openjdk.java.net/jeps/223
Java decided to change their versioning scheme and in doing so modified the
java.version system property to return $major[.$minor][.$secuity][-ea], as
opposed to 1.$major.0_$identifier we can handle pre-9 by checking if the "major"
is equal to "1", otherwise, 9+

of course, it really wouldn't be all that simple if they didn't add a quirk, now would it.
valid strings for the major may potentially include values such as -ea to deannotate a pre release
2017-09-26 05:58:52 +01:00
Shane Freeder 5ce5ef1c9f Update to 1.12.2, May the Tacos be with you 2017-09-18 12:04:01 +01:00
Shane Freeder 9f7b45a945 Update CB, refactor 0229-Fix-this-stupid-bullshit
Refactored 0229-Fix-this-stupid-bullshit in order to prevent merge conflicts
when spigot decides to update the timer and to provide some form of hint in the
console/log on startup.
2017-09-15 15:37:05 +01:00
Shane Freeder 0ccfc595a4 Cache generated EventExecutors (fixes #786)
the first 'major' change in this PR is to cache the generated event
executrs from the ASM class, by doing this we only generate a single
class for every method that we need an executor for, thus reducing the
number of classes that are needed, especially in cases where plugins
re/unregister events all the time.

The second change is to modify the generated classloader map, generated
classloaders are not held against the plugin itself but the classloader
that the event is declared in, the implication here is that we cannot
drop generated classloaders when a plugin disable, and so we use a guava
weak-key'd hashmap, downfall here is that classes won't be GC'd until
guava drops the generated classloader, however the first change should
deal with most of the grunt.
2017-09-06 21:18:36 +01:00
Shane Freeder 89e69d652f Update CB/S 2017-09-09 08:17:12 +01:00
Shane Freeder ada06c9e99 Rebuild patches 2017-09-03 01:09:35 +01:00
Shane Freeder e78847f843 Update B 2017-08-20 11:50:29 +01:00
Shane Freeder 7fc4d26c3f Update CB 2017-08-16 16:47:06 +01:00
Shane Freeder a6eb798352 Update S 2017-08-12 22:32:01 +01:00
Shane Freeder dfd39f99e6 [CI-SKIP] Travis: linux sudo vm's have more ram, also stop travis screwing with the git modules 2017-08-12 00:22:44 +01:00
Shane Freeder 4bf6691021 Update CB 2017-08-11 12:02:53 +01:00
Shane Freeder efe076defb Merge pull request #849 from Brokkonaut/dragon-egg-falling
MC-94186 Fix dragon egg falling in lazy chunks
2017-08-11 02:54:29 +01:00
Shane Freeder fbeadaefff Update CB (#846) 2017-08-09 19:44:28 +01:00
Shane Freeder 23d7d25afe fix construction order in CraftBanner 2017-08-06 16:36:48 +01:00
Shane Freeder 2c4293b0f6 Update B/CB/S 2017-08-05 23:36:47 +01:00
Shane Freeder fe649493e3 Update B/CB 2017-07-28 14:45:16 +01:00
Shane Freeder cdcfbbe285 Add missing coverages for getTileEntity in order to attempt to avoid exeptions when calling getTileEntity (#797) 2017-07-27 04:11:09 +01:00
Shane Freeder dde8cb0bc6 Update C 2017-07-19 23:02:48 +01:00
Shane Freeder 43d46feb48 Update B/CB 2017-07-10 14:04:41 +01:00
Shane Freeder b1c4f49c7a Update C 2017-07-09 10:56:36 +01:00
Shane Freeder 6e57283e32 Fix javadoc warnings 2017-07-03 16:38:49 +01:00
Shane Freeder 451ff56710 Provide a configurable option to disable creeper lingering effect spawns 2017-06-11 21:13:59 +01:00
Shane Freeder 1ee4b36a97 Re: Actually exit the JVM after stopping the server when /restart is ran 2017-06-09 01:46:54 +01:00
Shane Freeder 36c0415d72 Do not relocate fastutil 2017-06-08 19:07:00 +01:00
Shane Freeder 8bb457e352 Update Paper to MC 1.12 2017-06-08 15:16:51 +01:00
Shane Freeder 9cf2e3b3dc Update to 1.12-pre6 2017-05-31 09:04:52 +01:00
Shane Freeder 1695252805 Actually exit the JVM after stopping the server when /restart is ran 2017-05-18 21:15:47 +01:00
Shane Freeder 0377b7b862 Workaround a jansi bug with Windows
Update Paperclip too while we're here
2017-05-17 17:51:42 -05:00
Shane Freeder f3bc708389 Allow the watchdog to try sanely stopping the server 2017-05-14 14:49:56 +01:00
Shane Freeder 4200b785dc Remove Ignore invalid Marker Icon ID's in maps
Spigot has patched this issue inside MapIcon, meaning that we no longer need to maintain this patch; Spigots patch also fixes #668 in that it will verify the length of the array, as well as protect against a negative type value being fetched from the array. Only real change is that Spigots patch returns a MapIcon.Type.PLAYER, instead of the RED_MARKER as originally PR'd by Aikar.
2017-04-22 15:32:06 +01:00
Shane Freeder 24f6670a17 Use lastIndexOf in Metrics class to futureproof
Because who's going to remember to change that line...
2017-04-22 02:37:58 -05:00
Shane Freeder a4036ed3cb Call stopRiding() on a Players death
Currently, when a player dies they are not automatically ejected from the entity they are riding, which allows
for the ridden entity to affect the players location on respawn (we're still riding it for a part of a tick), as well as allows a dupe to occur with the ridden entity teleporting to the new world with the player
2017-04-18 15:08:27 +01:00