The entire reason the if statement exists is to only flush and print when done if flag is true
This avoids /save-all from hurting as much as it was before, such as from backup plugins.
CraftBukkit caused a regression here by making unloading chunks not
have a ticket added and returning unloaded future.
This caused entities who were killed in same tick their chunk is unloading
to not be able to be removed from the chunk.
This then results in dead entities lingering in the Chunk.
Combine that with a buggy detail of the previous implementation of
the Dupe UUID patch, then this was the likely source of the "Ghost entities"
If something calls register twice, and the world is ticking, it could be
enqueued to add twice.
Vs behavior of non ticking of just overwriting state.
We will now simply log a warning when this happens instead of crashing the server.
This was not applied correctly, and would completely blow up chunk entity
registration if this feature was turned off....
Additionally, change how the entities are removed to be more consistent with other code.
Surface some of the logs indicating there is a problem as we are having so many issues with
entities that we don't need to be surpressing logs like that.
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.
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.
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
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)
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
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?),
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.
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
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
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
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
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
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.
* 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.
--- 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.
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
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
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
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
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
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
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.
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.
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
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
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
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
--- 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
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
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
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
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
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
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
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
* remove removed patch cause its not removed anymore
* Nuke IOWorker, oh, and also make it compile
* synchronize writes properly
* Remove note about IOWorker