Commit graph

7340 commits

Author SHA1 Message Date
Jake Potrebic
88d5b59398 Fix a handful of vanilla bugs (#8187) 2022-10-01 10:39:42 -07:00
Melncat
4a28b308a5 Add getDrops to BlockState and isPreferredTool to BlockData (#8284) 2022-10-01 03:30:00 -07:00
Nassim Jahnke
18149f8cb2 Add system property to dump stack on bad plugin class access (#8417) 2022-10-01 11:49:27 +02:00
Remynfv
f064550583 Fix other jigsaw related disconnect bug (#8414) 2022-10-01 01:08:07 -07:00
Nassim Jahnke
bcbb7dae76 Don't print full packages in new chunk system classes
Closes #8391, #8412
2022-09-30 23:19:51 +02:00
Pasqual Koschmieder
99a00c8e1c Fix wrong yaw and pitch of CommandSourceStack#getBukkitLocation (#8411) 2022-09-30 21:03:42 +02:00
Remynfv
1fe1b8b78e use BlockFormEvent for mud converting into clay (#8398)
Co-authored-by: Legitimoose <legitimoose@gmail.com>
2022-09-30 03:33:31 -07:00
Ilari Suhonen
87abd1cde2 Reduce allocation rate for checkBlock
Use ObjectOpenHashSet instead of HashSet
Remove unnecessary chunkToSave modification
2022-09-29 09:04:52 -07:00
Spottedleaf
3acabf7aa9 Do not log throwable for duplicate entity adds 2022-09-29 08:53:33 -07:00
Bjarne Koll
f044bd9e6c Mark parsed PoiChunks with data as not loaded (#8405)
Previously, PoiChunk#empty would create a new empty poi chunk with
loaded already set to true, as no data was contained in the chunk.
This allowed the poi chunk to skip expensive trips to the main thread.

However, PoiChunk#parse used #empty to create the initial PoiChunk
instance that is then filled with data.
This leads to PoiChunks returned from #parse to already be marked as
loaded, preventing the then needed trip to the tick thread to update
things like the village distance tracker.

To fix this, this commit now marks the PoiChunks loaded state as false
if the parse logic actually read and parsed any data.
This allows the PoiChunk#load method to properly run its callbacks when
called for the first time.
2022-09-29 17:54:47 +02:00
F1rsi
b1d359f247 [ci skip] Added the missing "d" character (#8267) 2022-09-29 17:36:01 +03:00
Remynfv
484512facb Fix jigsaw block kicking user (#8404) 2022-09-29 04:37:56 -07:00
Jason Penilla
79f4c49afc Update Velocity natives (#8387) 2022-09-29 04:18:20 -07:00
Shane Freeder
bf718e5334 [ci skip] shuffle patches and rebuild 2022-09-28 04:27:26 +01:00
Nassim Jahnke
60161bb02c Fix user auth thread pool queue 2022-09-27 18:00:46 +02:00
Jake Potrebic
f7c05166ab Fixes a couple issues with entity spawn reasons (#8390) 2022-09-26 17:24:56 -07:00
Nassim Jahnke
9fdc8516b8 Update snekyaml 2022-09-26 19:47:22 +02:00
Spottedleaf
0f1a8717e8 Rewrite chunk system (#8177)
Patch documentation to come

Issues with the old system that are fixed now:
- World generation does not scale with cpu cores effectively.
- Relies on the main thread for scheduling and maintaining chunk state, dropping chunk load/generate rates at lower tps.
- Unreliable prioritisation of chunk gen/load calls that block the main thread.
- Shutdown logic is utterly unreliable, as it has to wait for all chunks to unload - is it guaranteed that the chunk system is in a state on shutdown that it can reliably do this? Watchdog shutdown also typically failed due to thread checks, which is now resolved.
- Saving of data is not unified (i.e can save chunk data without saving entity data, poses problems for desync if shutdown is really abnormal.
- Entities are not loaded with chunks. This caused quite a bit of headache for Chunk#getEntities API, but now the new chunk system loads entities with chunks so that they are ready whenever the chunk loads in. Effectively brings the behavior back to 1.16 era, but still storing entities in their own separate regionfiles.

The above list is not complete. The patch documentation will complete it.

New chunk system hard relies on starlight and dataconverter, and most importantly the new concurrent utilities in ConcurrentUtil.

Some of the old async chunk i/o interface (i.e the old file io thread reroutes _some_ calls to the new file io thread) is kept for plugin compat reasons. It will be removed in the next major version of minecraft.

The old legacy chunk system patches have been moved to the removed folder in case we need them again.
2022-09-26 01:02:51 -07:00
Bjarne Koll
614f528234 Fix typos in isTickingWorlds API javadocs (#8382) 2022-09-25 02:01:17 +02:00
Lulu13022002
f059f8fce5 Fix setEggCount method from TurtleLayEggEvent (#8385) 2022-09-24 18:34:20 +02:00
Owen1212055
aba5839fde Fix player desync on dimension change (#8253) 2022-09-24 01:45:13 -04:00
Lulu13022002
2e51143433 Avoid item meta usage for itemstack enchantment getter (#8373) 2022-09-24 07:19:51 +02:00
willkroboth
28f9b1a3cb Add method isTickingWorlds to Bukkit (#8316)
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>

Also, restores un/loading worlds mid tick. This will not be officially supported API contract that such a routine is safe, and these restrictions may be restored in the future.
2022-09-24 01:19:05 -04:00
Shane Freeder
fb6addf9e6 Fix mangled patch 2022-09-24 05:48:42 +01:00
willkroboth
60fa7be5b1 Avoid potential place where the world map could be modified after its iterator is created (#8315) 2022-09-24 00:33:20 -04:00
Shane Freeder
8e18842fbc Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appear 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:
c7c11188 SPIGOT-2620: Add Player#sendBlockChanges()
f63d2b44 Improve annotation test on parameters
3372e7b4 SPIGOT-1244, SPIGOT-6860, SPIGOT-6874: Various Javadoc and formatting fixes
a1e8a9ab PR-793: Ignore .checkstyle file generated by Eclipse IDE

CraftBukkit Changes:
c2c39089e SPIGOT-2620: Add Player#sendBlockChanges()
8209158db PR-1113: Ignore .checkstyle file generated by Eclipse IDE

Spigot Changes:
4aa5ead2 Rebuild patches
2022-09-24 02:38:12 +01:00
Jake Potrebic
d885450b81 Correct javadocs on PlayerArmorStandManipulateEvent (#7719) 2022-09-22 22:55:02 -07:00
Lulu13022002
2277da6ec5 Call BlockPhysicsEvent more often (#8264) 2022-09-23 07:35:15 +02:00
Lulu13022002
6d4edceb20 Call EntityChangeBlockEvent for frogs egg (#8136) 2022-09-23 07:32:32 +02:00
Shane Freeder
eb3f66c6da Updated Upstream (Bukkit/CraftBukkit) (#8378) 2022-09-23 06:08:43 +01:00
Jake Potrebic
ca48b2617b Updated Upstream (CraftBukkit) (#8376) 2022-09-21 17:20:59 -07:00
Jake Potrebic
99640f47f1 Fix ground pathfinding (#7683) 2022-09-20 14:06:11 -07:00
ChristopheG
bb10a5d633 Copper clear on lightning strike calls EntityChangeBlockEvent (#8126) 2022-09-20 04:35:38 +02:00
Owen1212055
d56d06cb3c Respect preventMovingIntoUnloadedChunks for optimized collision checking (#8259) 2022-09-19 22:02:52 -04:00
tahmid-23
72772baccf Fix Pathfinding After World Has Changed (#8068) 2022-09-19 21:39:46 -04:00
Nick Hensel
ad4ca0a429 Also load resources from LibraryLoader (#8335) 2022-09-20 03:07:03 +02:00
Shane Freeder
ede4468516 Make WorldCreator#keepSpawnLoaded return the WorldCreator (Fixes #8321) (#8371)
* Make WorldCreator#keepSpawnLoaded return the WorldCreator (Fixes #8321)

Thought that I fixed this before push/merge, apparently not, hence, fix
the return type and add mitigation for this.

* Fix patch/build

* Rebuild patches
2022-09-20 01:28:22 +01:00
Shane Freeder
e14a2a0cce Configurable chat thread limit (#7878) 2022-09-20 01:16:23 +01:00
Melncat
d2239c40a5 Add a consumer parameter to ProjectileSource#launchProjectile (#8374)
Co-authored-by: MelnCat <melncatuwu@gmail.com>
2022-09-19 17:03:59 -07:00
Nex
d843d7659e Added byte array serialization/deserialization for PersistentDataContainers (#7505) 2022-09-18 04:06:53 +00:00
Lulu13022002
661b30a785 Missing some effect cause (#8307) 2022-09-18 05:46:20 +02:00
Lulu13022002
d146ab42bd Missing eating regain reason (#8244) 2022-09-18 05:24:28 +02:00
Jake Potrebic
7e1f4ba55c fire EntityChangeBlockEvent in more places (#6371)
* fire EntityChangeBlockEvent in more places

* Rebuild patches

Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
2022-09-17 20:03:54 -07:00
elmital
fb4e4f7a34 EndDragonFight killed statuses should be false for newly created worlds (#8354) 2022-09-18 03:44:06 +02:00
Peter Crawley
44c7404b51 Limit size of Authenticator Cache Thread Pool (#8360) 2022-09-17 22:58:51 +01:00
Fruxz
d92d75fb7b Add custom destroyerIdentity parameter to the sendBlockBreak function (#5840) 2022-09-17 23:27:46 +02:00
Bjarne Koll
0ed6315664 Properly close section storage managed files (#8364) 2022-09-17 20:50:01 +02:00
Jaren
5666320311 Stop large look changes from crashing the server (#8326) 2022-09-16 23:30:00 -04:00
karthanistyr
24d3f7bb49 Restore no-crash behaviour when read-only config file(s) (#8318) 2022-09-17 05:22:17 +02:00
Nassim Jahnke
39ae9b75e9 Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appear 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:
9ae3f10f SPIGOT-3842: Add Player#fireworkBoost() and expand Firework API
48c0c547 PR-786: Add methods to get sounds from entities

CraftBukkit Changes:
5cc9c022a SPIGOT-7152: Handle hand item changing during air interact event
4ffa1acf6 SPIGOT-7154: Players get kicked when interacting with a conversation
4daa21123 SPIGOT-3842: Add Player#fireworkBoost() and expand Firework API
e5d6a9bbf PR-1100: Add methods to get sounds from entities
b7e9f1c8b SPIGOT-7146: Reduce use of Material switch in ItemMeta

Spigot Changes:
4c157bb4 Rebuild patches
2022-09-12 13:31:45 +02:00