* Unify comment format
* More configurable
* Remove one extra execute mid-tick task call in level tick when PWT is disabled
This may cause extremely rare, weird, strange, magic, mysterious issues with plugins, or potentially more.
One example is that it may cause boss mob duplication issue when `ONE MOB ONLY` was enabled in plugin SupremeBosses
Move Leaf config init before the CrashReport#preload to prevent some configurable values can't read properly in some class static fields
For example, the CrashReport#preload triggers the init of Util class. If the config init happens after this, then can't read config values for VT4ProfilerExecutor properly
Similar as Paper # 12030, watchdog thread may also access chunks when server crashed by watchdog timeout
We don't need to add same condition to isSameThreadFor used by PWT, since it already uses instanceOf to check is TickThread or not.
Explicitly update new data to crossbow on hand, to prevent failed to update projectile data on crossbow and also avoid dupe.
Some plugins may change items by setting new item copy to player's inventory under scheduler under other projectile related events. In this way, the reference of crossbow item changed, thus the set call to `weapon` may not update data on the actual item.
Upstream has released updates that appear to apply and compile correctly
Paper Changes:
PaperMC/Paper@19156cdd Give the right amount of experience after mending (#13047)
PaperMC/Paper@29c8822d Remove no longer needed MC-210802 fix (#13059)
According to Purpur docs, the `burp-when-full` provides a option to play burp after completely filling the food level.
Thus, it should go back to vanilla behavior if the option is disabled.
Fix https://github.com/Winds-Studio/Leaf/issues/488
Upstream has released updates that appear to apply and compile correctly
Paper Changes:
PaperMC/Paper@78aecfeb Do not remove plugin chunk tickets on shutdown
PaperMC/Paper@9aaaadff Backport DFU changes from snapshots
Current implementation of OP lock is not an appropriate solution to prevent plugins that contain backdoor or malicious code. There are many ways to bypass this check to manipulate the OP list or permissions. The best way to prevent this kind of grief is to get plugins from valid and trustworthy places.