Commit Graph

2209 Commits

Author SHA1 Message Date
Spottedleaf 7c640a1ae2 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#2415)
* fixup patch and rebuild

* Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
bde198c9 SPIGOT-5246: PlayerQuitEvent.get/setQuitMessage() is incorrectly marked as NotNull
24ad5a79 SPIGOT-5240: Vector.angle not valid for angles very close to each other
a143db9a SPIGOT-5231: ShotAtAngle API for Fireworks
10db5c3d SPIGOT-5226: Update Javadoc of PlayerDeathEvent

CraftBukkit Changes:
1ec1b05e SPIGOT-5245: Unneeded cast to WorldNBTStorage in CraftWorld#getWorldFolder
e5e8eec2 SPIGOT-5241: setAttributeModifiers does not work on untouched stack
803eaa31 SPIGOT-5231: ShotAtAngle API for Fireworks
7881d2ae SPIGOT-5237: Horses, pigs do not drop their inventory
06efc9ec Don't accept connections until all plugins have enabled
da62a66a SPIGOT-5225: World handle isn't closed if world is unloaded without saving
104b3831 SPIGOT-5222: Cannot get Long values from Entity memory
f0b3fe43 SPIGOT-5220: Server CPU usage reaches 100% when stdin is null

Spigot Changes:
e5b1b5db SPIGOT-5235: Destroy expired area effect clouds / fireworks that are inactive
cbcc8e87 Make region files more reliable to write to
8887c5f4 Remove redundant late-bind option
dac29063 Rebuild patches

* Preserve old flush on save flag for reliable regionfiles

Originally this patch was in paper

* Fix some issues with the death event

- Entities potentially entering a glitched state to the client where
they appear to be falling over
- Donkeys losing their chest if the event was cancelled (only an
issue since the upstream merge)
- Some wither death logic running for an entity killed by a wither
2019-08-05 11:35:40 -05:00
BillyGalbreath 474e5ad269 Fix enderpearl item use cooldown (fix #2412) (#2413) 2019-08-05 03:15:53 +01:00
Spottedleaf ae90011500 Fix chest logic being weird for coordinates that sum to 0 or a… (#2364)
We were previously calling what looks like a legacy check for distance
away for the inventory. Unfortunately, with our logic, we called the
open logic before the active container was set. So the legacy check
would register 0 viewers and the logic would become bugged.
2019-08-02 18:48:22 +01:00
Omer Uddin 263057961b Offset Itemframe ticking (#2385) 2019-08-02 18:31:24 +01:00
Nassim c80ba8dcc4 Fix server crash with piercing shots through vanished players (#2390) 2019-07-31 23:04:45 +01:00
Shane Freeder 93891ad57a
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
3d9d2efc SPIGOT-5202: WorldCreator#copy does not copy all options

CraftBukkit Changes:
3e7b3862 SPIGOT-5195 (#2): Player loot table does not drop when keepInventory is on
c88867e4 SPIGOT-5208: Reset state on cancelled EntityTransformEvent to prevent event spam
f744c09c SPIGOT-5214: setCooldown not working
860b3540 SPIGOT-5204: Typo in deprecated enchantment name
2019-07-28 15:32:14 +01:00
Shane Freeder 42daaaddf6
Seperate out incremental saving
This fixes multiple issues, mainly cleaning up the patch as well as making save-all
actually save all. (Worth noting, that you should probably be using save-all flush if
you're relying on this for backups)
2019-07-28 01:39:02 +01:00
Shane Freeder 3a713bd57b
Mark entities as being ticked when notifying navigation 2019-07-28 00:53:49 +01:00
Spottedleaf 6f709200dd
use getChunkImmediately for vehicles 2019-07-28 00:38:49 +01:00
Spottedleaf fe7ef7b5d6 Do not schedule to main for getChunkImmediately type calls (#2362)
They are MT-Safe already. These changes reduce deadlock chances
given these calls are used in Entity#isValid(), and plugins
check this in packet handling...
2019-07-26 02:36:26 +01:00
Spottedleaf c6987e1a02 Peek the unload queue for chunk generation checks (#2332) 2019-07-23 22:41:26 -05:00
Spottedleaf 4ac69cec8d Bring task execution into server tick timings (#2357) 2019-07-23 22:20:14 -05:00
Black Hole 8ecd433727 Set spawning entity for fireworks spawned by a crossbow (#2358)
Fixes #2327
2019-07-23 22:12:40 -05:00
Lucavon ad8dbf3d2b
Add option to disable relative projectile velocity
Allows server owners to use 1.8 (and prior)'s projectile behavior
(ignored shooter's velocity when calculating projectile's velocity).

This patch adds an option "disable relative projectile velocity", which, when
enabled, will cause projectiles to ignore the shooter's current velocity,
like they did in Minecraft 1.8 and prior.
If a player is falling, for example, their shooting range will be drastically
reduced, as a downwards velocity is applied to the projectile. This prevents
players from saving themselves from falling off floating islands, for example,
as a thrown ender pearl will not make it back to the island, while it would
have in 1.8.

While this could easily be done with plugins, too, there are multiple problems:
1) If multiple plugins cancel the velocity by subtracting the shooter's velocity
   from the projectile's velocity, the projectile's velocity would be different.
   As there's no way to detect whether the projectile's velocity has already been
   adjusted to ignore the player's velocity, plugins can't not do it if it's not
   necessary.
2) I've noticed some inconsistencies, e.g. weird velocity when shooting while
   using an elytra. Checking for those inconsistencies is possible, but not as
   efficient as just not applying the velocity in the first place.
3) Solutions for 1) and especially 2) might not be future-proof, while this
   server-internal fix makes this change future-proof.
2019-07-23 20:31:21 -05:00
Minecrell fa8b4994ac Update TerminalConsoleAppender + JLine, use Jansi instead of JNA (#2299)
Remove dependency on JNA since it is no longer needed.
2019-07-23 19:25:05 -05:00
Shane Freeder 48b6bfe2a6
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
c987938a SPIGOT-5180: Add Villager#sleep() and #wakeup() methods

CraftBukkit Changes:
7f33c6a2 SPIGOT-5196: Restore previous version behaviour regarding cancelled BlockBreakEvent
6a5fc902 Improve diff in EntityHanging
c98d61bf SPIGOT-4712: Allow spawning of upwards or downwards facing item frames
db971477 SPIGOT-5199: Fix NPE if setting the book of the ItemMeta of a lectern
b0ef3996 SPIGOT-4679 Fix black lines after book paragraphs
1215188f SPIGOT-5180: Add Villager#sleep() and #wakeup() methods
c03b2bef SPIGOT-4975: NPE on WorldGenStronghold When Using Multiple Worlds
65ea162c Ensure Bukkit data pack is always up to date
0b107b8d MC-157395, SPIGOT-5193: Small armor stands do not drop loot
6da0abca SPIGOT-5195: Player loot table does not drop when keepInventory is on
8b09d983 SPIGOT-5190: Superfluous EntityCombustEvent called when using fire aspect sword

Spigot Changes:
1981d553 SPIGOT-5198: Catch more bad async operations
6a14ca46 Rebuild patches
2019-07-23 20:17:32 +01:00
Spottedleaf 396d3f13c4 Ensure xray does not perform non MT-Safe operations (#2361) 2019-07-23 10:59:48 +01:00
Spottedleaf 160d1bc9e4 Only write to cached header in RegionFile if write potentially succeeds (#2294) 2019-07-21 16:36:27 -05:00
Andreas Troelsen ef6823811b
SPIGOT-5190: Do not call superfluous EntityCombustEvent 2019-07-20 19:14:06 -05:00
Spottedleaf 9fe63a1673 Update to 1.14.4 (#2333) 2019-07-19 23:01:24 -05:00
Spottedleaf 920ad7c742 Use getChunkIfLoadedImmediately in places (#2297)
* Use getChunkIfLoadedImmediately in places

This prevents us from hitting chunk loads for chunks at or less-than
ticket level 33 (yes getChunkIfLoaded will actually perform a chunk
load in that case).

* Resolve issue #2301

* Also target World#getChunkIfLoaded
2019-07-17 23:41:24 -05:00
Shane Freeder 0708fa363b
Updated Upstream (CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
eb2e6578 SPIGOT-5116: Fix concurrent modification exception inside ChunkMapDistance
989f9b3d SPIGOT-4849: Fix server crash when accessing chunks during chunk load/unload/populate events
f554183c SPIGOT-5171: Don't fire PlayerTeleportEvent if not actually moving
2349feb8 SPIGOT-5163: Cancelling PlayerBucketFillEvent visually removes the targeted block

Spigot Changes:
9a643a6a Remove DataWatcher Locking
2019-07-16 23:09:32 +01:00
kickash32 fa726c3f76 Create 0402-Only-count-Natural-Spawned-mobs-towards-natural-spaw.patch
delete old patch

Comment didn't make sense

Use original header

use original date in header
2019-07-13 13:38:22 -07:00
Spottedleaf 36c4831619 Fix loadChunk(x, z, false)
I was not correctly checking if the status was even cached.

Actually fix it this time

Do not forget about the async chunk placeholder

Actually fix it this time I hope

No plugin tickets for getChunkAtGen(x, z, boolean)

Change ChunkStatus ABI

This is required for asynchronous IO. async io will require
calls to getChunkStatusIfCached to return the chunk status for a
chunk currently queued to save - this cannot be reasonably done
with current ABI
2019-07-13 13:18:54 -07:00
Shane Freeder ff085b8e8e
Improve timings around chunk loading
Timers such as syncChunkLoad are hit persistently due to changes in how
this mechanism works which impacts the usablity of timings
2019-07-12 05:13:15 +01:00
Shane Freeder 7e8ae207bd
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
e99c9444 Add Plugin Chunk Ticket API
6a235f06 Fix incorrect nullability annotations for PlayerJoinEvent's join message

CraftBukkit Changes:
5f889388 Tweak build expiration to 7 days
572c02b0 MC-155077, SPIGOT-5113: EntityTracker desync
7ad3a1f4 SPIGOT-5146: BlockDataMeta does not work
60860983 SPIGOT-5155: Setting EntityExplodeEvent yield to 0 still causes blocks to drop
087a2cf4 Print number of force loaded chunks per plugin in crash reports
07b5b06d Add Plugin Chunk Ticket API
7ffb2a27 SPIGOT-5149: resetRecipes does nothing
a2275f19 SPIGOT-5141: World.generateTree() causes ClassCastException with huge mushrooms
31d4a777 SPIGOT-5142: Ignore invalid firework effects

Spigot Changes:
5e4e7f32 BUILDTOOLS-471: Rebuild patches
6e944739 SPIGOT-5159: Raider activation range overridden by Monster range
2019-07-11 17:59:21 +01:00
kashike 8812fed9bb
Merge pull request #2240 from Spottedleaf/anti-xray
Re-Add Anti-Xray
2019-07-09 18:11:34 -07:00
Spottedleaf ef7202b9c2 Fix entity count in timings graph (#2293) 2019-07-08 14:29:22 +01:00
Shane Freeder 0a8afdacb6
Fix more issues with timings
- fixed usage of timings IDs (fixes region view)
- fixed more duplicated tick handlers
2019-07-08 03:54:40 +01:00
Shane Freeder c8bc57c719
Cleanup ChunkMapDistance patch 2019-07-05 03:23:33 +01:00
Shane Freeder 276afaa2ea
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
c2d72c82 SPIGOT-3102: Add EXPLOSION SpawnReason

CraftBukkit Changes:
fca41573 SPIGOT-5136: EntityPortalEvent getting called on interdimensional entity teleports
604c8bf0 SPIGOT-3102: Add EXPLOSION SpawnReason
375969a6 Re-add chunk GC for plugin chunk loads
58151368 SPIGOT-5123: Snapshot tile entities can end up with a non-null world
491c8482 SPIGOT-5130: PersistentDataContainer not removing values on TileEntities

Spigot Changes:
d05d3c1f Rebuild patches
2019-07-05 03:13:38 +01:00
Jonathan Frederick 0d079188ea Remove unused fire-physics-event-for-redstone config option (#2277) 2019-07-03 15:44:07 -05:00
Shane Freeder 1bacdbd169
use a Queue in ChunkMapDistance
An oversight in this patch may be to blame for several issues in certain
cases, we'll opt to using a queue as this will fall in line with what is
expected and may help some issues where chunks remain loaded or fail to
load
2019-07-02 19:50:07 +01:00
Spottedleaf bd46b6397c Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-07-01 22:24:09 -07:00
Zach Brown dafc3dbcd5
Update upstream B/CB/S
--- work/Bukkit
Submodule work/Bukkit aba2aaaf..949124e0:
  > SPIGOT-5121: Method to set PierceLevel of arrows

--- work/CraftBukkit
Submodule work/CraftBukkit c6997924..bf329334:
  > SPIGOT-5133: Throwing items into secondary end world portal causes crash
  > SPIGOT-5121: Method to set PierceLevel of arrows
  > SPIGOT-5122: Skip world#notify if sign has no world.
  > SPIGOT-5105: The EntityTag nbt tag disappears from preset armor_stand items.
  > SPIGOT-5106: Config option to prevent plugins with incompatible API's from loading

--- work/Spigot
Submodule work/Spigot 595711b0..935adb34:
  > SPIGOT-5088: Additional growth modifiers
2019-07-01 23:51:06 -05:00
Spottedleaf e679a7c11d Config migrations 2019-07-01 14:53:51 -07:00
Spottedleaf 0a667728c8 Resolve crash issue by shoving chunk loads onto the next tick 2019-07-01 14:36:31 -07:00
Spottedleaf 3a2d7f2ded Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-07-01 12:53:51 -07:00
Shane Freeder edd3e778c4
Don't double-start the tickEntities Timing 2019-06-30 21:18:10 +01:00
Spottedleaf 511a6a1228
Actually use our log full policy 2019-06-29 20:38:27 -07:00
Spottedleaf 8f5b96ccc9 Queue log events when log buffer is full
This should resolve out of order logs when the buffer is full
2019-06-29 10:04:38 -07:00
Spottedleaf 5ffa0dae25 Do not force load chunks for plugin constructed packets 2019-06-28 08:05:52 -07:00
Spottedleaf e993aa6f69 Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-06-28 06:37:28 -07:00
Shane Freeder a51823a732
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
c6997924 SPIGOT-5110: Zombies converting to drowned too quickly
0c575603 SPIGOT-5101: Raids crash
2019-06-28 14:02:49 +01:00
BillyGalbreath 1019a87c2c Fix #2232 - Passive mobs don't move (#2253) 2019-06-28 11:33:17 +01:00
Spottedleaf 9a4a185fc1 Keep neighbour chunks loaded while obfuscating 2019-06-26 19:04:28 -07:00
Shane Freeder aa8483ea7e
Only save world data during a full save (Fixes #2243) 2019-06-26 15:21:16 +01:00
Spottedleaf f1f8060a4e
Fix build? 2019-06-25 22:27:22 -07:00
Spottedleaf 76eb2a5e5c
Use getChunkIfLoadedImmediately not getChunkIfCachedImmediately 2019-06-25 22:20:20 -07:00
Spottedleaf 46a6f1b2c5 Re-Add Anti-Xray 2019-06-25 21:56:19 -07:00
Shane Freeder 2ff7722630
Fix raids throwing an UnsupportedOperationException 2019-06-26 03:11:29 +01:00
Shane Freeder dc841f3379
Fix CME from raids
Use the iterator to remove elements
2019-06-26 01:31:26 +01:00
Shane Freeder 6048122e23
Revert "Optimize Pathfinding"
This patch appears to be causing some issues with 1.14.3 entity AI
2019-06-25 20:18:50 +01:00
Shane Freeder 304244232f
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
aba2aaaf Correct pom.xml version

CraftBukkit Changes:
e8b39d43 SPIGOT-5103: World.save does not save gamerules
3164e531 Correct pom.xml version

Spigot Changes:
595711b0 Correct pom.xml version
2019-06-25 14:55:44 +01:00
Shane Freeder 269e1e95d9
Revert "Update VersionFetcher regex for upstream versioning changes"
This reverts commit 56ee5647ab.
2019-06-25 14:40:54 +01:00
Shane Freeder 844eb92abf
Revert "Optimize Persistent Data loading" (Fixes #2229) 2019-06-25 05:14:30 +01:00
Zach Brown 56ee5647ab
Update VersionFetcher regex for upstream versioning changes
Spigot dropped the -R0.1 from their version.
`1.14.2-R0.1-SNAPSHOT` -> `1.14.3-SNAPSHOT`

If this is changed upstream this commit can be reverted.
2019-06-24 22:24:57 -05:00
Shane Freeder 73983e4c16
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
3dc4cdcd Update to Minecraft 1.14.3-pre4
88b25a8c SPIGOT-5098: Add a method to allow colored sign changes
6d913552 Update to Minecraft 1.14.3-pre4

CraftBukkit Changes:
f1f33559 Update to Minecraft 1.14.3
8a3d3f49 SPIGOT-5098: Add a method to allow colored sign changes
533290e2 SPIGOT-5100: Console warning from pig zombie targeting
6dde4b9f SPIGOT-5094: Allow opening merchant for wandering traders and hide the xp bar for custom merchants
9af90077 SPIGOT-5097: Bukkit.clearRecipes() no longer working
38fa220f Fix setting game rules via the API
fe3930ce Update to Minecraft 1.14.3-pre4
da071ec5 Remove outdated build delay.

Spigot Changes:
4d2f30f1 Update to Minecraft 1.14.3
f16400e3 Update to Minecraft 1.14.3-pre4
2019-06-25 03:46:54 +01:00
Spottedleaf bf1d217193 Fix tracker desync issue (#2224) 2019-06-23 21:32:10 -05:00
William Blake Galbreath f63fdaeb39 Rework fix for MC-114618 so not break map maker's workflow. Fixes #2221 2019-06-23 14:31:33 -05:00
Spottedleaf 768b46ed63 Optimize protochunk saving (#2218)
Use a chunk status cache to check if we could potentially overwrite
a levelchunk.
The check could be entirely elided at the risk of overwriting chunk data,
however most protochunks should have their corresponding regionfile loaded
with their chunk status.
2019-06-22 15:17:40 -05:00
Spottedleaf 405d146f57 Fix verified-loaded-count being off for chunk debug command (#2219)
We need to bypass ticket checks when counting
2019-06-22 15:07:31 -05:00
Spottedleaf 693102cce7 Fix performance regression in loadChunk(x, z, false) (#2211)
Resolve a regression where calling loadChunk(x, z, false) would
potentially double-load chunk data
2019-06-22 15:04:26 -05:00
Zach Brown 31891d1916 Rebuild patches 2019-06-22 14:09:20 -05:00
Byteflux 1a15d8213c Add support for OpenJ9 heap dumps in /paper heap 2019-06-22 14:09:20 -05:00
Zach Brown 729551d7e0 Rebuild patches 2019-06-22 13:11:19 -05:00
Spottedleaf fe38ae401a Fix vanished players don't have rights patch 2019-06-22 13:11:19 -05:00
Omer Uddin 2715be9fef Rework bed dismount mechanics (#2145)
Fixes #1726
2019-06-22 12:59:47 -05:00
Spottedleaf e3a3cb7b94 Log other thread in DataPaletteBlock lock failure 2019-06-21 14:45:20 -07:00
Spottedleaf 55aa29c700 Fix MC-154214 (#2195)
This should resolve unloading issues.
2019-06-19 17:48:48 -05:00
Shane Freeder d9c4f8f67b
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
fd317e44 Fix javadoc mistakes in previous commit
70e4c23d SPIGOT-5061: Add explode and ignite methods to Creeper

CraftBukkit Changes:
efd8a2b5 SPIGOT-5089: UnsupportedOperationException on setting villager memory to null
8003ced5 SPIGOT-5061: Add explode and ignite methods to Creeper
2019-06-19 12:55:03 +01:00
Spottedleaf f3203b14d1
Better format 2019-06-17 17:43:18 -07:00
Spottedleaf 72894a6d54
Add WorldName to blockstate location 2019-06-17 17:41:53 -07:00
Spottedleaf 7fc60e411a Fix chunks refusing to save (#2196)
We should only set hasBeenLoaded to false potentially after saving a chunk
other wise we will not save it. The method to do this is
PlayerChunk#l(), which we were potentially calling for chunks we were not saving.
2019-06-17 08:47:51 +01:00
Spottedleaf c319922ab1 Fix World#isChunkGenerated calls (#2186)
* Fix World#isChunkGenerated calls

Optimize World#loadChunk() too
This patch also adds a chunk status cache on region files (note that
its only purpose is to cache the status on DISK)

* Ensure correct regionfile usage

This also bumps the minimum region file cache to 4 files given
readChunkData can load potentially 4 files.

* Fix closed check

* Better checks for invalid regionfile usage
2019-06-16 22:52:34 -05:00
Shane Freeder 84d6850443
Fix out of bounds falling block removal (#2188) 2019-06-16 15:13:14 +01:00
Shane Freeder edaba19eb0
Fix enderchests not playing close sound (#2190) 2019-06-16 14:14:20 +01:00
Shane Freeder 637a5bcfec
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
04405534 SPIGOT-5034: FoodLevelChangeEvent add getItem method
8154c64c SPIGOT-4984: EnchantmentOffer.getCost() documentation is misleading

CraftBukkit Changes:
f2757f95 SPIGOT-5071: Player loot tables not triggered
f4242226 Optimize getEntitiesByClasses slightly
e81013d7 SPIGOT-5072: Process phantom, cat and patrol spawning in CustomChunkGenerator
30a63379 SPIGOT-5010: World#getEntitiesByClass/es also return entities in border chunks.
43431ba6 SPIGOT-5034: FoodLevelChangeEvent add getItem method
2019-06-16 11:15:21 +01:00
Spottedleaf fcb4d9ab28
fix exception message 2019-06-15 11:07:03 -07:00
Spottedleaf 9a5ec7f21d Proper paper commenting 2019-06-15 10:36:09 -07:00
Spottedleaf 61a6d011d9 Show blockstate location if we failed to read it 2019-06-15 10:30:43 -07:00
wizjany 3213b6b1e4 Use the entity registry id instead of translation key when posting PreCreatureSpawnEvent and PreSpawnerSpawnEvent 2019-06-14 22:06:36 -07:00
Spottedleaf e23dceab07
Change format 2019-06-14 21:21:39 -07:00
Spottedleaf cde2399145 Add chunkinfo command
Used so that server owners can tell what types of chunks are loaded
without requiring to use a tool to analyse a debug report
2019-06-13 22:51:37 -07:00
Spottedleaf 5c7081fecc Update upstream & fix some chunk related issues (#2177)
* Updated Upstream (Bukkit/CraftBukkit)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
45690fe9 SPIGOT-5047: Correct slot types for 1.14 inventories

CraftBukkit Changes:
4090d01f SPIGOT-5047: Correct slot types for 1.14 inventories
e8c08362 SPIGOT-5046: World#getLoadedChunks returning inaccessible cached chunks.
d445af3b SPIGOT-5067: Add item meta for 1.14 spawn eggs

* Bring Chunk load checks in-line with spigot

As of the last upstream merge spigot now checks ticket level status
when returning loaded chunks for a world from api. Now our checks
will respect that decision.

* Fix spawn ticket levels

Vanilla would keep the inner chunks of spawn available for ticking,
however my changes made all chunks non-ticking. Resolve by changing
ticket levels for spawn chunks inside the border to respect this
behavior.


* Make World#getChunkIfLoadedImmediately return only entity ticking chunks

Mojang appears to be using chunks with level > 33 (non-ticking chunks)
as cached chunks and not actually loaded chunks.

* Bring all loaded checks in line with spigot

Loaded chunks must be at least border  chunks, or level <= 33
2019-06-14 03:27:40 +01:00
Omer Uddin 68c6699ce9 Stop natural spawning after limit has been reached (#2127) 2019-06-12 21:34:18 -05:00
Shane Freeder 89182676ed
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
9e95da12 SPIGOT-5052: PlayerPortalEvent not called when nether is disabled
28ea3fd1 SPIGOT-5062: end_portal on an non-default end world crashes the server
4a07dc69 SPIGOT-5058: ClassCastException when getting InventoryHolder of lectern when it's destroyed
2019-06-12 09:45:30 +01:00
Shane Freeder ec405a6bea
Fix async calls to getChunkAtIfLoadedImmediately 2019-06-11 04:17:39 +01:00
Shane Freeder 16909a3637
Fix PlayerNaturallySpawnCreaturesEvent
Trivia: Did you know that events need to be called to work?
2019-06-11 02:45:46 +01:00
Spottedleaf 1c68c72b1f Improve chunk loaded checks 2019-06-11 02:37:37 +01:00
Shane Freeder 7a3054158d
Only fire WorldSaveEvent on full chunk saves (Fixes #2161) 2019-06-10 21:45:22 +01:00
Shane Freeder ae153a18f9
Merge branch 'master' into ver/1.14 2019-06-10 10:11:29 +01:00
Shane Freeder a0a6ab18b7
Catch exceptions from dispenser entity spawns 2019-06-10 09:53:10 +01:00
Shane Freeder eba1fb2247
Improve autosave
- don't trip manual save warning
- respect world#isSavingDisabled
2019-06-10 06:43:28 +01:00
Shane Freeder 6f2c8a6449
Incremental chunk saving 2019-06-09 20:48:13 +01:00
Zach Brown ef170ee659
Update upstream B/CB/S
--- work/Bukkit
Submodule work/Bukkit 6eac6d70..1ef8b9d9:
  > Add Player#openBook(ItemStack) method

--- work/CraftBukkit
Submodule work/CraftBukkit 17543ecf..649921e5:
  > Add Player#openBook(ItemStack) method
  > SPIGOT-2000: Picking up items to shield slot working inconsistently when inventory is full
  > SPIGOT-5037: Player.openMerchant does not show merchant level
  > SPIGOT-5038: Inventory.getHolder returns null for wandering traders

--- work/Spigot
Submodule work/Spigot baafee91..df0eb250:
  > SPIGOT-5043: Desync if world is changed in PlayerSpawnLocationEvent
  > Rebuild patches

Implementation developer note:
This patch adds a "pre-source" patch system for fixing malformed patches
from upstream directly. This seems to keep happening so it's best we
have some way to deal with them. This system brings those issues into
our domain rather than needing to wait for upstream to fix their
malformed files.
2019-06-08 15:33:05 -05:00
Spottedleaf 2f782a6652 Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
17543ecf SPIGOT-5035: Error Using Virtual Merchant GUI
0fc6922b SPIGOT-5028: Villager#setVillagerExperience() doesn't work
bdbdbe44 SPIGOT-5024: Fox error - Unknown target reason
2019-06-06 16:56:51 +01:00
Shane Freeder 4ff5387091
Fix chunk ticking range 2019-06-06 06:13:00 +01:00
Zach Brown f4088faea2
Update upstream BD/CB/S
--- work/BuildData
Submodule work/BuildData 633897ca..f0032df4:
  > Mappings Update

--- work/CraftBukkit
Submodule work/CraftBukkit b7fea427..043d31de:
  > SPIGOT-5015: Players in spectator mode prevent block placement and block projectiles
  > Make bukkitEntity private to prevent incorrect usage

--- work/Spigot
Submodule work/Spigot 01d0f046..baafee91:
  > Rebuild patches
2019-06-02 22:26:25 -05:00
Mark Vainomaa 68eec9621f
Set connection thottle to -1 when Velocity IP forwarding is enabled
Port of 3c6f46936e
2019-06-02 22:00:23 -05:00
Zach Brown 268b076ab2
Backport MC-114618 - EntityAreaEffectCloud negative size fix 2019-06-02 21:49:14 -05:00
Spottedleaf da0aa69e44 Fix tabcomplete firing off-main
Also rebuild patches
2019-06-03 03:27:10 +01:00
Spottedleaf f210855d4c Chunk debug command (#2118)
* Chunk debug command

Prints all chunk information to a text file into the debug
folder in the root server folder.

Will output server version and all online players to the
file as well. We do not log anything but the location,
world and username of the player.

Also logs the value of these config values (note not all are paper's):
- keep spawn loaded value
- spawn radius
- view distance

Each chunk has the following logged:
- Coordinate
- Ticket level & its corresponding state
- Whether it is queued for unload
- Chunk status (may be unloaded)
- All tickets on the chunk

Example log:
https://gist.github.com/Spottedleaf/203bd211020a3a04da0e574fb57dab45

For references on certain keywords (ticket, status, etc), please see:

https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528273&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-528273
https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528577&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-528577

* Use JSON for the chunk dump

* Fix obfhelper naming

* Fix incorrect JSON spec
2019-06-02 20:25:12 -05:00
kashike fd75f355f9
Merge pull request #2097 from simpleauthority/add-get-step-sound
Add BlockSoundGroup to Block & Implement
2019-06-01 21:13:31 -07:00
Spottedleaf 264a3545fe Fix memory leak if the server is constantly overloaded (#2109) 2019-05-30 22:19:06 -05:00
Zach Brown 9f01a14531
Update upstream CB/S
--- work/CraftBukkit
Submodule work/CraftBukkit ba575a5a..b7fea427:
  > SPIGOT-5010: World.getEntities returns entities in border chunks
  > Show incorrect size passed into createInventory

--- work/Spigot
Submodule work/Spigot 093165d1..01d0f046:
  > SPIGOT-4986: EntityActivationRange - Raiders
  > SPIGOT-4988: Setting "mob-spawn-range" in spigot.yml also effects random block ticks
2019-05-30 18:54:25 -05:00
Zach Brown 550e5f8eaf
Fix `null` display when no version history
Should've been null checked since I made it nullable. String concat
saved us any real damage and so all we saw was "null" shown to users.
Quick check and now we don't.
2019-05-30 18:31:48 -05:00
Zach Brown de002d43b3
Allow proto chunks to be saved again
Appear to be used more extensively in 1.14. Subject to further review.
2019-05-30 18:22:34 -05:00
Mark Vainomaa 3c6f46936e
Set connection thottle to -1 when Velocity IP forwarding is enabled 2019-05-30 18:46:50 +03:00
Shane Freeder 5405793b86
Don't replace entries in the tracked player map (Fixes #2102) 2019-05-29 05:54:11 +01:00
Shane Freeder c605be20c7
ChunkMapDistance-CME 2019-05-29 04:25:08 +01:00
simpleauthority 87cc15d6e3 Add BlockSoundGroup to Block and implement 2019-05-28 20:08:59 -07:00
kashike eb5951cd1c
Merge pull request #2089 from BillyGalbreath/GH2088
MC-114618 - Fix EntityAreaEffectCloud from going negative size
2019-05-28 17:44:32 -07:00
William Blake Galbreath 3c51fa0ac7 MC-114618 - Fix EntityAreaEffectCloud from going negative size 2019-05-28 19:35:06 -05:00
Spottedleaf af021b9456 Update to 1.14.2 2019-05-28 00:30:44 +01:00
Spottedleaf 01670a5103 Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
e041de28 SPIGOT-4946: Add VillagerCareerChangeEvent

CraftBukkit Changes:
fcb9f90b SPIGOT-4946: Add VillagerCareerChangeEvent
a4a2f679 SPIGOT-4987: Shulkerbox does not save empty slots
2019-05-27 03:57:28 -07:00
Zach Brown 70ce6ce831
Move version command update checking to the implementation
This makes it easier for downstream projects (forks) to replace the
version fetching system with their own. It is as simple as implementing
an interface and overriding the default implementation of
org.bukkit.UnsafeValues#getVersionFetcher()

It also makes it easier for us to organize things like the version
history feature.

Lastly I have updated the paper implementation to check against the site
API rather than against jenkins.
2019-05-27 04:13:41 -05:00
Spottedleaf 7fb12d787e Improve MT-Safety of UserCache (#2080)
We were missing a synchronize on a get if cached method, however
it appears that using a ConcurrentHashMap is a better solution
so readers can avoid locking if they just want a cached value.

Existing synchronization for writers remains untouched, the
ConcurrentHashMap is just so readers can safely read without
synchronization
2019-05-27 01:17:50 -05:00
Spottedleaf 5dc46cd3b2 Move getTypeIfLoaded and friends to IBlockAccess (#2077) 2019-05-27 01:14:14 -05:00
Spottedleaf 90141ff411 Handle gen flag for placeholder getChunkAtAsync (#2079)
Also fix a loadChunk call in heightmap api
2019-05-27 00:17:12 -05:00
Zach Brown 7fe6e643d1
Check property exists before playing chest close sound
There is an artificial delay added to chest close sounds (of 10 ticks)
to make them "feel" more true to vanilla. The problem is that because of
this delay it is possible for the block to be removed by the time the
sound plays.

With 1.14 in the state it is the timing necessary to encounter this
issue has increased.

The correct fix is to just return early if the property checked for in
the TileEntityChest sound method does not exist for the block at the
current location.

Fixes GH-2074
2019-05-26 23:42:39 -05:00
Shane Freeder e9c7232267
Merge branch 'master' into ver/1.14 2019-05-27 01:16:47 +01:00
Spottedleaf 07762fc610 Revert Don-t-recheck-type-after-setting-a-block.patch 2019-05-26 10:40:12 -07:00
Shane Freeder d627cfa110
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
17da3420 Fix reading custom persistent entity data
83783357 SPIGOT-4980: Shields will not be put on cooldown when hit with an axe
8d0f3722 SPIGOT-4752: Fixed inconsistency between isChunkLoaded and chunk load/unload events
3f9f31c3 SPIGOT-4982: Armor disappearing while breaking the armor stand
2019-05-26 02:56:30 +01:00
Shane Freeder ddab5b61a8
Fix some concurrency issues around world generation (Fixes #2052, #2037) 2019-05-24 11:16:03 +01:00
Shane Freeder b3aa7dadcd
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
c45c0a98 SPIGOT-4972: Cannot add contextual data to loot table API
2019-05-24 04:49:27 +01:00
Spottedleaf c47f54dc88 Add configurable spawn loaded range back (#2051) 2019-05-24 04:12:57 +01:00
Spottedleaf 27731ddb32 Fix /tps (#2066) 2019-05-22 19:57:27 +01:00
Shane Freeder d9ad4e8bd8
Fix compilation 2019-05-22 05:14:56 +01:00
Shane Freeder 08aaab0105
Remove TPS catchup improvements
These changes are incompatbile as-is with 1.14 due to the Thread.sleep
call, this should ideally be brought back in the future
2019-05-22 04:59:14 +01:00
Shane Freeder 4800d2da2a
improve CraftWorld#isChunkLoaded to use the chunk status
vs just checking that it exists as an updating chunk, as this appears to
be a "the chunk should be loaded, but might not be"
2019-05-21 21:32:47 +01:00
Shane Freeder 034fefceb7
stop CraftWorld#isChunkLoaded from loading chunks 2019-05-21 02:37:47 +01:00
Spottedleaf d189ac1db3 Fix RegionFileCache#hasRegionFile (#2062)
also remove the pointless synchronization on
RegionFileCache#getRegionFileName
2019-05-20 03:26:17 +01:00
Shane Freeder 6b05c3f8d6
try-with-resources on populate timer (Fixes #2061)
Lets also ignore the fixup patch, that never existed, right? Right.
2019-05-20 02:32:41 +01:00
Shane Freeder 25621957f1
Don't run death logic on dupe entity removals 2019-05-19 20:48:54 +01:00
Shane Freeder 060bc7bbee
Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
4543fb40 SPIGOT-4943: Zombie villager conversion player API.

CraftBukkit Changes:
585b2ebd Tweak thresholds for can't keep up message
91ada5c2 SPIGOT-4956: EntityTameEvent not triggered when taming a Cat
9bda4134 SPIGOT-4943: Zombie villager conversion player API.
5a027071 SPIGOT-4947: Allow setting the content on a lectern
09d00e9f SPIGOT-4938: Call EntityPickupItemEvent for dolphins
a278e445 SPIGOT-4948: Lectern.getInventory should return a LecternInventory

Spigot Changes:
4f661b22 Rebuild patches
2019-05-19 04:16:22 +01:00
Shane Freeder da3b503596
Restore some entity duplication fix patches 2019-05-18 06:01:44 +01:00
Spottedleaf 2e18e54a83 Fix MinecraftServer#isMainThread (#2046)
See patch notes
2019-05-16 17:27:36 -05:00
Zach Brown 24a5bfb9cb
Fix logic issue with no save proto chunks patch
Should be returning true as a no-op "yes it was saved" rather than false
as a "there was an issue saving"
2019-05-16 16:53:17 -05:00
Shane Freeder 17fe7a1b43
Remove leftover line from spigots tick limiters
Looking over the code, this appears to be one "high risk but hopefully
unlikely that plugins are causing this to break", this line is however
redundant leftovers from spigots tick limiter patch, which should be
doing nothing as-is.
2019-05-15 22:53:13 +01:00
Shane Freeder 2f4fe0962b
Updated Upstream (CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

CraftBukkit Changes:
f6909573 SPIGOT-4935: Lore deserializes incorrectly from previous versions
dd99c5bb SPIGOT-4929: Beacon inventory getType() returns CHEST
2019-05-15 19:12:22 +01:00
kashike 3a425b3a72
Merge pull request #2029 from Spottedleaf/optimize-datawatcher
Optimize DataWatcher
2019-05-15 01:13:05 -07:00
Spottedleaf 89a1469d3f Resolve memory leak involving TileEntities
Their chunk is set to null before removal, so we kept them around.
2019-05-14 17:19:58 -05:00
Spottedleaf 1672ac6fc1 Fix CraftServer#isPrimaryThread
md_5 changed it so he could shut down the server asynchronously
from watchdog, although we have patches that prevent that type
of behavior for this exact reason.
2019-05-13 23:19:48 -05:00
Zach Brown 6c2a2f2dd2
Re-add dropped keep alive disconnect
Should fix the terminal spam
2019-05-13 23:17:05 -05:00
Spottedleaf 05d074d557 Optimize DataWatcher
The lock in DataWatcher is used to prevent concurrent modifications
to the 'd' field (entries in MCP). However any modifications to
this map only occur on initialization of an Entity in its
constructor. This modification is write-locked.

Every other access is through a readlock, which allows
the threads to pass if there is no thread holding the
writelock.

Since the writelock is only obtained in the constructor
of the Entity, the further readlocks are actually
useless (which get obtained on set, get, etc calls).

The entries field ('d' currently) has also been declared as
Int2ObjectOpenHashMap to avoid autoboxing on put(), get(), etc
calls.
2019-05-13 20:37:18 -07:00
Zach Brown d84080e6d1
MC 1.14.1 2019-05-13 21:20:58 -05:00
Zach Brown 5e7cfaf718
Add comment to MC-151674 fix
[11:00 PM] kashike: <snip> missed // Paper - MC-151674 comment here
2019-05-12 23:06:28 -05:00
Spottedleaf 4f47cbdb77 Fix MC-151674 Close RegionFiles when they get evicted from cache
https://bugs.mojang.com/browse/MC-151674
2019-05-12 23:57:49 -04:00
Spottedleaf da850bab55 Review EntityPathfindEvent
Add missing target forward
2019-05-12 23:57:49 -04:00