Commit Graph

4433 Commits

Author SHA1 Message Date
froobynooby 50e9601d1d Reduce entity tracker updates on move 2020-02-16 00:34:09 +09:30
Spottedleaf 6778f7c55f Handle chunk unloading during block tick 2020-03-30 05:07:04 +01:00
Spottedleaf 98ce7f6c2e performance: Improve Activation Range entity iteration
Faster Entity iteration using the chunks full entity list and array access.

Faster chunk lookups skipping the cache, as the pattern of access was not suitable
for cache usage (each request will likely blow cache)

This reduces the cost of Entity Activation Range's initial marking.
2020-03-29 22:41:33 -04:00
Aikar 67832e641f performance: Many Entity Activation Range Improvements
1) Immunity no longer gives 20 tick immunity, each immunity check can
give its own tick value on how long it lasts, drastically cutting down on most to 0-1 ticks.

2) Fixed Villager Immunity to use proper 1.15 check for Breeding.

3) Fixed Water Mobs being 100% immune due to the inWater check...

4) Fixed flying mobs being 100% immune due to the !onGround check...

5) Made Insentient mobs only check for the hasTasks during immunity check window, not every single tick. this made them way more active than desired
  - this puts behavior closer to inline with my original behavior in Spigot, but still does some checks to allow them temporary immunity, just not as much as before.

6) Inactive Entities would "inch" while trying to move, effectively getting nowhere. Now while an entity is inactive, it just won't even try to move.
  - this saves us from the expensiveness of Entity movement 1 out of 20 ticks. Now they will only move while either active or triggered a true immunity.
2020-03-29 22:26:44 -04:00
Shane Freeder 2420200c9b Update hidden-configs 2020-03-30 03:52:56 +01:00
Shane Freeder d50b906762 Updated Upstream ()
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
2020-03-27 06:18:08 +00:00
Shane Freeder ed80c4e6a5 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:
564ed152 #482: Add a DragonBattle API to manipulate respawn phases etc
9f2fd967 #474: Add ability to set other plugin names as provided API so others can still depend on it

CraftBukkit Changes:
fc318cc1 #642: Add a DragonBattle API to manipulate respawn phases etc
796eb15a #644: Fix ChunkMapDistance#removeAllTicketsFor not propagating ticket level updates
a6f80937 SPIGOT-5606: call BlockRedstoneEvent for fence gates

Spigot Changes:
a03b1fdb Rebuild patches
2020-03-26 02:37:20 +00:00
Spottedleaf 368ecbd5b4 Fix memory leak in TickListServer (#3068)
Only occurred when entries were scheduled with huge tick delays

Add two flags to debug excessive tick delays:
-Dpaper.ticklist-warn-on-excessive-delay=true (false by default)
and -Dpaper.ticklist-excessive-delay-threshold=ticks which
sets the excessive tick delay to the specified ticks (defaults to
60 * 20 ticks, aka 60 seconds)
2020-03-25 12:56:18 -07:00
Spottedleaf 93c88ab706 Timings changes (#3044)
* Timings changes

- Increment entity tick count only when an entity ticks
- Remove chunk inhabited timer
- Try finally entity timings

* Add activated entity ticks

Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2020-03-18 23:03:32 -07:00
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
Kyle Wood f2f3bed2b0 Update Paperclip 2020-03-15 02:54:57 -07: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 f1cb780357 [CI-SKIP] Add PAPER_TEST_APP_ARGS 2020-03-04 22:27:59 +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 0bc0116a01 Fix nullability annotation for Tameable#getOwnerUniqueId (Fixes #2968) 2020-02-22 15:30:42 +00:00
Shane Freeder 69d714b0c7 Don't NPE on exporting config with null values (Fixes #2973) 2020-02-22 15:22:06 +00: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
Zach Brown ff43ca2f0c Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit 37f32da8..918061b7:
  > SPIGOT-5468: Beehive TileEntity was not loaded for BlockStateMeta
2020-02-18 18:58:19 -06:00
Zach Brown 0a27793a09 Update upstream CB
--- work/CraftBukkit
Submodule work/CraftBukkit d171d7eb..37f32da8:
  > SPIGOT-5573, SPIGOT-5574: Move CustomChunkGenerator generation code back to buildBase()
2020-02-12 18:23:37 -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