Commit Graph

1023 Commits

Author SHA1 Message Date
Zach Brown 6d9375d222 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
Zach Brown a0cd14a34c
Rebuild patches 2017-09-06 22:59:08 -04:00
Shane Freeder 3baf14a8ec
Rebuild patches 2017-09-03 01:09:35 +01:00
BillyGalbreath 75cb198fd2
LivingEntity#setKiller 2017-08-24 15:19:29 -04:00
kashike d43da9fc70 Allow specifying a custom "authentication servers down" kick message
Thanks to @phenomax in #855
2017-08-17 16:16:44 -07:00
Shane Freeder 4368f412c6
Update CB 2017-08-16 16:47:06 +01:00
Shane Freeder d77731eee2
Update S 2017-08-12 22:51:29 +01:00
Zach b22423be8b Merge pull request #853 from Brokkonaut/dragon-egg-falling
I forgot the // Paper comment
2017-08-11 21:39:54 -05:00
Brokkonaut fe8ce33ef5 I forgot the // Paper comment 2017-08-12 02:23:35 +02:00
Zach Brown bab98cf5ff
Don't let Player#getLocale return null
Thanks for reporting @MatrixTunnel
2017-08-11 18:16:00 -05:00
Zach Brown a8508dc5df
Remove null values in TileEntity tick list
Because who wouldn't want to tick a null tile entity right?
Fixes GH-851
2017-08-11 17:59:44 -05:00
Shane Freeder 912ee23e25
Update CB 2017-08-11 13:05:23 +01:00
Zach Brown 0181286eb9
Fix MC-117075: TE Unload Lag Spike
PaperMC port of https://github.com/MinecraftForge/MinecraftForge/pull/4281
2017-08-10 21:06:53 -05:00
Brokkonaut c84dd9edfe MC-94186 Fix dragon egg falling in lazy chunks
Fixes falling dragon eggs in lazy chunks fall to the block below the last empty block and replacing that block with them.

See also https://bugs.mojang.com/browse/MC-94186
2017-08-11 03:36:59 +02:00
Shane Freeder 42faa9e529 Update CB (#846) 2017-08-09 14:44:28 -04:00
BillyGalbreath 6f32c51336 Ocelot despawns should honor nametags and leash (#821) 2017-08-07 23:26:44 -04:00
BillyGalbreath 128c35000b Reset spawner timer when spawner event is cancelled (#819) 2017-08-07 23:25:59 -04:00
chickeneer 52c8fc7633 Fix Nether Portal Creation on cancelled event
Spigot is manipulating the Travel Agents canCreatePortal, but forgot to reset it on cancel

This causes nether portals to not be generated if the event is ever cancelled
2017-08-07 23:08:50 -04:00
Aikar ff5bd7b03b Upstream update 2017-08-07 23:05:16 -04:00
DemonWav 1ff893abe1
Fix this stupid bullshit 2017-08-06 17:18:20 -05:00
Shane Freeder efe49baecf
fix construction order in CraftBanner 2017-08-06 16:36:48 +01:00
Shane Freeder bec1253aa9
Update B/CB/S 2017-08-06 00:08:21 +01:00
Zach Brown f7e23ba7fa
Update upstream CB 2017-08-04 22:10:30 -05:00
Minecrell 9f3f6e02a6 Update JLine to 3.4.0. Fixes #736 2017-08-04 09:15:09 +02:00
BlackHole 6879328bf6 Update to 1.12.1 2017-08-03 17:27:54 +02:00
Aikar cdd6d8562a Update Upstream 2017-07-30 18:41:08 -04:00
Shane Freeder fed4815fff
Update B/CB 2017-07-28 15:51:46 +01:00
Aikar d841b8a345 Further refine logic 2017-07-28 00:04:01 -04:00
Aikar 5b6dfbc428 ProfileWhitelistVerifyEvent
Fires when the server is validating if a player is whitelisted.

Allows you to do dynamic whitelisting and change of kick message
2017-07-27 23:42:19 -04:00
Zach Brown 5c5e998cde
There is no reason to continue if we DC a player during shutdown
Thanks Ice
2017-07-27 21:40:07 -05:00
Aikar 7afc930c25 Fix a bug in recipe books that prevented them from working as they should 2017-07-27 09:38:21 -04:00
Aikar 11f2794bbe Remove use of FastUtil for unload queue, very bad performance 2017-07-27 00:25:13 -04:00
Aikar fabe552ae9 Resolves GH-806: Respect saving disabled before unloading all chunks in a world
This behavior causes a save to occur even though saving was supposed to be turned off.

It's triggered when Hell/End worlds are empty of players.
2017-07-27 00:09:24 -04:00
Aikar 7a8cce428f Rebuild patches (forgot to pull :() 2017-07-26 23:45:03 -04:00
Aikar 9a7cdcec39 Add getI18NDisplayName API
Gets the Display name as seen in the Client.
Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
2017-07-26 23:44:29 -04:00
Aikar 8e78124e46 Implement ensureServerConversions API
This will take a Bukkit ItemStack and run it through any conversions a server process would perform on it,
to ensure it meets latest minecraft expectations.
2017-07-26 23:44:29 -04:00
Aikar 4a35e438e9 Improve the Saddle API for Horses
Not all horses with Saddles have armor. This lets us break up the horses with saddles
and access their saddle state separately from an interface shared with Armor.
2017-07-26 23:44:29 -04:00
Shane Freeder 6177f2d61e Add missing coverages for getTileEntity in order to attempt to avoid exeptions when calling getTileEntity (#797) 2017-07-26 23:11:09 -04:00
willies952002 c86f61f8af Allow Changing of Player Sample in ServerListPingEvent 2017-07-26 23:06:56 -04:00
Zach Brown c6c6b4f69a
JDK-8176055: Fix heap dumps on Java 8u141+
In Java 8u141 (1.8.0_141-b15) and newer, the
com.sun.management.HotSpotDiagnostic::dumpHeap API has changed and now
requires all heap dumps to end with the .hprof file extension.

Before this change, servers running 8u141 would be unable to perform a
heap dump.

For more information, please see the official release notes of Java 8
Update 141, linked below.
http://www.oracle.com/technetwork/java/javase/8u141-relnotes-3720385.html
2017-07-26 20:28:56 -05:00
Aikar dcd4f3710f Upstream update 2017-07-26 21:12:40 -04:00
Zach Brown 43543c78c4
Update upstream CB 2017-07-24 06:47:43 -05:00
Zach Brown c9b00ce95d
Update upstream CB 2017-07-22 20:16:06 -05:00
Aikar cba0fa09d1 Remove last patch, didn't resolve issue. 2017-07-16 20:59:39 -04:00
Aikar 05a8914e8c SPIGOT-3427: Recalculate ConsoleSender permissions after plugins have loaded
Resolves a really weird race condition where the console sender could lose permission to execute
commands defined in plugin.yml with default=op
2017-07-16 20:41:30 -04:00
Aikar a7cb000633 Update upstream (memory leak fix) 2017-07-16 20:36:27 -04:00
Zach Brown 5938592845
Port Sponge's heap dump command feature to Paper
To dump the server heap, run the following command:
`/paper heap`

This is added with the intent that it is useful for administrators and
developers to more easily identify and resolve memory leaks. Both by examining
these dumps themselves and by more easily allowing them to send them to
knowledgable parties.

This is a nearly line-for-line port of the same Sponge feature. So all
credit for the idea and implementation belongs to the that team.

Specifically the following commits:
be08be04b0
5e10a1b795
2017-07-15 18:59:18 -05:00
Zach Brown fd624f502d
Clear plugin metadata only after onDisable()
Fixes GH-776
2017-07-15 14:38:16 -05:00
Aikar 00c64f7fb7 Fix Anvil Level sync to client
763827668e

Was done incorrectly and is now causing level desyncs to client.

Always send current level to the client, and instead make setWindowProperty set the level.
2017-07-11 23:23:17 -04:00
Shane Freeder 18be9d24e4
Update B/CB 2017-07-10 14:04:41 +01:00
Shane Freeder 1e4d3c3106
Update C 2017-07-09 10:56:36 +01:00
BillyGalbreath e0e23db485
Add Entity#fromMobSpawner API
Merges and closes GH-752
2017-07-09 01:39:09 -05:00
Shane Freeder 18c16a6111
Fix javadoc warnings 2017-07-03 19:54:40 +01:00
Zach Brown 9aae84ea43
Block player logins during server shutdown
Adds GH-765
2017-07-02 21:37:56 -05:00
Aikar a92bce595d Update upstream 2017-06-30 18:13:06 -05:00
Aikar 3244d917f3 Update upstream 2017-06-25 20:26:00 -04:00
Zach Brown b61aec52a4
Update upstream B/CB 2017-06-25 18:00:32 -05:00
Minecrell 816fa83734 Avoid using System.out for colored messages. Fixes #757
Messages written to System.out are automatically redirected to the
root logger by CraftBukkit. However, before the messages reach the
logger, they are encoded and later decoded again using the standard
system encoding.

On some systems (e.g. FreeBSD), the standard system encoding is
US-ASCII by default, which doesn't support the section sign (§) that
is used for the color codes. Consequently, they will never reach
the formatter that translates them into ANSI escape codes.

There is no reason to write these messages to System.out - it just
adds additional overhead and the encoding problems. We can just log
the messages directly with the root logger.
2017-06-21 11:04:28 +02:00
Aikar eb67c684d9 Fix Lootable bug 2017-06-20 18:59:18 -04:00
Aikar 825834273c update upstream 2017-06-20 18:53:55 -04:00
Zach Brown 272f130b5a
Update upstream CB/S 2017-06-18 20:37:08 -05:00
Aikar 1ebe37e5a3 Profile Lookup Events
Adds a Pre Lookup Event and a Post Lookup Event so that plugins may prefill in profile data, and cache the responses from
profiles that had to be looked up.
2017-06-17 20:57:29 -04:00
sweepyoface a88fd61a23 Add UnknownCommandEvent (#746) 2017-06-17 20:53:31 -04:00
Aikar 68e8778890 Shoulder Entities Release API
Let's you eject the Parrot naturally and get the newly spawned Parrot.
2017-06-17 15:21:39 -04:00
Zach Brown 76cede4391
Update upstream CB 2017-06-17 14:18:29 -05:00
Minecrell ca2b4c592f Continue reading from console input after EOT
There is usually no reason to stop reading from the console, so
preventing console input after EOT can be extremely confusing.

To prevent this, we can simply ignore the exception thrown by
JLine and continue reading normally.
2017-06-14 09:47:10 +02:00
Minecrell 56dcc3fcc7 Remove unneeded WINDOWS_COMPAT ConsoleAppender
It was originally added in Bukkit/CraftBukkit@6aafe7c5a1 as a
workaround for BUKKIT-4956 to fix console output on Windows.

I believe the original issue was related to LOG4J2-965 and fixed
in apache/logging-log4j2@d04659c. Minecraft 1.12 finally updated
the Log4J version so this issue is no longer present.

Console output is still working fine on Windows after removing this.
2017-06-13 10:36:35 +02:00
Zach Brown 2b51986c25
Update upstream B/CB/S 2017-06-12 22:28:09 -05:00
Zach Brown cb887bb4f4
Renumber patches, fix conflicts, update for 1.12 2017-06-11 20:02:57 -05:00
BillyGalbreath d6358a6ac1 PlayerAttemptPickupItemEvent (#732) 2017-06-11 19:46:11 -05:00
BillyGalbreath 209b70caab PlayerPickupItemEvent#setFlyAtPlayer (#683)
* PlayerPickupItemEvent#setFlyAtPlayer
2017-06-11 19:43:59 -05:00
BillyGalbreath 8ad4216e18 EntityPickupItemEvent (#679)
EntityPickupItemEvent
2017-06-11 19:42:01 -05:00
BillyGalbreath 1ca53dcefe Item#canEntityPickup (#680)
Item#canEntityPickup
2017-06-11 19:40:42 -05:00
Shane Freeder 06a34ec40a
Provide a configurable option to disable creeper lingering effect spawns 2017-06-11 21:29:04 +01:00
Zach 4eff799e80 Merge pull request #728 from Minecrell/terminalconsoleappender
Improve console implementation
2017-06-11 15:12:27 -05:00
Zach Brown 263bd3f539
Update upstream CB/S 2017-06-11 12:03:07 -05:00
Minecrell de2af506f3 Improve console implementation
Rewrite console improvements (console colors, tab completion,
persistent input line, ...) using JLine 3.x and TerminalConsoleAppender.

New features:
  - Support console colors for Vanilla commands
  - Add console colors for warnings and errors
  - Server can now be turned off safely using CTRL + C. JLine catches
    the signal and the implementation shuts down the server cleanly.
  - Support console colors and persistent input line when running in
    IntelliJ IDEA

Other changes:
  - Update JLine to 3.3.1 (from 2.12.1)
  - Server starts 1-2 seconds faster thanks to optimizations in Log4j
    configuration
2017-06-11 14:31:21 +02:00
kashike 90b2d02091 Add configuration option to prevent player names from being suggested 2017-06-09 07:32:12 -07:00
Aikar 19e9e0d647 Update upstream 2017-06-09 08:29:44 -04:00
Shane Freeder c829f34e0c
Re: Actually exit the JVM after stopping the server when /restart is ran 2017-06-09 01:46:54 +01:00
Shane Freeder 1f626a5ed9
Do not relocate fastutil 2017-06-08 19:07:00 +01:00
Shane Freeder 3c9f2a0a20
Update Paper to MC 1.12 2017-06-08 15:17:11 +01:00
Zach Brown 04d2d38581
Update upstream B/CB 2017-06-02 23:41:05 -05:00
Shane Freeder adab11a1f7
Update to 1.12-pre6 2017-05-31 22:12:46 -05:00
Zach Brown d032cd0568
Add more info, triggers to watchdog velocity warn
Adds entity name to exception message
Checks that the velocity to be set is NaN
2017-05-28 00:06:26 -05:00
Zach Brown 066f383b95
Update upstream B/CB/S 2017-05-27 23:25:17 -05:00
Zach Brown 9d6bb9d4c8
Bump outdated build notification back out to norm
Merge outdated notification patch into existing branding patch
2017-05-26 22:46:27 -05:00
Zach Brown 720769bf30
Update upstream B/S 2017-05-23 17:11:28 -05:00
Zach Brown c1d0b4b4c6
Update Paper to MC 1.12-pre5 2017-05-20 23:49:56 -05:00
Zach Brown 7ff16c0197
Merge branch 'master' into pre/1.12 2017-05-18 18:43:21 -05:00
Shane Freeder ee2ec9feac
Actually exit the JVM after stopping the server when /restart is ran 2017-05-18 21:15:47 +01:00
Zach Brown 210ef18495
Merge branch 'master' into pre/1.12 2017-05-17 17:53:13 -05:00
Shane Freeder ca6254067f
Workaround a jansi bug with Windows
Update Paperclip too while we're here
2017-05-17 17:51:54 -05:00
Zach Brown c6e0ceabd7
Add an option to make parrots stick to shoulders
When enabled, Parrots will not fly off of a player's shoulder everytime
they change Y level, touch water, sneeze, etc.
Instead, a player must toggle shift to "shake" the parrots off.
2017-05-16 21:34:47 -05:00
Zach Brown baf762a2c1
Update upstream B/CB/S 2017-05-15 11:25:20 -05:00
Zach Brown 8e610af635
Merge branch 'master' into pre/1.12 2017-05-15 10:57:42 -05:00
Shane Freeder a2459e30fd
Allow the watchdog to try sanely stopping the server 2017-05-15 16:36:15 +01:00
Zach Brown 6e2332a592
Switch 1.12-pre2 to its own version checks
Fix stream formatting issue that had been bugging me
2017-05-15 10:28:28 -05:00
Zach Brown 491286def4
Update to MC 1.12-pre2 2017-05-14 16:06:27 -05:00
Zach Brown 3052144be8
Update upstream CB 2017-05-13 20:37:46 -05:00