Commit graph

2752 commits

Author SHA1 Message Date
Zach Brown
689fdea2c7 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:43:16 -04:00
Shane Freeder
0e26fc4fbb Update CB 2017-10-13 22:07:48 +01:00
Riley Park
a7bbff405e 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
4b3dd7c7e8 Deprecate player sample list that includes only the player name 2017-10-12 15:50:17 +02: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
stonar96
3a9f17bc4b Anti Xray v2 (#858) 2017-10-05 14:38:21 +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
Riley Park
7cecdeca83 Some logging changes 2017-10-03 12:13:38 -04:00
Shane Freeder
2727dfbafc Update craftbukkit 2017-10-01 01:57:01 +01:00
Zach Brown
91e639e718 Update documentation around PlayerJumpEvent 2017-09-29 14:58:24 -04:00
Zach Brown
563ee0f840 Fix build 2017-09-28 18:54:38 -04:00
DemonWav
f29c81c414 Add clean command and fix critical script issue 2017-09-28 17:52:05 -05:00
Zach Brown
6e9bfd7ac6 Patch files need headers, weird isn't it 2017-09-28 18:43:36 -04:00
DemonWav
9705fff3dc 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
12bf7a15ad Add PlayerJumpEvent 2017-09-28 17:38:17 -04:00
Zach Brown
4187be885c Update upstream CB 2017-09-28 12:49:41 -04: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
Kyle Wood
6b2013d8b9 Update to final Java 9 compatible Paperclip 2017-09-25 21:28:14 -05:00
Kyle Wood
c343408d4d Update Paperclip, fixes subdirectory issue 2017-09-24 23:14:16 -05:00
Zach Brown
8bb5dda0f2 Update paperclip 2017-09-24 14:38:20 -04:00
Riley Park
2ee4b8a94d Merge pull request #890 from Minecrell/slf4j
Allow plugins to use SLF4J for logging
2017-09-23 12:57:11 -07:00
DemonWav
60f643684a Use absolute paths for pointing Paperclip to files 2017-09-23 13:30:55 -05:00
DemonWav
1f65945d1c Update Paperclip 2017-09-23 13:25:57 -05:00
DemonWav
81d69d5889 Move eclipse compiler patch to POM changes patch
Also update to Paperclip 1.1-SNAPSHOT
2017-09-23 13:17:20 -05:00
Riley Park
fc7479cfe5 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
03891a7fe5 Update TerminalConsoleAppender to 1.0.0 (updates JLine)
Fixes #879
2017-09-23 19:57:16 +02:00
DemonWav
52c741517f Remove eclipse compiler for Paper-API
Fixes building with JDK9
2017-09-22 20:12:23 -05:00
Minecrell
c4553b3936 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-22 09:47:01 +02:00
Minecrell
241a264046 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-21 19:44:24 +02:00
Minecrell
a64c8c70da 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-21 16:34:36 +02:00
Minecrell
57d987e936 Handle plugin prefixes in Log4j configuration 2017-09-21 16:18:30 +02:00
Riley Park
041250dfb9 Avoid NPE in AdvancementDataWorld thanks to Spigot being dumb 2017-09-21 07:01:40 -07:00
Zach Brown
7be477c2cc Update upstream CB
Fixes GH-887
2017-09-18 22:01:43 -04:00
Aikar
68b6b07086 World can be null for sign conversion, fixes #886 2017-09-18 21:03:45 -04:00
Riley Park
d5dcfbc32d Avoid NPE during CraftBlockEntityState load 2017-09-18 13:39:40 -07:00
Zach Brown
0a9f8c2d56 Update B 2017-09-18 12:03:48 -04:00
Shane Freeder
5ce5ef1c9f Update to 1.12.2, May the Tacos be with you 2017-09-18 12:04:01 +01:00
Minecrell
8556beee8c 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-18 12:07:47 +02: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
Zach Brown
fe190b78a1 Fix race condition with chunks, dead tile entities
Fixes PaperMC/Paper#883 same issue as MinecraftForge/MinecraftForge#4386

A more detailed anaylsis of what is probably going on, courtesy of
@bs2609 and the MCForge Issue Tracker is:

When a chunk is unloaded, the entities and tile entities it contains are
marked for removal. The actual removal (from the world) occurs later,
when the world ticks its entities.
Conversely, when a chunk is loaded, it generally adds its entities to
the world promptly, without queuing.

Here's the normal sequence of events:

Chunk unloaded
Old entities removed
Chunk loaded
New entities added

However, what can happen:

Chunk unloaded
Chunk loaded
New entities added
Old entities removed

This occurs when an unloaded chunk is reloaded before its corresponding
entities have been removed.
2017-09-11 22:21:57 -04:00
Shane Freeder
89e69d652f Update CB/S 2017-09-09 08:17:12 +01:00
Zach Brown
4424c3dec9 Rebuild patches 2017-09-06 22:59:08 -04:00
CDAGaming
d8c452b7e9 Update CB & B (#876) 2017-09-06 11:31:37 -05:00