Commit Graph

3155 Commits

Author SHA1 Message Date
Brokkonaut 8835dcc6f4
Replace HashSet with fastutil's ObjectOpenHashSet in HashTreeSet
HashSet sometimes uses compareTo() instead of equals() and this breaks the comparison of net.minecraft.server.NextTickListEntry (the only place where HashTreeSet is used).

In this cases duplicate entries could be added to the HashSet of HashTreeSet, because NextTickListEntry.compareTo() does not return 0, even if NextTickListEntry.equals() returns true.

ObjectOpenHashSet never uses compareTo(), so the inconsistencies of NextTickListEntry cause no problems.

Fixes https://github.com/PaperMC/Paper/issues/588
2017-10-29 15:35:16 +00:00
Shane Freeder 23fa02d399
Update B/CB/S 2017-10-29 15:19:21 +00:00
Shane Freeder cdce4486d8
Don't send keepalive logger message if we've already disconnected 2017-10-17 21:40:53 +01:00
kashike 1f2e01ba79 Merge pull request #914 from Minecrell/expose-client-protocol-host
Expose client protocol version and virtual host
2017-10-17 11:03:58 -07:00
Shane Freeder 47def2d7b9
Update CB 2017-10-17 14:05:49 +01:00
Shane Freeder 50d69c6328 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 64ef6a6233
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-16 15:37:17 +01:00
Zach 5209f4b1fe Merge pull request #918 from Zbob750/port/entity-list-command
Add command for listing entities in a world
2017-10-15 19:07:03 -04:00
Zach Brown a1ea3785ca
Add command for listing entities in a world
Port of 303a775fc3

Will display a list of all entities in a world, as well as which chunks
they are in. Hopefully, this will make tracking down chunks with lots of
entities easier.

Only real change from the forge version is that instead of dimension
IDs, we accept world names in the form of a string.

/paper entity list - Lists all entities in the player's current world
/paper entity list minecraft:zombie - Lists all zombies in the player's
current world

/paper entity list * world_nether - Lists all entities in the nether
/paper entity list minecraft:ghast world_nether - Lists all ghasts in
the nether
2017-10-15 17:53:49 -04:00
Shane Freeder e9eb9ec7eb
Update CB 2017-10-13 22:07:48 +01:00
Minecrell 1f4d3af169 Expose client protocol version and virtual host 2017-10-12 17:31:36 +02:00
kashike 532e7d4fa8 Merge pull request #913 from Minecrell/deprecate-string-player-sample
Deprecate player sample list that includes only the player name
2017-10-12 07:22:10 -07:00
Minecrell da11ba232e Deprecate player sample list that includes only the player name 2017-10-12 16:12:08 +02:00
Shane Freeder a6f9074647
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-10 23:27:47 +01:00
Shane Freeder 599d18420d
Update B/CB 2017-10-09 10:15:17 +01:00
Shane Freeder 5d722d4080
Revert keepalive back to 15 seconds 2017-10-09 09:49:12 +01:00
Shane Freeder 4e44c2b38c
Update CB/S 2017-10-07 09:57:38 +01:00
stonar96 524ebe97d7
Anti Xray v2 (#858) 2017-10-06 04:39:34 +01:00
Shane Freeder 0bff7a667d
Fix patch message (off the main thread!)
Don't tired and push!
2017-10-06 04:27:26 +01:00
Shane Freeder 8683f2dbb0
rectify comment derp somebody just to point out 2017-10-05 03:39:51 +01:00
Shane Freeder 45a9b3c847
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 aea7f3a02a
Update CraftBukkit 2017-10-03 21:12:34 +01:00
kashike 3d3ee1d9b4
Some logging changes 2017-10-03 12:13:38 -04:00
Shane Freeder 30b9b403e2
Update craftbukkit 2017-10-01 01:57:01 +01:00
Zach Brown a8c503b86f Update documentation around PlayerJumpEvent 2017-09-29 14:58:24 -04:00
Zach Brown 7b9c5a7c49 Fix build 2017-09-28 18:55:01 -04:00
DemonWav 142fc0d3c5
Add clean command and fix critical script issue 2017-09-28 17:52:05 -05:00
Zach Brown 56e3c7f06c Patch files need headers, weird isn't it 2017-09-28 18:43:36 -04:00
DemonWav febbd49147
Update Paperclip
Undoes the cache directory placement in the same directory as the
Paperclip jar.
2017-09-28 17:11:58 -05:00
Zach Brown 83c7399962 Add PlayerJumpEvent 2017-09-28 17:38:17 -04:00
Zach Brown 698f8bd7c2 Update upstream CB 2017-09-28 12:49:41 -04:00
Shane Freeder 1875fb559b
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 06:04:00 +01:00
Kyle Wood 6af424cb45
Update to final Java 9 compatible Paperclip 2017-09-25 21:28:14 -05:00
Kyle Wood 1fd3be5bfa
Update Paperclip, fixes subdirectory issue 2017-09-24 23:14:16 -05:00
Zach Brown 219f850ae6
Update paperclip 2017-09-24 14:38:20 -04:00
kashike e5e5063a7d Merge pull request #890 from Minecrell/slf4j
Allow plugins to use SLF4J for logging
2017-09-23 12:57:11 -07:00
Minecrell a4ed512a93 Disable logger prefix for various plugins bypassing the plugin logger
Some plugins bypass the plugin logger and add the plugin prefix
manually to the log message. Since they use other logger names
(e.g. qualified class names) these would now also appear in the
log. Disable the logger prefix for these plugins so the messages
show up correctly.
2017-09-23 21:45:34 +02:00
Minecrell 5a3fb946d8 Add workaround for plugins modifying the parent of the plugin logger
Essentials uses a custom logger name ("Essentials") instead of the
plugin logger. Log messages are redirected to the plugin logger by
setting the parent of the "Essentials" logger to the plugin logger.

With our changes, the plugin logger is now also called "Essentials",
resulting in an infinite loop. Make sure plugins can't change the
parent of the plugin logger to avoid this.
2017-09-23 21:45:34 +02:00
Minecrell ce34fd1ade Allow plugins to use SLF4J for logging
SLF4J is a commonly used abstraction for various logging frameworks
such as java.util.logging (JUL) or Log4j. Currently, plugins are
required to do all their logging using the provided JUL logger.
This is annoying for plugins that target multiple platforms or when
using libraries that log messages using SLF4J.

Expose SLF4J as optional logging API for plugins, so they can use
it without having to shade it in the plugin and going through
several layers of logging abstraction.
2017-09-23 21:45:27 +02:00
Minecrell bbfc0c8ee3 Handle plugin prefixes in Log4j configuration 2017-09-23 21:30:35 +02:00
Minecrell 10893fea38 Use Log4j IOStreams to redirect System.out/err to logger
Log4j2 provides an optimized implementation of PrintStream that
redirects its output to a logger. Use it instead of a custom
implementation for minor performance improvements and some fixes.

With the old implementation, each call to System.print()
results in a separate line, even though it should not result in
a line break. Log4j's implementation handles it correctly.
2017-09-23 20:42:15 +02:00
DemonWav 1eadde1ee5
Use absolute paths for pointing Paperclip to files 2017-09-23 13:30:55 -05:00
DemonWav 4fb6555d6e
Update Paperclip 2017-09-23 13:25:57 -05:00
DemonWav f3b8afd56a
Move eclipse compiler patch to POM changes patch
Also update to Paperclip 1.1-SNAPSHOT
2017-09-23 13:21:02 -05:00
kashike f7de07e2b9 Merge pull request #892 from Minecrell/tca-1.0.0
Update TerminalConsoleAppender to 1.0.0
2017-09-23 11:12:52 -07:00
Minecrell 72eaa08320 Update TerminalConsoleAppender to 1.0.0 (updates JLine)
Fixes #879
2017-09-23 19:57:16 +02:00
DemonWav 73e1b3f2f0
Remove eclipse compiler for Paper-API
Fixes building with JDK9
2017-09-22 20:12:23 -05:00
kashike 5a42891c48 Avoid NPE in AdvancementDataWorld thanks to Spigot being dumb 2017-09-21 07:01:40 -07:00
Zach Brown 88ba5fcaac
Update upstream CB
Fixes GH-887
2017-09-18 22:01:43 -04:00
Aikar dfe2b00874 World can be null for sign conversion, fixes #886 2017-09-18 21:03:45 -04:00