Commit graph

2639 commits

Author SHA1 Message Date
Nassim Jahnke
1f4366de5a Pass fireworks through vanished players (#3021) 2020-03-18 14:58:50 +01:00
Shane Freeder
1ea2548fee [CI-SKIP] Rebuild patches 2020-03-18 12:42:18 +00:00
Spottedleaf
86437303b3 Indicate ticking status in entity list command (#2856) 2020-03-18 05:38:24 -07:00
Spottedleaf
e106f34e74 Optimise Chunk#getFluid (#2860)
Removing the try catch and generally reducing ops should make it
faster on its own, however removing the try catch makes it
easier to inline due to code size
2020-03-18 05:21:35 -07:00
Spottedleaf
00fb9ccbd3 Optimise ticklistserver (#2957) 2020-03-18 05:17:28 -07:00
Shane Freeder
413efc4602 Drop Ignore-Missing-Recipes-in-RecipeBook-to-avoid-data-e.patch
This patch appears to be no longer relevant, and is seemingly a leading
cause of datapack performance being horrific
2020-03-15 20:03:36 +00:00
Jan
03a45e512d Call BlockRedstoneEvent for fence gates (#3026)
Co-authored-by: Jan Boerman <Janboerman95@gmail.com>
2020-03-14 14:39:54 +01:00
Shevchik
d490d491ff Prevent blocking on adding a new network manager (#3027)
Previous solution could still block network thread (while addPending is executing). This window is small, but removing it completely is better. This should probably also speed up concurrent adds, because no locking will be performed anymore.
The only possible downside is that adding elements one by one to synchronized list might be slower (But it's done while already locked, so maybe jvm will avoid additional locking?),
2020-03-14 14:20:50 +03:00
BillyGalbreath
94476a6910 Fix NPE on GUI during Windows Lock Screen (#3023) 2020-03-13 02:02:30 -05:00
Zero
a3339b7c15 Configurable chance of villager zombie infection (Closes #2501)
This allows you to solve an issue in vanilla behavior where:
* On easy difficulty your villagers will NEVER get infected, meaning they will always die.
* On normal difficulty they will have a 50% of getting infected or dying.
2020-02-22 16:19:19 -05:00
William Blake Galbreath
9d63b94faf Add option to allow iron golems to spawn in air (Closes #1965, Closes #1851) 2019-04-13 17:00:18 -05:00
Shane Freeder
564195d1bd 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:
6148fca7 SPIGOT-5484: Add more spawn tick settings

CraftBukkit Changes:
fc249340 SPIGOT-5484: Add more spawn tick settings

Spigot Changes:
6de3d4be Rebuild patches
2020-03-10 11:01:15 +00:00
Shane Freeder
dda965a869 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:
7f61a252 #640: Fix chunk load/unload callbacks for chunk load cancellations
2020-03-07 08:47:53 +00:00
Shane Freeder
670f98aa1f Validate tripwire hook placement before update 2020-03-07 00:08:51 +00:00
Shane Freeder
d2646b299c Fix dead telepotation logger format 2020-03-06 23:29:13 +00:00
Shane Freeder
9079e78a20 Prevent teleporting dead entities (#2803) 2020-03-03 05:28:35 +00:00
Gergely Sarkozi
8087b810b4 Add hand to BlockMultiPlaceEvent (fixes #2997) (#2998) 2020-03-02 21:55:31 +01:00
Shane Freeder
a3cce96f9b Reduce chunk range timers 2020-03-02 19:56:04 +00:00
Shane Freeder
a52f8eeeac 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:
13ed05de Prepare for Java 14
6b00b145 #639: Deep clone itemmetas persistent container on clone
2020-03-02 19:13:59 +00:00
Shane Freeder
29f7d23c82 Reduce PlayerNaturallySpawnCreaturesEvent calls 2020-02-29 23:39:00 +00:00
Andrew Mollenkamp
3fbeedc3b8 Fix random ticks (Fixes #2990) (#2992) 2020-02-27 02:42:48 -06:00
Shane Freeder
4e2b034069 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:
fd28180e #479: Add LivingEntity#attack, LivingEntity#swingMainHand, LivingEntity#swingOffHand
ae72ba3a SPIGOT-5591: Allow concurrent potion effects

CraftBukkit Changes:
3d61a853 Fix formatting in CraftLivingEntity
f7ab3055 #633: Add LivingEntity#attack, LivingEntity#swingMainHand, LivingEntity#swingOffHand
d5ef2eab SPIGOT-5591: Allow concurrent potion effects
25a9a9ff SPIGOT-5592: Custom ChunkGenerator can cause bugged dirt
3f6d0de9 Make it clear in error messages that api-version above 1.13 is also supported
2020-02-25 18:57:15 +00:00
Cat73
ecc5f69e1d [CI-SKIP] fix avoid-hopper-search obfhelper hint type (#2989) 2020-02-26 02:42:52 +08:00
Shane Freeder
96b258cfbb Fix ProjectilCollideEvent cancellation (Fixes #2953) 2020-02-22 15:00:41 +00:00
Shane Freeder
8c4bc5f8b1 Do not send PlayerProfile info before initial server send 2020-02-22 14:13:29 +00:00
Shane Freeder
7cb462c4ac Backport fix for MC-167561 (Fixes #2886, closes#2960) 2020-02-21 18:46:00 +00:00
Shane Freeder
d78fc1d234 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:
f52c70ab Fix incorrect nullability in MultipleFacing
6af4c0b2 SPIGOT-5311: Add API to get/set item associated with throwable projectiles
97aeae56 Add set/isAware to disable Vanilla AI components of a Mob

CraftBukkit Changes:
fba9f487 Improve legacy conversion of some materials that changed post flattening
b1ba8749 Move Bukkit.Aware loading/saving to correct location
f7cdb53c SPIGOT-5311: Add API to get/set item associated with throwable projectiles
689f429c #634: Cross platform patch scripts
ab85433d Add set/isAware to disable Vanilla AI components of a Mob

Spigot Changes:
8faa8b45 Rebuild patches
2020-02-21 17:52:20 +00:00
Zach Brown
edae398d67 Remove extraneous space from host info log message
This has been bothering me for a long time now.
2020-02-18 22:57:49 -06:00
BillyGalbreath
1b0f598ccd Make the GUI graph fancier (#2928) 2020-02-18 22:52:18 -06:00
Zach Brown
ad370d55b8 Revert "Add root/admin user detection (#2432)"
This reverts commit cca9b1fca7.

Unknown issue on CentOS/RHEL(?) requires further examination.
2020-02-18 22:32:13 -06:00
egg82
cca9b1fca7 Add root/admin user detection (#2432)
This patch detects whether or not the server is currently executing as a privileged user and spits out a warning. The warning serves as a sort-of PSA for newer server admins who don't understand the risks of running as root.

We've seen plenty of bad/malicious plugins hit markets, and there's been a few close-calls with exploits in the past. Hopefully this helps mitigate some potential damage to servers, even if it is just a warning.
2020-02-18 21:10:42 -07:00
Gergely Sarkozi
5746b05df4 fix tripwire hook BlockPlaceEvent (fixes #2969) (#2971) 2020-02-19 04:51:52 +01:00
BillyGalbreath
d8cd7800f5 Add option to nerf pigmen from nether portals (#2937)
* Add option to nerf pigmen from nether portals
2020-02-18 19:42:05 -06:00
Shane Freeder
3334bee2f9 [CI-SKIP] Rebuild patches 2020-02-12 14:03:09 +00:00
Spottedleaf
ff52e956ad Heavily optimise random block ticking (#2914)
* Optimise random block ticking

Massive performance improvement for random block ticking.
The performance increase comes from the fact that the vast
majority of attempted block ticks (~95% in my testing) fail
because the randomly selected block is not tickable.

Now only tickable blocks are targeted, however this means that
the maximum number of block ticks occurs per chunk. However,
not all chunks are going to be targeted. The percent chance
of a chunk being targeted is based on how many tickable blocks
are in the chunk.
This means that while block ticks are spread out less, the
total number of blocks ticked per world tick remains the same.
Therefore, the chance of a random tickable block being ticked
remains the same.
2020-02-12 05:49:53 -08:00
Zach Brown
00156eda4d Stop stripping private use block Unicode from signs
Fixes GH-2943
2020-02-10 22:35:46 -06:00
BillyGalbreath
b8d82b73ea Entity Jump API (#1587) 2020-02-10 22:28:39 -06:00
Shane Freeder
7fadc281ab Fix PlayerNaturallySpawnCreaturesEvent boolean inversion 2020-02-09 19:32:40 +00:00
BillyGalbreath
de672475b1 Add ThrownEggHatchEvent (#1982)
Add a new event similar to PlayerEggThrowEvent but without the Player
requirement (dispensers can throw eggs to hatch as well).
2020-02-09 00:32:29 -06:00
Gergely Sarkozi
d9df388e69 Allow nerfed blazes, endermen to take water damage (#2847)
Fixes GH-2841
2020-02-09 05:19:54 +01:00
Zach Brown
c98952aa60 Update upstream B/CB
--- work/Bukkit
Submodule work/Bukkit 6a4242cb..337955e3:
  > SPIGOT-5468: Improve Beehive TileEntity API
  > #473: Add an API for passing the heightmap to getHighestBlockAt* method

--- work/CraftBukkit
Submodule work/CraftBukkit 807a677e..708be695:
  > SPIGOT-5468: Improve Beehive TileEntity API
  > #624: Add an API for passing the heightmap to getHighestBlockAt* method
  > MC-135989, SPIGOT-5564: Don't kick players for flight while riptiding

This deprecates the Paper getHighestBlockAt HeightMap APIs now that
Bukkit has added their own. These methods will stick around long enough
for people to migrate. Their API is pretty much the same as ours,
migration should be quick and easy.
2020-02-08 18:32:48 -06:00
Zach Brown
71e3dfd3fe Add option to ignore the java version check in CB
Fixes GH-2935
2020-02-08 18:08:56 -06:00
Zach Brown
9cfc21d148 Rebuild patches 2020-02-06 21:07:34 -06:00
Spottedleaf
062bacbad1 Lag compensate eating (#2861)
When the server is lagging, players will wait longer when eating.
Change to also use a time check instead if it passes.
2020-02-06 19:06:52 -08:00
Zach Brown
10ce71b992 Be more tolerant of invalid attributes 2020-02-06 19:32:49 -06:00
Shane Freeder
03d18a3fcd 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:
807a677e SPIGOT-5558: Fix World#getHighestBlockAt, previously off by +1
2020-02-03 01:54:02 +00:00
Shane Freeder
e349de0c78 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:
6a4242cb #468: Allow delegation of certain elements to Vanilla when using a custom ChunkGenerator
c6697f90 SPIGOT-5559: Add EntityPotionEffectEvent causes for PATROL_CAPTAIN and WITHER_ROSE
9c1fa040 #467: Add method to remove a recipe by its key
3961d1aa Add nb-configuration.xml to .gitignore

CraftBukkit Changes:
d70084e5 Remove unused seed in CustomChunkGenerator
8a66d4c7 #619: Allow delegation of certain elements to Vanilla when using a custom ChunkGenerator
c2dc19d3 Craftbukkit -> CraftBukkit
ae45e092 SPIGOT-5559: Add EntityPotionEffectEvent causes for bee, raiders and wither rose
00980376 #618: Add method to remove a recipe by its key

Spigot Changes:
c574e08b Rebuild patches
13c24cc4 Rebuild patches
2020-02-02 11:53:48 +00:00
Shane Freeder
1eb775c6dc 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:
d0800d0c Update checkstyle
e4e4bf70 Remove package-info from tests, breaks some IDEs
d6651bb0 No longer necessary to synchronize sync events

CraftBukkit Changes:
e82b5477 SPIGOT-5556: Some biome methods use incorrect positions
544ccdc5 Update checkstyle
512ff7a5 Print legacy load reason in debug mode
df371c1b SPIGOT-5554: Clear error message when BossBar is used for not fully joined players
18168500 Update scriptus
6bbb4e73 Clean up CraftBlockData.toString
b1e96bd5 SPIGOT-5551: BlockState.setData fails when used by legacy plugin

Spigot Changes:
b9baf717 Add space before ocean seed output
13394884 Rebuild patches
2020-02-01 15:20:54 +00:00
Shane Freeder
7951cfe36a Remove entities from per-chunk list (Fixes #2918) 2020-01-31 16:09:56 +00:00
Shane Freeder
0218e094e0 Remove chunks after calling ChunkUnloadEvent (Fixes #2919) 2020-01-30 16:57:46 +00:00
Shane Freeder
3740be5966 Drop 0394-Fixed-MC-156852.patch (Fixes #2913) 2020-01-30 09:36:03 +00:00
Spottedleaf
b4124adee3 Fix getChunkAtIfCachedImmediately (#2915) 2020-01-28 17:26:07 -08:00
Shane Freeder
7bd3a92dfc Rebuild patches
Because you know... That's how you commit them...
2020-01-28 19:48:56 +00:00
Shane Freeder
29fe2d1e2f 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:
93e39ce1 Clarify documentation regarding getMaterial with legacyName = true
c3aeaea0 Improve dependency tracker
14c9d275 Add support for transitive depends in load access warning
c8afe560 SPIGOT-5526: Add EntityEnterBlockEvent
6bb6f07d SPIGOT-5548: Show error that hints towards plugins misusing reflection
ed75537d SPIGOT-5546: Fix bad depend access using wrong provider in message
4e4c0ee9 Fix buggy classloader warning triggering for all classes
89586a4c Print warning when loading classes from depends that have not been specified
d4fe9680 Fix bug where disablePlugin could remove ConfigurationSerializable classes from other plugins
85e683b7 Add additional checkstyle checks
612fd8e1 Correct max page count in BookMeta docs
fa8a9781 Correct max title length in BookMeta docs

CraftBukkit Changes:
ab13a117 SPIGOT-5550: Cancelled ProjectileLaunchEvent still plays sound for eggs
44016b1d SPIGOT-5538: Using javaw to run GUI prints input error
e653ae76 SPIGOT-5526: Call EntityEnterBlockEvent for bees trying to enter hives
6515ea49 SPIGOT-5537: Bee nests generated by growing trees near flower have no bees
d82b3149 Remove unused CraftWorld.getId method
10763a88 Change some block == AIR checks to isAir to catch CAVE_AIR

Spigot Changes:
f2c1cd15 Rebuild patches
bcd458ad Reformat patches
2020-01-28 19:43:57 +00:00
Gergely Sarkozi
284b18ef2d Fix Player#applyMending NPE (#2917) 2020-01-28 19:20:53 +01:00
Spottedleaf
6745971d4e Performance patches prerequisite (#2802)
Prereq changes for the coming storm of performance patches.
Includes optimising incremental saving
2020-01-27 16:16:53 -08:00
BillyGalbreath
c2f18ccc45 Fix #2906 - Bees get gravity in void - Fixes MC-167279 (#2912) 2020-01-26 17:59:43 -06:00
Shane Freeder
d7fe7a455b Properly check for running tasks in EAR 2020-01-26 23:35:34 +00:00
Shane Freeder
af158f71df 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:
e911c70f SPIGOT-5542: Cancelling EntityToggleGlideEvent doesn't stop client from gliding
2020-01-25 01:22:52 +00:00
BillyGalbreath
6e05de0542 Fix startup errors when double clicking jar (#2903) 2020-01-24 17:06:37 -06:00
Shane Freeder
3e30f3aef0 Revert "Fix errors on startup when double clicking jar (#2901)"
This reverts commit bd700c2f78.
2020-01-24 21:30:15 +00:00
BillyGalbreath
bd700c2f78 Fix errors on startup when double clicking jar (#2901) 2020-01-24 13:13:59 -06:00
Max Lee
f9b0343356 Seed based feature search (Fixes #2312) (#2852) 2020-01-24 20:07:14 +01:00
Shane Freeder
7894e27ddc Init legacy material data
This fixes an issue with plugins using legacy materials, spigot does
not populate the bukkit registry properly, leading to NPEs when using
outdated plugins. This patch should likely be dropped when spigot fixes
their legacy data usage....

Also rebuild patches because 10/10
2020-01-23 21:38:17 +00:00
Andrew Mollenkamp
602f614630 Fix items vanishing through end portal (Resolves #2681) (#2894)
hehe
2020-01-23 09:33:28 -06:00
Shane Freeder
8167a40ac5 Fix comparator behavior for EntityPhanton goal 2020-01-22 21:01:28 +00:00
Zach Brown
a55f66b607 Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit 29737ccb..efd6cf55:
  > Only load legacy support data if something uses it
2020-01-21 20:12:53 -06:00
Spottedleaf
9774f1ff47 1.15.2 update (#2887)
Functional GUI fix added by billygalbreath
2020-01-21 18:02:07 -08:00
Shane Freeder
5141569293 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:
58d299a5 Clarify that TotalExperience (XpTotal) is not displayed anywhere
3342ab1e #460: Add Player#sendExperienceChange
acc05b40 SPIGOT-5525: saveResource saves files from server jars

CraftBukkit Changes:
5c6b0dc6 SPIGOT-5526: Call EntityChangeBlockEvent for bees triggering crop growth
b91ce119 #601: Implement Player#sendExperienceChange
661bebc6 Remove outdated build delay.
2020-01-21 15:12:47 +00:00
Shane Freeder
c9979cb9f5 [CI-SKIP] Rebuild patches 2020-01-20 16:04:39 +00:00
Andrew Mollenkamp
4caecfe4ce Fix items not falling correctly (Resolves #2835) (#2872) 2020-01-20 09:57:12 -06:00
Omer Uddin
e5e3303aa4 Port activation range improvement patch (#2763) 2020-01-20 10:54:57 -05:00
BillyGalbreath
17867b12b2 Add effect to block break naturally (#2819) 2020-01-18 20:10:06 -06:00
Shane Freeder
57458656e9 [CI-SKIP] rebuild patches 2020-01-18 17:58:05 +00:00
Callahhh
12d6beacfc Prevent sync chunk loads when villagers try to find beds (#2855) 2020-01-18 11:54:33 -06:00
Spottedleaf
5c206c7b04 Full chunk debug on incremental watchdog (#2868) 2020-01-18 09:50:23 -08:00
Spottedleaf
7bd813abb0 Fix last firework in stack not having effects when dispensed - #2871 (#2876)
CB used the resulting item in the dispenser rather than the item
dispensed. The resulting item would have size == 0 and therefore
be convertered to air, hence why the effects disappeared.
2020-01-18 09:31:05 -08:00
Spottedleaf
d6efbad797 Ensure portal search radius is used when teleporting players (#2877)
Also add the create search radius mojang recently introduced
to config
2020-01-18 09:28:32 -08:00
Mark Vainomaa
0fcff54352 Fix dupe with Eigencraft redstone implementation (#2864) 2020-01-17 04:07:50 +02:00
Brody Beckwith
129cb1fbbe Optimize call to getFluid for explosions (#2859)
Signed-off-by: BrodyBeckwith <brody@beckwith.dev>
2020-01-14 19:16:04 -05:00
Shane Freeder
10159aa459 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:
01334e7d #616: Fix exception on entity portal teleport attempt
2020-01-14 21:43:50 +00:00
Shane Freeder
a7b7d83c8c Fix entity teleportation exceptions 2020-01-14 09:14:12 +00:00
Shane Freeder
61e22560a2 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:
7dd1cfcd PortalEvent additions

CraftBukkit Changes:
e8cb2f51 SPIGOT-5252: Nether portal fixes and additions
fde78ef3 SPIGOT-5477: Server not shutting down

Spigot Changes:
037559e7 Rebuild patches
2020-01-13 22:12:54 +00:00
Spottedleaf
026b28b171 Add more chunk debug to watchdog (#2851)
print chunk holder status, useful for indicating what steps the
server has gone through after loading chunks from disk

Also rebuild patches (cat...)
2020-01-12 13:06:05 -08:00
Spottedleaf
1c169a0ed6 Optimise IEntityAccess#getPlayerByUUID (#2842)
Use the world entity map instead of iterating over all players
2020-01-11 22:36:31 -08:00
Spottedleaf
624e6bcce3 Guard against serializing mismatching chunk coordinate (#2844)
Should help if something dumb happens
2020-01-11 22:32:44 -08:00
Shane Freeder
a8d7b90900 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:
d208733e SPIGOT-5509: Sleeping player does not eject bed when teleported
2020-01-11 13:34:00 +00:00
Brokkonaut
3e0623bf9b Fix SkullMeta.setPlayerProfile() (#2833) 2020-01-10 19:07:29 +01:00
Omer Uddin
653a9d3dce Update no chunk loads for hoppers and double chests patch (#2777) 2020-01-09 22:11:19 -05:00
Spottedleaf
724664fc5f Fix race condition with regionfile being closed right after getting one (#2812)
Occurs when 1 thread retrieves a regionfile, and then the
regionfile is closed due to it being thrown out of cache.
2020-01-09 17:42:33 -08:00
BillyGalbreath
fa67beb728 Prevent bees loading chunks checking hive position (#2828) 2020-01-09 19:28:29 -06:00
Shane Freeder
69f05b3132 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:
5d4de46e Fix checkstyle.xml formatting
adf331f1 SPIGOT-5496: API to create and manipulate hardcore worlds

CraftBukkit Changes:
c727dc2a Fix checkstyle.xml formatting
e7202cd4 SPIGOT-5496: API to create and manipulate hardcore worlds
9820cd2d MC-151364, SPIGOT-5494: Feeding dolphin hangs if generate-structures=false
2020-01-05 23:08:18 +00:00
Zach Brown
4716b75cd2 Update upstream B/CB
--- work/Bukkit
Submodule work/Bukkit bbfd13dd..72e3dfd4:
  > SPIGOT-5486: Raider CanJoinRaid

--- work/CraftBukkit
Submodule work/CraftBukkit 83af86db..731e819c:
  > SPIGOT-5486: Raider CanJoinRaid
  > SPIGOT-5487: Increase outdated build delay
2020-01-01 17:44:53 -06:00
Shane Freeder
1d4ac6014d remove burtned TNT blocks (Fixes #2808) 2019-12-30 12:49:48 +00:00
Zach Brown
24f4c7016a Fix double dropping xp now that Spigot fixed it 2019-12-26 22:28:02 -05:00
Zach Brown
4b04144770 Update upstream CB/S
--- work/CraftBukkit
Submodule work/CraftBukkit 297ff400..83af86db:
  > SPIGOT-5457: Downgrade 'Mismatch in destroy block pos' message to debug
  > SPIGOT-5481: PlayerBedLeaveEvent returns wrong bed location
  > SPIGOT-5482: Structure Block setUsageMode encounters NullpointerException
  > SPIGOT-5426: isSimilar for player heads fails
  > SPIGOT-5478: XP not dropping when a player dies

--- work/Spigot
Submodule work/Spigot 05bb8bcf..492a7792:
  > Rebuild patches
2019-12-26 22:18:27 -05:00
Shane Freeder
2410fad035 PlayerDeathEvent#shouldDropExperience 2019-12-24 00:36:24 +00:00
Shane Freeder
a383515c95 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:
8073dbec SPIGOT-5474: Just ignore bugged fireball data
2019-12-23 03:59:27 +00:00
Shane Freeder
031b6b94af 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:
bbfd13dd Hyperlink 'Events' in raid event package documentation
b2095bed SPIGOT-5413: Add TrustedPlayer API for foxes
1bf1f3f4 Block trace methods do not require hash sets
abf0cfdc Javadoc improvements per checkstyle
c4a2b425 Add TimeSkipEvent

CraftBukkit Changes:
817116de SPIGOT-5413: Add TrustedPlayer API for foxes
062680a8 SPIGOT-5467: Calm down bees that cannot exit hive
75fac431 SPIGOT-5472: Spurious warning when using clone command on tile entities
85106731 SPIGOT-5471: Allow empty title/author for books
2d9db47f Add TimeSkipEvent
384225c2 Add thread name to TerminalConsoleWriterThread

Spigot Changes:
05bb8bcf Postpone stopping the watchdog until the server is completely stopped
18e2b9be Add package-info.java for Spigot APIs
2019-12-23 02:37:47 +00:00
Omer Uddin
230ea2dd5d Port Optimize-Hoppers.patch to 1.15 (#2765)
* port patch

* fix hoppers eating items
2019-12-21 21:28:35 -05:00
Shane Freeder
301ca13c71 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:
3aa8286b SPIGOT-794: Add boats to EntityPlaceEvent
c36d90a6 SPIGOT-5464: Add BEEHIVE SpawnReason for when a bee leaves a beehive

CraftBukkit Changes:
90ef74ef SPIGOT-794: Add boats to EntityPlaceEvent
fb7abcb3 SPIGOT-5466: Bees still get angry even if damage event cancelled
4499fec5 SPIGOT-5464: Add BEEHIVE SpawnReason for when a bee leaves a beehive
2019-12-19 19:17:36 +00:00
BillyGalbreath
5c52367f57 MC-145656 Fix Follow Range Initial Target (#2778) 2019-12-19 13:03:16 -06:00
Shane Freeder
efe6a8935b 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:
bf1fa3e3 Update to Minecraft 1.15.1

CraftBukkit Changes:
30a1b691 Update to Minecraft 1.15.1
e2790ae2 Remove outdated build delay.

Spigot Changes:
2ee05fef Update to Minecraft 1.15.1
2019-12-17 22:39:07 +00:00
Shane Freeder
c67b8198e9 Yank 0417-Avoid-Chunk-Lookups-for-Entity-TileEntity-Current-Ch.patch
Currently causing leaks
2019-12-16 19:01:51 +00:00
Shane Freeder
0f24e5eeeb Restore 0129-Optimize-World.isLoaded-BlockPosition-Z.patch 2019-12-16 02:58:10 +00:00
Shane Freeder
3591f1ff6b Restore Use-getChunkIfLoadedImmediately-in-places.patch 2019-12-16 02:47:23 +00:00
Callahhh
486c9d94f3 Bring back Reduce-sync-loads.patch (#2761) 2019-12-15 19:43:21 -06:00
Shane Freeder
bbaca0408f Address gen concurrency issue causing crashes (Fixes #2746) 2019-12-16 01:38:00 +00:00
Shane Freeder
f6fcec51bb Merge branch 'ver/1.14' 2019-12-15 23:05:36 +00:00
Shane Freeder
5ea670d028 attempt to allow timings to continue with janky plugin classes 2019-12-15 22:39:25 +00:00
Shane Freeder
5c854f693b Fix spectator teleport target (#2743) 2019-12-15 20:19:52 +00:00
Shane Freeder
c5f58be52f Fix spawn radius being treated as 0 (Fixes #2742) 2019-12-15 19:42:35 +00:00
Shane Freeder
fa3c3913d9 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:
e43416a3 SPIGOT-5455: Mobs do not ignite due to sun in extra worlds
2019-12-15 19:40:28 +00:00
Shane Freeder
951d879aef [CI-SKIP] Rebuild patches 2019-12-15 18:33:43 +00:00
Black Hole
d4e108db0d Don't show 1.15 plugins as legacy in plugins command (#2755)
* Don't show 1.15 plugins as legacy in plugins command

* Use CraftMagicNumbers.SUPPORTED_API
2019-12-15 19:28:44 +01:00
Omer Uddin
f8790c4950 port PlayerLaunchProjectileEvent patch to 1.15 (#2758) 2019-12-15 13:25:10 -05:00
Omer Uddin
8e9f3b503b port TE chunk lookup patch to 1.15 (#2757) 2019-12-15 13:17:16 -05:00
Shane Freeder
c16a21caee Prevent TRAP while loading Fireballs 2019-12-14 01:11:59 +00:00
Shane Freeder
d23e71b03a 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:
61d4b090 SPIGOT-5428: Better handling of some ItemMeta

Spigot Changes:
047b6f86 SPIGOT-5421: Add separate trident despawn rate
c1047ed9 SPIGOT-5445: Add log-villager-deaths option
2019-12-14 00:56:34 +00:00
Shane Freeder
9bb17addcd Track correct branch for /version 2019-12-13 22:56:02 +00:00
Shane Freeder
1e7833a2b7 Restore zero-tick farms fix
They no longer directly call the tick method, so, one step forward...
2019-12-13 22:48:40 +00:00
Shane Freeder
5703e3e6c0 Revert "Drop fix zero-tick farms (Fixes #2736)"
This reverts commit c4fb4512a2.
2019-12-13 22:41:00 +00:00
Shane Freeder
c4fb4512a2 Drop fix zero-tick farms (Fixes #2736)
Fixed by mojang in 1.15, farm blocks are no longer in the next tick list

Also, add hopper optimization patch to the removed folder
2019-12-13 21:31:04 +00:00
Shane Freeder
e415a5360b Drop hopper optimization patch 2019-12-13 20:41:01 +00:00
Shane Freeder
4d3571d073 Don't set the count on already empty items in hopper moves (Fixes #2735) 2019-12-13 20:11:45 +00:00
Shane Freeder
58d8fb0b05 Remove debug statement and rebuild patches properly 2019-12-13 16:29:51 +00:00
Shane Freeder
64bc3e1f0b Allow reading of oversized region files 2019-12-13 16:22:16 +00:00
Shane Freeder
7b9f9f4ab6 Drop entity experience on death 2019-12-13 15:21:58 +00:00
Shane Freeder
f229d8d396 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:
333b9f02 SPIGOT-5422: Add support for 3-dimensional biomes
170d7386 Fix bad link in deprecated FlowerPot MaterialData class

CraftBukkit Changes:
16dc5758 SPIGOT-5449: Fix issue with projectiles
fd25653f SPIGOT-5448: Shulker Boxes collapse empty slots when picked up
b97d581a SPIGOT-5443: BEE_NEST BlockState
73698cf8 SPIGOT-5442: Fix issue with fire charges
beff9fb9 SPIGOT-5437: Fix CustomChunkGenerator.CustomBiomeGrid ignoring the y value for biomes
f777640e SPIGOT-5425: Prevent empty/air loot (again?)
db0dafb1 SPIGOT-5422: Add support for 3-dimensional biomes
4633e6c5 Fix crash with disabled worlds

Spigot Changes:
f39a89ef SPIGOT-5423: Remove covariant type change to give better chance of Java downgrades working
2019-12-13 14:08:40 +00:00
MiniDigger | Martin
9e81b520ec Nuke IOWorker, make stuff compile (#2733)
* remove removed patch cause its not removed anymore

* Nuke IOWorker, oh, and also make it compile

* synchronize writes properly

* Remove note about IOWorker
2019-12-13 14:46:45 +01:00
Zach Brown
f7b5ea39ea More compile fixes 2019-12-12 19:18:18 -06:00
Shane Freeder
78640d1334 More progression on patches 2019-12-12 20:58:07 +00:00
MiniDigger | Martin
8199a18b2b Compile fixes (#2732) 2019-12-12 19:45:00 +01:00
MiniDigger | Martin
3360d06f76 Houston, we got a patch (#2731)
* Houston, we got a patch

* is this the end of the beginning or the beginning of the end
2019-12-12 17:20:43 +01:00
Shane Freeder
aaba069c86 Fixup timings patch 2019-12-12 03:06:23 +00:00
Zach Brown
9e866dc829 My Name is ;
Hi! My name is (what?)
My name is (who?)
My name is
;

Hi! My name is (huh?)
My name is (what?)
My name is
;
2019-12-11 21:00:50 -06:00
Zach Brown
dd751b9191 Little more progress
Keep getting interrupted so not as much as I'd like :(
2019-12-11 18:03:31 -06:00
MiniDigger | Martin
c9ef3d1cfc Patches 100-260 (#2729) 2019-12-12 00:43:22 +01:00
Zach Brown
2dc2fcce09 More progress 2019-12-10 20:43:21 -06:00
Shane Freeder
0d64f85acc Work on server patches 2019-12-11 00:56:03 +00:00
Shane Freeder
2f8ae01cb1 Fix ArmorStand#setItem flow (Fixes #2726) 2019-12-10 23:37:32 +00:00
Shane Freeder
ee5f98a67d 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:
8b6dd103 Update /version to reflect final build status.
6bdfd385 Remove some draft API designations
78a12dd9 SPIGOT-5417: Campfire should implement Directional

CraftBukkit Changes:
65670174 SPIGOT-5417: Campfire should implement Directional
eeae942e SPIGOT-5416: Block.getDrops gives drops even when tool should not give drops
2019-12-10 23:23:50 +00:00
Lukasz Derlatka
2209ead235 Fix AssertionError when player hand set to empty type
Fixes GH-2718
2019-12-07 19:03:10 -06:00
Shane Freeder
9de8594976 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:
43183eab SPIGOT-5399: spawn-npcs ignored during world generation
e9bb2f15 SPIGOT-5403: isSimilar returns true for different skulls
5c9e7236 SPIGOT-5409: Remove unnecessary defaulting in CraftMetaBookSigned
821238b6 SPIGOT-5412: Use SpawnReason.NATURAL for wandering traders and trader llamas
2019-12-05 10:23:10 +00:00
stefvanschie
f6770e2347 Fix empty CanPlaceOn tags causing errors (#2713) 2019-12-01 01:20:12 +01:00
BillyGalbreath
aa353d9814 Add option to disable pillager patrols (#2626) 2019-11-24 01:10:15 -06:00
Gerrygames
0c1f975a3e Backport MC-160177 fix from 1.15 (#2702) 2019-11-24 07:36:20 +01:00
Zach Brown
c253bfac09 Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit 7554e08e..ccd47a50:
  > SPIGOT-5395: Call BlockFadeEvent for Scaffolding
  > Increase outdated build delay to 4 weeks
2019-11-24 00:06:19 -06:00
BillyGalbreath
56994283f5 Fix stuck in sneak when changing worlds (MC-10657) (#2627) 2019-11-24 00:02:47 -06:00
Spottedleaf
829b622eea Fix racey NextTickListEntry creation. (#2683)
The counter is used to distinguish entries from each other, however
since we can concurrently increment the counter we could totally
screw over the comparision of entries (see a() in NextTickListEntry),
as it compares only the time when the entry will tick, the priority
at which it will tick, and the counter. The block is not compared.

Async loading loads the chunk asynchronously which creates these
entries asynchronously.
2019-11-10 10:00:16 -08:00
William Blake Galbreath
5726caded8 Expose the internal current tick 2019-04-20 19:47:50 -05:00
MisterErwin
72affc69f3 [PATCH] bounding box check for hanging entities (#2664)
This patch intends to fix an issue with LeashHitchs where an exception
was thrown due EntityHanging#calculateBoundingBox not being able to
accept EnumDirections UP and DOWN.

This issue was introduced in a fix for SPIGOT-4674
(d65a2576e4)
2019-10-30 18:29:40 +01:00
Shane Freeder
5971c46af0 Update config version 2019-10-27 00:07:42 +01:00
Zach Brown
1c87d2c4b4 Rename baby zombie movement config option
This option does not set the absolute speed of the entity as the name
implies. It sets a modifier. The default (vanilla) value of `0.5` sets
the baby zombie to move at 50% faster than the base speed.

A negative value like `-0.4` would set them to move at 40% slower.

There should be no functional changes as a result of this change, it's
just clarifying the config name.
2019-10-26 17:55:58 -05:00
Spottedleaf
5ea1d44339 Fix server deadlock when loading some chunks (#2647)
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:
7554e08e Add UUID support to CraftProfileBanList
3fe37460 SPIGOT-5378: Fix TileEntity fixer deadlock
12386dd4 SPIGOT-5375: Add spaces to coordinates from tile fixer
606c19e2 SPIGOT-5373: Simultaneous left+right click in creative mode does not work
13caf848 SPIGOT-5370: Fix Block#rayTrace considering other blocks.
2019-10-20 02:03:39 -07:00
weaondara
486d5edb7c performance improvement for CraftChunk.getEntities() (#2629) 2019-10-20 00:33:35 +02:00
Shane Freeder
8263d100e2 Fire EntityRemovedFromWorldEvent for all entities (Fixes #2282) 2019-10-19 09:14:26 +01:00
Shane Freeder
546dddce10 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:
af58d316 Fix javadoc warning in Firework.setShotAtAngle

CraftBukkit Changes:
e2dd6555 SPIGOT-5372: Re-add tile entity fixer due to MC-163945
1e7a197f Fix incorrect inequality in 683bae0670
db98d54d SPIGOT-5362: Suspicious stews fail isSimilar check

Spigot Changes:
56f84710 Rebuild patches
2019-10-18 17:31:01 +01:00
Jonathan Frederick
6698d64ab9 Re-implement treasure-maps-return-already-discovered for 1.14 (#2636) 2019-10-18 08:14:43 -07:00
Spottedleaf
eacc91f30d Use getIfLoadedImmediately and not cached immediately for isLoa… (#2641) 2019-10-18 08:05:45 -07:00
Andrew Steinborn
987af1a1e4 Really fix JLine on Windows
The history of how paths work in Win32 is a sad story and shall not be documented here.
Needless to say, Windows hates the temporary file name for jansi's native code since it
includes the version. For git builds, it includes quotes around the actual version. But
alas, the issue apparently doesn't occur if you build on Windows since it removes the
quotes from the git commandline that is ultimately used to build the version string,
because of more Win32 sadness and shame.

Go look at Raymond Chen's blog, The Old New Thing. It's full of Windows oddities and
it will make you want to weep because almost 90% of the world uses this legacy OS from
the 1980s.
2019-10-13 16:35:54 -05:00
Zach Brown
66423fc5b0 Revert "Fix jline with git builds under Windows (#2624)" (#2632)
This reverts commit ea056d0fd2.
2019-10-13 01:19:22 -05:00
Zach Brown
0b05aa0ada Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit 7deb3728..d6b3eddf:
  > SPIGOT-5355: Double Chests still open after InventoryOpenEvent cancelled
2019-10-13 00:28:46 -05:00
Andrew Steinborn
ea056d0fd2 Fix jline with git builds under Windows (#2624) 2019-10-13 01:06:44 -04:00
Shane Freeder
328755d72f 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:
0399d9d6 SPIGOT-5341: Add Material.isAir
547f5709 SPIGOT-5353: Expand explosion API by adding source entity

CraftBukkit Changes:
7deb3728 SPIGOT-5309: Call cancelled EntityDamageEvent when damaging invisible armor stands
46351e17 SPIGOT-5341: Add Material.isAir
683bae06 SPIGOT-5342: Lore lost when deserializing items with no version stored
c2d12011 SPIGOT-5353: Expand explosion API by adding source entity
2019-10-08 19:37:02 +01:00
Omer Uddin
a91371eba8 Don't save canTick of armor stands if it has not been set by API (#2608) 2019-10-02 20:20:40 -04:00
Spottedleaf
b0601574e0 Improve spawn loading and debug output for waiting on a chunk (#2595)
Spawn loading has been changed to use getChunkAt calls to manually
load chunks since watchdog can watch these calls and so we guard
against plugins/players changing the radius of a spawn while it's
loading

Debug output has been improved to note the status of the currently
waiting chunk
2019-09-29 18:23:09 -07:00
Spottedleaf
fe0c5d9dc6 Remove debug logging for incremental saves (#2600) 2019-09-29 18:14:40 -07:00
Spottedleaf
0a5408a7d0 Add more timings to chunk provider tick (#2549)
- Misc mob spawning
- Chunk range checks
2019-09-29 14:06:03 -07:00
Spottedleaf
98854cdf4d Add server oversleep to timings (#2509)
Now everything except waiting for the next tick should be included
in timings
2019-09-29 13:49:38 -07:00
Spottedleaf
13d4dd046d Check if there are workers before trying to notify them (#2593)
* Fix #2591

We need to check if there are workers before trying to notify
them...
2019-09-29 13:29:56 -07:00
Zach Brown
14ef983c25 [CI-SKIP] Rebuild patches 2019-09-29 15:02:04 -05:00
Spottedleaf
4d484708ad Drop Optimize-GameRules-to-use-LinkedHashMap (#2594)
Mojang has since replicated the logic
2019-09-29 13:01:21 -07:00
Zach Brown
c8e6c05c0c Use local variable for bedrock generation
Fixes GH-2596.
2019-09-27 20:53:20 -05:00
Zach Brown
5197774737 [CI-SKIP] Fix wrong patch author on zero-tick fix
See GH-2559 for context
2019-09-27 18:10:20 -05:00
Zach Brown
6958e7422b [CI-SKIP] Rebuild patches 2019-09-24 18:19:41 -05:00
Spottedleaf
ed4f937103 Check horse entity validity in container interactions (#2584)
Fixes #2580
2019-09-24 16:16:16 -07:00
BillyGalbreath
36cc95758b Fix zero-tick instant grow farms MC-113809 (#2559) 2019-09-22 23:07:01 -05:00
Spottedleaf
02382b01b2 Updated Upstream (Bukkit/CraftBukkit/Spigot) (#2576)
* 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:
6527cb58 SPIGOT-5329: Clarify isGlowing documentation
5ddb414f Make Lantern extend BlockData
cb888903 Fix typos in previous commits
2a5e0ca2 Bring EnchantItemEvent documentation in line with EnchantmentOffer
3c5fcea2 SPIGOT-5317: Create accessors for player absorption hearts
c6e0d625 SPIGOT-5320: Clarify scope of ExactChoice

CraftBukkit Changes:
a3fdef8c SPIGOT-5331: Add support for Java 13
6ddeb980 SPIGOT-5317: Create accessors for player absorption hearts
5d335e96 SPIGOT-5315: Cannot serialize armor stand ItemMeta

Spigot Changes:
94af569b SPIGOT-5319: Async catcher for getNearbyEntities
2019-09-21 21:12:45 -07:00
Spottedleaf
7b3f64a452 Fix race conditions in flush allowing for previously scheduled tasks to execute later than the flush call (#2548) 2019-09-15 21:02:13 -07:00
Spottedleaf
859d398ff8 Improve save logic (#2485)
Only wait for IO at the end of the save
we also were not force flushing async saves with /save-all flush
2019-09-15 20:39:30 -07:00
prplz
8c06dd0872 Fix nether portal frame creation (#2546) 2019-09-16 13:12:17 +10:00
Zach Brown
e338ed6a61 Re-add flat bedrock config option 2019-09-15 19:20:02 -05:00
Shane Freeder
8c7f7cc9e2 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:
92f24ff2 SPIGOT-5158: Add SuspiciousStewMeta
b9bf4dae SPIGOT-5310: Add Chunk.contains
b2adbb45 Add API to get/set inhabited time of a Chunk
e3c812dd SPIGOT-5250: Add ChunkSnapshot.contains
71973d85 SPIGOT-5255: Raid / patrol spawn reasons

CraftBukkit Changes:
03b145b3 SPIGOT-5158: Add SuspiciousStewMeta
9aa74304 SPIGOT-5310: Add Chunk.contains
7ef2b20d SPIGOT-3308: RecipeIterator cannot longer remove recipes
023f438c Add API to get/set inhabited time of a Chunk
b79a86ed SPIGOT-5250: Add ChunkSnapshot.contains
aa492e55 SPIGOT-5255: Raid / patrol spawn reasons
2019-09-10 19:51:02 +01:00
Omer Uddin
b91eadafe8 fix double world add bug (#2486) 2019-09-02 12:46:04 -04:00
Shane Freeder
ad2af0ff2b 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:
e28fb3bd SPIGOT-5301: BlockIgniteEvent for campfire + arrow

CraftBukkit Changes:
763e5601 SPIGOT-5294: Cancelled EntityPickupItemEvent and PlayerPickupItemEvent alter on-ground stacks
403ac185 SPIGOT-5301: BlockIgniteEvent for campfire + arrow
2019-09-02 17:28:24 +01:00
Spottedleaf
f636e0083c Improve POI data saving logic (#2475)
- Do not unload data if world saving is disabled
- Aggressively target unloading
2019-09-01 18:49:09 -07:00
Spottedleaf
76e4a9a0f6 Fix #2499 (#2500)
Proper scheduling if async chunks is disabled, we would execute
a task that is cancelled without setting its run status
2019-09-01 18:30:25 -07:00
Nassim Jahnke
e7dadac1ae Fix sign line capping check (#2522) 2019-09-02 00:21:08 +02:00
Spottedleaf
e5f584cf6b Target more sync loads (#2476) 2019-09-01 15:17:51 -07:00
Spottedleaf
45ed30b235 Fix #2511 (#2519)
Did not double-flush the file io thread if async = false
2019-09-01 14:18:40 -07:00
Shane Freeder
b0a7c129c4 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:
ff0672ca SPIGOT-5211: Add Raid API

CraftBukkit Changes:
96bc85f0 SPIGOT-5298: Remove unexplained 0.1 drop chance offset
6ed8a189 SPIGOT-5290: Invulnerable and/or Marker armor stand triggers EntityDamageEvent
631eaeb0 SPIGOT-5297: PlayerBedLeaveEvent.getBed() returns player location
8d4bc541 SPIGOT-5293: Sponge behaviour differs from Vanilla
e91fd75e SPIGOT-5291: Missing event for ravagers trampling crops
cbdd7139 SPIGOT-5211: Add Raid API
edd8fdfb SPIGOT-5287: Fix rare CME generating new chunks
3fc97f08 SPIGOT-5265: FireworkExplodeEvent only fired when rockets explode in air

Spigot Changes:
065a3734 Rebuild patches
a5961826 SPIGOT-5286: tick-inactive-villagers invokes the AI for NoAI villagers
2019-08-31 20:30:44 +01:00
Shane Freeder
2f2607078b 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:
e970fd72 Remove incorrect javadoc from TargetReason
84df6df1 SPIGOT-5282: Improve bucket event API

CraftBukkit Changes:
b2bcde89 SPIGOT-5258: TNT Not Moving Players in Creative Mode
44d675ad SPIGOT-5263: Chests stay open after InventoryOpenEvent cancelled.
2439178e SPIGOT-5278: EntityDrowned memory leak
7055c931 SPIGOT-5264: Call event for experience orbs losing their target
49141172 SPIGOT-5282: Improve bucket event API
6bbb3b04 SPIGOT-5281: Clearer error messages for ChunkSnapshot misuse
2019-08-26 15:25:58 +01:00
Omer Uddin
33db268d5d Implement optional per player mobspawning (#2171) 2019-08-21 06:02:51 +05:00
Omer Uddin
965e176072 Prevent consuming the wrong itemstack (#2477) 2019-08-19 20:24:33 +05:00
Spottedleaf
7f4d6050fd Async chunk api/io/loading (#2308) 2019-08-18 16:40:04 -07:00
Shane Freeder
467ebc7cff 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:
2012f1e0 SPIGOT-5269: Item attribute modifiers don't persist their order
7a806a3a SPIGOT-5270: Call BlockSpreadEvent when bamboo saplings grow

Spigot Changes:
798ea6ab Add async catcher to World#save
2019-08-17 04:26:58 +01:00
Spottedleaf
38dc65720e Fix some API and commands usage of inactive chunks (#2457)
* /paper entity will no longer report entities in inactive chunks
* World#getEntityCount and World#getChunkCount will report only
in active chunks
2019-08-14 19:47:38 -07:00
Spottedleaf
ada657bafd Print entity debug stacktrace on entity double add (#2438) 2019-08-14 19:37:07 -07:00
Spottedleaf
2ecd461296 Fix MC-158900 (#2458)
The problem was we were checking isExpired() on the entry, but if it
was expired at that point, then it would be null.
2019-08-14 19:32:25 -07:00
Zach Brown
09f26baae2 [CI-SKIP] Rebuild patches for last merge 2019-08-11 11:27:09 -05:00
Paul Sauve
1503ae2d25 Do less work if we have a custom Bukkit generator (#2318) 2019-08-11 11:23:11 -05:00
Zach Brown
825b92807a Update upstream CB/S
--- work/CraftBukkit
Submodule work/CraftBukkit 1ec1b05e..368f4e99:
  > Increase outdated build delay to 3 weeks
  > SPIGOT-5249: Do not add data to empty loot table
  > SPIGOT-5257: Call EntityBreedEvent for foxes and set the child's spawn reason to BREEDING

--- work/Spigot
Submodule work/Spigot e5b1b5db..ea7e48b3:
  > Add string default for view distance, and API to retrieve per world
2019-08-10 12:44:57 -05:00
Shane Freeder
7a48375926 Fix java cross-version compilation
(Also, rebuild patches)
2019-08-08 16:12:57 +01:00
Omer Uddin
cb0e46c2df Implement alternative item-despawn-rate (#2128) 2019-08-08 02:06:08 +05:00
Omer Uddin
9fee8541d0 Reimplement hopper optimization patch (#2388)
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
2019-08-07 23:08:22 +05:00
TheGreatKetchup
caa6847ac0 MC-156852 fix (#2396) 2019-08-06 23:12:15 -04:00
Spottedleaf
02105ddde6 Fix recursion in EntityFox (#2418)
I changed a method call without looking at the implications.
super.processDeath would re-invoke the unmapped method, whereas super.d
would call the super method.
2019-08-05 20:31:38 -07:00
Spottedleaf
e6c3d60574 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 09:35:40 -07:00
BillyGalbreath
36a04c3729 Fix enderpearl item use cooldown (fix #2412) (#2413) 2019-08-04 21:15:53 -05:00
Spottedleaf
066f9c0345 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 10:48:22 -07:00
Omer Uddin
e7f327502f Offset Itemframe ticking (#2385) 2019-08-02 22:31:24 +05:00
Nassim Jahnke
55e2ef9d9c Fix server crash with piercing shots through vanished players (#2390) 2019-08-01 00:04:45 +02:00
Shane Freeder
c88648f4f1 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
03b5be5bf0 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:38:29 +01:00
Shane Freeder
445870186c Mark entities as being ticked when notifying navigation 2019-07-28 00:52:13 +01:00
Spottedleaf
ae53ee9e96 use getChunkImmediately for vehicles 2019-07-28 00:38:49 +01:00
Spottedleaf
e170ab7fce 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-25 18:36:26 -07:00
Spottedleaf
405dd2640c Peek the unload queue for chunk generation checks (#2332) 2019-07-23 20:41:26 -07:00
Spottedleaf
6d4ae38bae Bring task execution into server tick timings (#2357) 2019-07-23 20:20:14 -07:00
Black Hole
aead01a615 Set spawning entity for fireworks spawned by a crossbow (#2358)
Fixes #2327
2019-07-24 05:12:40 +02:00
Lucavon
ec2b9d17b4 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:30:36 -05:00
Minecrell
a4734db50b Update TerminalConsoleAppender + JLine, use Jansi instead of JNA (#2299)
Remove dependency on JNA since it is no longer needed.
2019-07-24 02:25:05 +02:00
Shane Freeder
bed0039737 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
561f77a904 Ensure xray does not perform non MT-Safe operations (#2361) 2019-07-23 02:59:48 -07:00
Spottedleaf
61b8600730 Only write to cached header in RegionFile if write potentially succeeds (#2294) 2019-07-21 14:36:27 -07:00
Andreas Troelsen
6b80069cbe SPIGOT-5190: Do not call superfluous EntityCombustEvent 2019-07-20 19:14:06 -05:00
Spottedleaf
f01c2b2b7c Update to 1.14.4 (#2333) 2019-07-19 21:01:24 -07:00
Spottedleaf
22e3d2d3a7 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 21:41:24 -07:00
Shane Freeder
61c0f2d99e 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
3f201cda06 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-06-12 21:54:16 -04:00
Spottedleaf
9e4bffef00 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-07 23:52:08 -07:00
Shane Freeder
55844cd88e 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:04:38 +01:00
Shane Freeder
dd07f4de85 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
Riley Park
d9f670f940 Merge pull request #2240 from Spottedleaf/anti-xray
Re-Add Anti-Xray
2019-07-09 18:11:34 -07:00
Spottedleaf
f06dcdb847 Fix entity count in timings graph (#2293) 2019-07-08 06:29:22 -07:00
Shane Freeder
88377b6fdf 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
93dacdccc5 Cleanup ChunkMapDistance patch 2019-07-05 03:23:33 +01:00
Shane Freeder
443dad0d3c 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
0827bcd007 Remove unused fire-physics-event-for-redstone config option (#2277) 2019-07-03 13:44:07 -07:00
Shane Freeder
c204872eb4 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:03 +01:00
Spottedleaf
ef1951f4b0 Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-07-01 22:24:09 -07:00
Zach Brown
63edda8ed6 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
d575c87c82 Config migrations 2019-07-01 14:53:51 -07:00
Spottedleaf
698001f796 Resolve crash issue by shoving chunk loads onto the next tick 2019-07-01 14:36:31 -07:00
Spottedleaf
5efeb3be4a Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-07-01 12:53:51 -07:00
Shane Freeder
8cd854bce5 Don't double-start the tickEntities Timing 2019-06-30 21:18:04 +01:00
Spottedleaf
807b8a4c50 Actually use our log full policy 2019-06-29 20:38:27 -07:00
Spottedleaf
d19b667346 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
9fd79c5479 Do not force load chunks for plugin constructed packets 2019-06-28 08:05:52 -07:00
Spottedleaf
30bf6e01f7 Merge branch 'ver/1.14' of github.com:PaperMC/Paper into anti-xray 2019-06-28 06:37:28 -07:00
Shane Freeder
b61c6a3958 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
a54890fe8c Fix #2232 - Passive mobs don't move (#2253) 2019-06-28 05:33:17 -05:00
Spottedleaf
59cef70173 Keep neighbour chunks loaded while obfuscating 2019-06-26 19:04:28 -07:00
Shane Freeder
baf28f8bab Only save world data during a full save (Fixes #2243) 2019-06-26 15:21:16 +01:00
Spottedleaf
8a544afc81 Fix build? 2019-06-25 22:27:22 -07:00
Spottedleaf
c6a49e85f0 Use getChunkIfLoadedImmediately not getChunkIfCachedImmediately 2019-06-25 22:20:20 -07:00
Spottedleaf
4d410bac8e Re-Add Anti-Xray 2019-06-25 21:50:57 -07:00
Shane Freeder
979c900640 Fix raids throwing an UnsupportedOperationException 2019-06-26 03:11:29 +01:00
Shane Freeder
55897098d6 Fix CME from raids
Use the iterator to remove elements
2019-06-26 01:31:26 +01:00
Shane Freeder
9f6ea786bc 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
2fd8cba9f4 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
6cbdc109ab Revert "Update VersionFetcher regex for upstream versioning changes"
This reverts commit dd553fa4e2.
2019-06-25 14:40:54 +01:00
Shane Freeder
da6d8e9da9 Revert "Optimize Persistent Data loading" (Fixes #2229) 2019-06-25 05:14:30 +01:00
Zach Brown
dd553fa4e2 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
40748b3c8d 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 02:47:58 +01:00
Spottedleaf
651932f299 Fix tracker desync issue (#2224) 2019-06-23 19:32:10 -07:00
William Blake Galbreath
347defbe7a Rework fix for MC-114618 so not break map maker's workflow. Fixes #2221 2019-06-23 14:31:33 -05:00
Spottedleaf
f34c1b5fe2 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 13:17:40 -07:00
Spottedleaf
413757949e Fix verified-loaded-count being off for chunk debug command (#2219)
We need to bypass ticket checks when counting
2019-06-22 13:07:31 -07:00
Spottedleaf
83d1978402 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 13:04:26 -07:00
Zach Brown
a29a43a4ab Rebuild patches 2019-06-22 14:04:26 -05:00
Byteflux
b17d06866e Add support for OpenJ9 heap dumps in /paper heap 2019-06-22 14:01:49 -05:00
Zach Brown
db023f4bee Rebuild patches 2019-06-22 13:06:08 -05:00
Spottedleaf
6bac289d83 Fix vanished players don't have rights patch 2019-06-22 13:04:58 -05:00
Omer Uddin
0b2d50ae2e Rework bed dismount mechanics (#2145)
Fixes #1726
2019-06-22 13:59:47 -04:00
Spottedleaf
4d67bf0055 Log other thread in DataPaletteBlock lock failure 2019-06-21 14:45:20 -07:00
Spottedleaf
8e00f47527 Fix MC-154214 (#2195)
This should resolve unloading issues.
2019-06-19 15:48:48 -07:00
Shane Freeder
4606139d59 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
30fbda1376 Better format 2019-06-17 17:43:18 -07:00
Spottedleaf
ec6ade68e0 Add WorldName to blockstate location 2019-06-17 17:41:53 -07:00
Spottedleaf
a4a1cae173 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 00:47:51 -07:00
Spottedleaf
bf2043b339 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 20:52:34 -07:00
Shane Freeder
c4e610e33c Fix out of bounds falling block removal (#2188) 2019-06-16 14:47:23 +01:00
Shane Freeder
5968b5c6e0 Fix enderchests not playing close sound (#2190) 2019-06-16 14:00:08 +01:00
Shane Freeder
75b8a71f9e 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
b1b5cc1713 fix exception message 2019-06-15 11:07:03 -07:00
Spottedleaf
1cda6342bf Proper paper commenting 2019-06-15 10:36:09 -07:00
Spottedleaf
7d67870905 Show blockstate location if we failed to read it 2019-06-15 10:30:43 -07:00
wizjany
08bd3b86b7 Use the entity registry id instead of translation key when posting PreCreatureSpawnEvent and PreSpawnerSpawnEvent 2019-06-14 22:06:36 -07:00
Spottedleaf
1cad29b3e2 Change format 2019-06-14 21:21:39 -07:00
Spottedleaf
5947d0b315 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
e8de107ca0 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-13 19:27:40 -07:00
Omer Uddin
c180ef4b12 Stop natural spawning after limit has been reached (#2127) 2019-06-12 22:34:18 -04:00
Shane Freeder
4a0148ba4e 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
5ded82125d Fix async calls to getChunkAtIfLoadedImmediately 2019-06-11 04:17:39 +01:00
Shane Freeder
b579218f93 Fix PlayerNaturallySpawnCreaturesEvent
Trivia: Did you know that events need to be called to work?
2019-06-11 02:45:46 +01:00
Spottedleaf
522cb2b4d1 Improve chunk loaded checks 2019-06-10 17:29:30 -07:00
Shane Freeder
0616199cad Only fire WorldSaveEvent on full chunk saves (Fixes #2161) 2019-06-10 21:45:17 +01:00
Shane Freeder
bb5f617e9b Merge branch 'master' into ver/1.14 2019-06-10 10:11:29 +01:00
Shane Freeder
48f6e45add Catch exceptions from dispenser entity spawns 2019-06-10 09:52:34 +01:00
Shane Freeder
b1167a458a Improve autosave
- don't trip manual save warning
- respect world#isSavingDisabled
2019-06-10 06:39:04 +01:00
Shane Freeder
bdd1dc6535 Incremental chunk saving 2019-06-09 20:22:44 +01:00
Zach Brown
0e0501c9df 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
4d6f73449f 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 08:36:57 -07:00
Shane Freeder
b97ec2bf45 Fix chunk ticking range 2019-06-06 06:13:00 +01:00
Zach Brown
692aedda04 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
69c044e1b7 Set connection thottle to -1 when Velocity IP forwarding is enabled
Port of 3c6f46936e
2019-06-02 21:58:14 -05:00
Zach Brown
d03adac48b Backport MC-114618 - EntityAreaEffectCloud negative size fix 2019-06-02 21:49:14 -05:00
Spottedleaf
fffe000496 Fix tabcomplete firing off-main
Also rebuild patches
2019-06-02 19:19:44 -07:00
Spottedleaf
da7a69cec3 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 18:25:12 -07:00
Riley Park
d8aa9c7970 Merge pull request #2097 from simpleauthority/add-get-step-sound
Add BlockSoundGroup to Block & Implement
2019-06-01 21:13:31 -07:00
Spottedleaf
4ce3dc1b76 Fix memory leak if the server is constantly overloaded (#2109) 2019-05-30 20:19:06 -07:00
Zach Brown
b270fb08ff 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
0e9230e80c 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
f501069d24 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
e8b7718afe Set connection thottle to -1 when Velocity IP forwarding is enabled 2019-05-30 18:46:47 +03:00
Shane Freeder
18794d2123 Don't replace entries in the tracked player map (Fixes #2102) 2019-05-29 05:54:11 +01:00
Shane Freeder
35226c96e4 ChunkMapDistance-CME 2019-05-29 04:25:08 +01:00
Riley Park
e3e0ca14b6 Merge pull request #2089 from BillyGalbreath/GH2088
MC-114618 - Fix EntityAreaEffectCloud from going negative size
2019-05-28 17:44:32 -07:00
simpleauthority
cb0e26829f Add BlockSoundGroup to Block and implement 2019-05-28 03:53:48 -07:00
Spottedleaf
9f4fe93a9a Update to 1.14.2 2019-05-27 16:01:45 -07:00
William Blake Galbreath
b1fe87eb4a MC-114618 - Fix EntityAreaEffectCloud from going negative size 2019-05-27 17:36:06 -05:00
Spottedleaf
4d1f9bd463 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
7a5a4fd400 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
66554efabb 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-26 23:17:50 -07:00
Spottedleaf
78a4e64734 Move getTypeIfLoaded and friends to IBlockAccess (#2077) 2019-05-26 23:14:14 -07:00
Spottedleaf
4a65bd4b04 Handle gen flag for placeholder getChunkAtAsync (#2079)
Also fix a loadChunk call in heightmap api
2019-05-26 22:17:12 -07:00
Zach Brown
4acb916956 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:36:37 -05:00
Shane Freeder
70e671043a Merge branch 'master' into ver/1.14 2019-05-27 01:16:47 +01:00
Spottedleaf
3e0027e482 Revert Don-t-recheck-type-after-setting-a-block.patch 2019-05-26 10:40:12 -07:00
Shane Freeder
db3bafc4d1 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
d1f29dbbe3 Fix some concurrency issues around world generation (Fixes #2052, #2037) 2019-05-24 11:16:03 +01:00
Shane Freeder
12a934315c 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
b8fb51a017 Add configurable spawn loaded range back (#2051) 2019-05-23 20:12:57 -07:00
Spottedleaf
50c66c63aa Fix /tps (#2066) 2019-05-22 11:57:27 -07:00
Shane Freeder
8353831ea5 Fix compilation 2019-05-22 05:14:56 +01:00
Shane Freeder
504a4d9c6e 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:58:00 +01:00
Shane Freeder
8b5a606f59 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
ad0f730861 stop CraftWorld#isChunkLoaded from loading chunks 2019-05-21 02:37:47 +01:00
Spottedleaf
6fef4e1b23 Fix RegionFileCache#hasRegionFile (#2062)
also remove the pointless synchronization on
RegionFileCache#getRegionFileName
2019-05-19 19:26:17 -07:00
Shane Freeder
9b1c65cf48 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
a24e98859f Don't run death logic on dupe entity removals 2019-05-19 20:48:54 +01:00
Shane Freeder
059e210728 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
98314712f0 Restore some entity duplication fix patches 2019-05-18 06:01:44 +01:00
Spottedleaf
63233b4c4c Fix MinecraftServer#isMainThread (#2046)
See patch notes
2019-05-16 15:27:36 -07:00
Zach Brown
13313f9bb6 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
6a951ff79a 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
ee7b1a66d0 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
Riley Park
1801baec4d Merge pull request #2029 from Spottedleaf/optimize-datawatcher
Optimize DataWatcher
2019-05-15 01:13:05 -07:00
Spottedleaf
b10550736e Resolve memory leak involving TileEntities
Their chunk is set to null before removal, so we kept them around.
2019-05-14 14:54:32 -07:00
Spottedleaf
8ff0f5c10d 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 21:13:31 -07:00
Zach Brown
b3cf37c102 Re-add dropped keep alive disconnect
Should fix the terminal spam
2019-05-13 23:17:05 -05:00
Spottedleaf
b56a982756 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
1ea2c3b4be MC 1.14.1 2019-05-13 21:20:58 -05:00
Zach Brown
d1310ddac5 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
ecafb51908 Fix MC-151674 Close RegionFiles when they get evicted from cache
https://bugs.mojang.com/browse/MC-151674
2019-05-12 19:30:57 -07:00
Spottedleaf
6635ae643e Review EntityPathfindEvent
Add missing target forward
2019-05-12 18:39:06 -07:00
Spottedleaf
e36079cf6f Remove TODO on Add more Zombie API
Testing in game verified the zombie's arms raise and fall correctly
when using the API.
Renamed the OBFHELPER since the method is placed on EntityInsentient
(since we want to conflict on changes).
2019-05-12 18:04:29 -07:00
Spottedleaf
1936613b92 Remove TODO on Add ray tracing methods to LivingEntity
Note: The entity parameter stays 'this' since we want the block the
entity is targetting. This can change based on the block the player
has in their hand (see scaffholding). With a scaffhold in hand, the
scaffhold blocks in the world become solid 1x1x1 cubes, and without they
follow their model's shape.
2019-05-12 17:23:21 -07:00
Spottedleaf
79a43cd2a2 Fix TODOs in Optional TNT doesn't move in water
Turns out the doWaterMovement method was never called.
Moved the tracker updates into tick() and delete doWaterMovement
2019-05-12 16:42:49 -07:00
Spottedleaf
8d7a074503 Resolve TODO on PlayerNaturallySpawnCreaturesEvent
- Add missing isCancelled check

We don't need to worry about going out of range of int
since the value is clamped to view distance, and view
distance is clamped to 33
2019-05-12 15:34:42 -07:00
Shane Freeder
a13710cccf Merge branch 'master' into ver/1.14 2019-05-10 20:03:43 +01:00
Shane Freeder
cd96c09a94 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:
7d29eb5e SPIGOT-4899: Horse inventory title not set
2019-05-10 19:11:17 +01:00
Shane Freeder
86be055929 Fix MCUtils and other calls to postTaskOnMain
Method changed changed it's role to providing a TickTask object which
isn't automatically scheduled onto the server
2019-05-10 18:42:33 +01:00
Spottedleaf
396186a950 Fix patch "Faster redstone torch rapid clock removal" (#2014)
Tux pointed out the patch still has O(n^2) time complexity since
the sublist class in arraylist does not override clear() from
AbstractList, which uses a forward moving iterator to clear
the list.

Resolved by using a peek and poll from ArrayDeque.

This patch also removes the useless WeakHashMap which holds
the list (it mapped world->list) and replaces it with a
field on World.
2019-05-10 08:48:58 -07:00
Shane Freeder
eb03bf7e66 Fix accidental reversion of patches, oops 2019-05-09 15:23:52 +01:00
Shane Freeder
a17bbb4560 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:
fe0cadf0 Add BlockShearEntityEvent for Dispensers shearing Sheep
90e5cca3 SPIGOT-4892: Allow to set the currently viewed page of a book on a lectern inventory
a30337f7 SPIGOT-4887: Villager level minimum is 1
d88d828c SPIGOT-4886: Villager type SNOWY should be named SNOW

CraftBukkit Changes:
6ceffb0d SPIGOT-4895: Bed doesn't explode in Nether and The End
ee881847 SPIGOT-4888: setSleepingIgnored resets the night even when there is no one in a bed
15e02b40 SPIGOT-4890: EntityDeathEvent fires twice when breaking an armor stand in survival mode
b38a3c33 Add BlockShearEntityEvent for Dispensers shearing Sheep
70ebefca SPIGOT-4891: LecternInventory.getType() should return InventoryType.LECTERN
0036d1b7 SPIGOT-4887: Villager level minimum is 1
2019-05-09 08:20:01 +01:00
Spottedleaf
c0f92870ab Use WorldServer#entitesById for entity iteration
WorldServer#globalEntityList is not the actual list of entities in a world
2019-05-07 18:49:41 -07:00
Spottedleaf
665bb10aaa Actually write to the tracker field on entity
perhaps we can also look into removing this modification altogether
2019-05-07 18:13:24 -07:00
Shane Freeder
ca0b6b5337 Fix a ClassCastException from shooting fireworks 2019-05-07 19:56:32 +01:00
Shane Freeder
aa5d287e4f Fix RegionFileCache write logic 2019-05-07 16:26:37 +01:00
Spottedleaf
e052a9deff Fix foxes not dropping items 2019-05-07 08:20:32 -07:00
Spottedleaf
f1e494aba9 Fix tracking dead entities 2019-05-07 06:50:02 -07:00
Shane Freeder
55b60646bc Don't double set air in BlockFire 2019-05-07 13:16:22 +01:00
Spottedleaf
71b1db46b1 Fix entities refusing to die and portal search not working 2019-05-07 05:00:51 -07:00
Spottedleaf
5a6ef6ed50 Update upstream 2019-05-06 17:33:26 -07:00
Spottedleaf
96b32aa6bc Fix more runtime stuff
Remove chunk neighbour system until we can figure out the chunk system
2019-05-06 17:05:41 -07:00
Spottedleaf
b372f891aa Fix some runtime issues 2019-05-06 13:45:02 -07:00
Spottedleaf
b64ce880b7 It compiles 2019-05-06 12:30:27 -07:00
Zach Brown
1fa1246a1e More compile fixes
- Re-removes Bukkit#getServerName - This was (hopefully?) only added back
  for Timings v2. It should be kept in that scope.

- Intend to let PlayerViewDistance API slip. Given the scope of the
  changes in this area it seems best to let this slip past initial
  release. It can be re-added when there is additional time to focus on it
  and the changed systems it relies on. If it is fixed prior to release
  this is implemented as a single shim patch that can be dropped.
2019-05-06 03:20:16 -04:00
Spottedleaf
6281fc8f11 Fix some more compile errors 2019-05-05 20:53:47 -07:00
Spottedleaf
f9f71eb14e Update Upstream 2019-05-05 19:58:04 -07:00
Spottedleaf
52cd8744e0 More compile error fixes 2019-05-05 17:57:14 -07:00
Spottedleaf
fad9f189b6 Fix some compile errors 2019-05-05 16:24:37 -07:00
Spottedleaf
e80bd49c80 Fix some issues on the list 2019-05-05 14:39:51 -07:00
Spottedleaf
d42c203adc Shove decompile fixes into the proper patch 2019-05-05 11:09:29 -07:00
Spottedleaf
670fbcd29e More 1.14 patches
now we can rebase
2019-05-05 10:19:34 -07:00
Spottedleaf
70e4947867 Correct patches 2019-05-05 04:32:20 -07:00
William Blake Galbreath
8cfdd708e9 more 1.14 stuffs yay! 2019-05-05 06:12:32 -05:00
William Blake Galbreath
3f43b7abe8 More patches for 1.14 2019-05-05 03:33:44 -05:00
Shane Freeder
f542bdef09 Even more patches for 1.14 2019-05-05 03:23:25 +01:00
Spottedleaf
be2fdf029f More 1.14 patches 2019-04-30 15:51:03 -07:00
Shane Freeder
86e7cee50c Even more patches for 1.14 2019-04-30 02:20:24 +01:00
Spottedleaf
cab9529fe8 More 1.14 patches 2019-04-28 20:14:31 -07:00
Spottedleaf
567bd0fcac More 1.14 patches 2019-04-28 10:59:47 -07:00
Zach Brown
10c24a8e61 More patches for 1.14
Chunk related stuff will need to be revisted later
2019-04-27 19:23:53 -04:00
Phoenix616
0e614d3efa Fix itemframe sound on change 2019-04-27 20:05:20 +01:00
Spottedleaf
9c7e369607 More 1.14 work 2019-04-26 23:26:04 -07:00
Spottedleaf
f7dfbc078c More 1.14 updates (#1995) 2019-04-26 20:05:36 -07:00
Shane Freeder
aa701c743f More work for 1.14 2019-04-26 02:24:00 +01:00
Shane Freeder
29a22e708f Aim towards real 1.14 2019-04-25 07:53:51 +01:00
Shane Freeder
024f92b2bb A bit more work for 1.14 2019-04-24 03:34:11 +01:00
Shane Freeder
43b4755c1b More work towards 1.14 pre5 2019-04-24 02:00:24 +01:00
Shane Freeder
a84170f6a0 Initial work on 1.14 pre-5 2019-04-23 05:47:07 +01:00
Shane Freeder
85e05732b2 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:
da08d022 SPIGOT-4700: Add PlayerFishEvent.State.REEL_IN
0cef14e4 Remove draft API from selectEntities

CraftBukkit Changes:
a46fdbc6 Remove outdated build delay.
3697519b SPIGOT-4708: Fix ExactChoice recipes neglecting material
9ead7009 SPIGOT-4677: Add minecraft.admin.command_feedback permission
c3749a23 Remove the Damage tag from items when it is 0.
f74c7b95 SPIGOT-4706: Can't interact with active item
494eef45 Mention requirement of JIRA ticket for bug fixes
51d62dec SPIGOT-4702: Exception when middle clicking certain slots
be557e69 SPIGOT-4700: Add PlayerFishEvent.State.REEL_IN
2019-04-22 22:36:14 +01:00
Shane Freeder
3a49574188 don't NPE on dimensionmanager toString
CraftBukkit uses vanillas DimensionManager, but does not actually
register its own dimension types, etc, due to vanilla

This causes issues because anything, e.g. command feedback, trying
to print information about the world will often attempt to print out
the dimension name, which ends up throwing an NPE due to the lack of
a registered type, we work around this by just returning the world name,
this is not super elegant, but is the only route that promises not to
break stuff.
2019-04-22 20:20:22 +01:00
Shane Freeder
480bf44b1b Only store oversized values on spawners if needed, and ensure that vanilla values are read when applicable 2019-04-20 19:22:43 +01:00
William Blake Galbreath
599213f4b4 Mob Spawner API Enhancements 2019-04-19 12:41:38 -05:00
Shane Freeder
af2e88fbb9 Fix NPE from sign placement (Closes #1963) (Fixes #1917)
This fixes issues with upstreams changes to solve a private issue on
their side, as signs are placed, they may replace existing blocks, e.g.
grass, which breaks upstreams assumption that the sign is always placed
adjacent to a surface
2019-04-17 00:53:55 +01:00
Shane Freeder
9cc93b1229 Don't try to read the data outside of the try-catch 2019-04-15 05:06:43 +01:00
Shane Freeder
1a74c62cf3 Handle bad chunks more gracefully
Brought this patch back from the graveyard, 1.13.x changed how chunks
where loaded and the patch was dropped.

Prior to this change the server would crash when attempting to load a
chunk from a region with bad data.

After this change the server will defer back to vanilla behavior. At
this time, that means attempting to generate a chunk in its place
(and occasionally just not generating anything and leaving small
holes in the world (This might not be accurate as of 1.13.x)).

Should Mojang choose to alter this behavior in the future, this change
will simply defer to whatever that new behavior is.
2019-04-15 02:27:39 +01:00
Spottedleaf
8ee42908e1 Add Heightmap API (#1724)
Resolves #1672 
This API is intended to expose useful heightmaps found in the server to API. This exposes all of the live world heightmaps currently in the server. 
If a heightmap becomes impossible to implement, api spec allows the implementation to throw UnsupportedOperationException (far better than returning some weird unexpected value).

Tested via:
https://gist.github.com/Spottedleaf/5d47f67c55a9fb870251ff344bfeb6b3
2019-04-10 20:36:31 -07:00
Automated
bd3ec61e68 [Auto] 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:
7c395d42 SPIGOT-4681: Note about additional world creation on STARTUP
2019-04-08 06:51:36 -04:00
Automated
0ce34c30ee [Auto] 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:
812f66aa SPIGOT-4684: Update persistence of converting zombie villagers
2019-04-08 06:31:50 -04:00
Aikar
f4afd120d2 Optimize Captured TileEntity Lookup
upstream was doing a containsKey/get pattern, and always doing it at that.
that scenario is only even valid if were in the middle of a block place.

Optimize to check if the captured list even has values in it, and also to
just do a get call since the value can never be null.
2019-04-06 10:25:21 -04:00
Aikar
1abad1ff37 Improve Cancelled Block Place Tile Entity discardment
We bandaided this logic on a case by case basis before with Loot Tables and Chests,
but that is not the correct fix.

Ultimately we just needed to clear out the captured tile entity list so that the
update calls did not process the tile entity that is no longer even valid.

This solution will ensure ALL placed tile entities data is ignored and not just
the few cases we previously had filters for.
2019-04-06 10:23:05 -04:00
Spottedleaf
6719e61704 Only flush to disk on chunk saves if paper.flush-on-save is true (#1942)
The cost of a call to sync() adds up quickly and especially for
HDDs. Playing around generating chunks for a while warranted a
3 min save time on a HDD. This is unacceptable default behaviour
and now the behaviour is hidden behind a flag for server owners
who are OK with taking a hit on saves (although SSDs will not have
this issue remotely as bad, since most of the time was spent seeking).
2019-04-06 02:59:42 -07:00
Zach Brown
84f63e360a Clear containers on cancelled place events
It is possible for a container to be brought into the world pre-filled
in place event (thanks NBT!). When the blockplacevent(s) are cancelled
their blockstate is updated in OBC. This triggers them to drop their
inventories.

Rather than screwing with the update method which is used elsewhere, we
can simply clear any inventories once we are told that a plugin intends
to cancel the interaction.

Fixes GH-1831
2019-04-06 00:31:19 -04:00
Spottedleaf
0891f63203 Optimize GameRules to use LinkedHashMap
Previously TreeMap was used which has poor get(K) performance.
2019-04-04 18:13:49 -07:00
Aikar
29399ffc02 Numerous fixes to entity related changes
While it wasn't really "broken" before, if plugins use NMS
(which they really should't be) and mess with entity management
themselves, and get it wrong, they could ultimately corrupt our
state expectations.

I've been unable to reproduce any issues locally, but these changes
are the result of me analyzing the code pretty deeply and seeing
about how to make it more durable to abnormal usage.

Any servers seeing oddities, please run with -Ddebug.entities=true
and send me any logs triggered.
2019-04-05 23:08:45 -04:00
Shane Freeder
7fd8287ba2 Revert entityList type in World
Why are plugins accessing this?! Whhhhy?!

For any plugin developers reading this, this are methods in World
specifically for adding entities to the world, aptly called spawnEntity
2019-04-05 13:41:45 +01:00
Zach Brown
04f3e0a28f Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit 0e1cea5a..f40143ef:
  > SPIGOT-4691: Fix custom world generator when placing tiles
2019-04-05 05:17:10 -04:00
Zach Brown
b5e7b51be6 Default nether void damage to off and allow that 2019-04-05 01:27:37 -04:00
Zach Brown
2e6720ba2b Allow configurable nether void height damage
Fixes GH-1804
2019-04-05 00:52:02 -04:00
Zach Brown
b6d953a85d Don't throw if a server unregisters the version cmd 2019-04-05 00:35:59 -04:00
Zach Brown
ab1484de91 Prevent negative in lure times - Fixes GH-1583 2019-04-05 00:09:29 -04:00
Spottedleaf
5d5e321bf8 Make region files more reliable to write to
Previously we would write to header before writing our chunk data,
which opens a window for corruption (or we would overwrite entirely).
Now the saving process has been changed to follow this chain of events:

1. We always allocate a new space to write so we do not potentially
overwrite and corrupt the current data
2. Write the chunk data first (the order of the fields in
the chunk data isn't relevant though)
3. Flush to disk
4. Write to the region header last
5. Flush to disk
6. Then we free the previous space allocated

With this chain of events it is impossible for a chunk write to corrupt
a region file, unless the operating system has lied and we have NOT flushed
to disk.

However server administrators are still recommended to continue performing
regular backups.

Note that when Mojang finally decides to change their region format
to deal with oversized chunks this patch must be changed to deal with
whatever system they decide to impose.

We also make use of two flushes to disk per chunk save (to ensure
ordering and ensure data has gone to disk), so this will negatively
affect save performance.
2019-04-01 18:58:55 -07:00
Automated
3e95d692e7 [Auto] 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:
7634491f Added Entity#setRotation.

CraftBukkit Changes:
0e1cea5a Added Entity#setRotation.
2019-04-03 04:51:39 -04:00
Spottedleaf
7e58932043 Allow login events to fire only after the server has loaded
Plugins that rely on the async login event to fire can miss the event
if a player tries to log in before the server has loaded.

The solution is to simply block the event threads from executing until
the server has loaded. This will not have an adverse affect on logins
since the event threads are cached and are only used for executing events
asynchronously.
2019-03-31 22:18:39 -07:00
Aikar
3ecea2902b Updated Upstream (CraftBukkit/Spigot)
We pretty much reverted most of Spigots changes here as ours is better.

I guess least Spigot is trying to get closer to us? but missed..

CraftBukkit Changes:
0bf75bbd SPIGOT-4686: Enchantment ordering nondeterministic

Spigot Changes:
f09662d0 Rebuild patches
2019-04-02 23:27:20 -04:00
Aikar
fba6eef5bd Re-add isTypeNotPersistent check
seems CB did something different with that field more than I understood.

So now it permanently doesn't match vanilla? :(
2019-03-29 08:50:52 -04:00
Shane Freeder
a739de61cb Fix PersistentStructureLegacy NPE on custom worlds
This is caused due to the DimensionManager in CB worlds not being
registered by NMS, we fix this by copying CBs behavior of using the
world providers DimensionManager, vs using the actual dimension manager
of the world
2019-03-29 11:37:20 +00:00
Aikar
b306372426 Restore vanilla behavior of mob counts for persistent mobs
Now decounts entities that got name tagged or persistent state changed.

Removes a bad CB check that ignored some persistent mobs persistence state.

Vanilla code explicitly only cares 'is this mob persistent?' and if
it is, it is not counted. CB should not of been checking its type state.

Fixes #1922
2019-03-29 02:51:08 -04:00
Aikar
fbe06222c4 Fix map rendering issues - Fixes #1796 2019-03-29 02:27:56 -04:00
Aikar
f9b8a839ff Optimize Persistent Data Loading
removes Mineshaft loading legacy as we had pre 1.13.2 to avoid managing
that very large data file from legacy systems.

Previous to 1.13.2 these data files were never loaded to begin with, so they
effectively do not contain valid/relevant data.

These files take a long time to convert on large worlds and crashes the server.

Additionally, cache the result of a file being missing so we don't keep spam checking it.
2019-03-29 02:16:55 -04:00
Aikar
274fe387da Fix a concurrency issue with legacy structure data loading
This code could get hit by many threads at once, causing multiple
chunk loads to convert legacy data, leading to all sorts of fun.

Additionally, go ahead and preload it async on world load.
2019-03-29 02:02:53 -04:00
Aikar
7ed92736c0 Reuse buffers for chunk compression to optimize memory use
Instead of allocating a buffer for every chunk compression, reuse
the same 64k sized buffer.

Also stopped doing dynamic compression levels. It wasn't helping enough.

This will improve memory usage and zlib performance of chunk compression.
2019-03-28 22:06:35 -04:00
Aikar
bea67c4412 Forgot to convert duration to millis per the API expectation for tick event 2019-03-28 01:27:39 -04:00
Aikar
4606cb8ce3 PlayerDeathEvent#getItemsToKeep
Exposes a mutable array on items a player should keep on death.

This allows a cleaner method to implement "Keep certain items on death"
than how plugins currently do it in that it never removes them in first
place, so its safe if the player logs out/server is shutdown before respawn.

Example Usage: https://gist.github.com/aikar/5bb202de6057a051a950ce1f29feb0b4
2019-03-28 00:58:05 -04:00
Aikar
05c82fcfe0 Server Tick Events
Fires event at start and end of a server tick
2019-03-27 22:49:29 -04:00
Aikar
4e0a1533d0 Remove light optimization
getting lots of bug reports on light. just going to drop this even though
I really don't see how it could be the source due to my understanding of
the games light engine...

Fixes #1920
2019-03-27 20:46:46 -04:00
Shane Freeder
0e54493013 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:
4c8327f7 SPIGOT-4673: EntitySpawnEvent should not be called for players

Spigot Changes:
5629554b Rebuild patches
2019-03-27 18:41:12 +00:00
Aikar
9c9062547e Revert "Optimize Bukkit <-> NMS Mapping tables and legacy conversion"
This reverts commit 9329e1383d.

Has issues, will fix later
2019-03-26 01:58:53 -04:00
Aikar
8c452eb0d5 Fix issue in last build with null task timings 2019-03-26 01:31:59 -04:00
Aikar
92059ef6ba Improve Timings stack protection more
Ensures in more places that exceptions will not corrupt the Timings stack.

Timings will now better report stack corruption and auto repair itself too.
2019-03-26 00:31:34 -04:00
Aikar
9329e1383d Optimize Bukkit <-> NMS Mapping tables and legacy conversion
Use O(1) patterns for mapping conversions to improve plugin performance.
Optimize collections used by legacy plugin conversion

This should improve plugin performance across the board
on Paper for both Modern and Legacy Plugins.

Also log how long building those tables takes...
2019-03-25 22:37:28 -04:00
Automated
973a062bb9 [CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2019-03-24 23:51:44 -04:00
Shane Freeder
9988ca1c1d Don't update entity trackers for worlds without players
PlayerList#moveToWorld already untracks the player from the player list,
meaning that we do not need to worry about this untracking players
who've left the world, The server also untracks a player during
disconnect, handing yet another case.

If we don't need to untrack players who've left the world, it should be
reasonably save to do this, as we're not going to be performing any
server->client updates here, which is what this code is intended to do,
and all players should be untracked.
2019-03-24 20:34:32 +00:00
Aikar
eb39758848 missed a spot for pickupDelay fix 2019-03-24 18:15:39 -04:00