Commit Graph

7328 Commits

Author SHA1 Message Date
Spottedleaf
f7da209586 Fix inconsistent isChunkLoaded calls
When we update the chunk state to border, it should be
the case that isChunkLoaded returns true and that
getChunkIfLoadedImmediately returns a non-null value.
Now add the chunk to the loaded map before making any
callbacks after updating to border state.
2022-10-18 08:11:23 -07:00
Nassim Jahnke
e1d4b26a62
Fix another case of missing chat headers 2022-10-18 10:20:35 +02:00
Melncat
ed2c88ba89
Add LivingEntity knockback API (#8479) 2022-10-18 09:33:58 +02:00
Jakub Žáček
7d64d7ce77
Add converted Slot number to PlayerInventorySlotChangeEvent (#8482) 2022-10-18 09:32:22 +02:00
SoSeDiK
236a29623c
Add LivingEntity#swingHand(EquipmentSlot) convenience method (#8456) 2022-10-16 13:49:56 +02:00
Jakub Žáček
ec00f991a4
Fix package for PlayerInventorySlotChangeEvent (#8475)
Co-authored-by: Jakub Zacek <dawon@dawon.eu>
2022-10-16 08:49:47 +01:00
19MisterX98
603df98897
FIx bedrock patterns (#8474) 2022-10-16 00:34:10 +02:00
Lexi
b560034488
Avoid usages of RecipeChoice#getItemStack() (#8453)
Replaces some internal usages of this method with RecipeChoice#test(ItemStack) and deprecates every other method still utilizing this legacy method.
2022-10-15 21:20:12 +02:00
SoSeDiK
eb68bd49a2
Allow changing bed's 'occupied' property (#8458) 2022-10-14 10:37:01 +02:00
Lulu13022002
0bdf9973cd
Avoid cycle deprecation (#8466) 2022-10-13 13:52:04 +02:00
Lulu13022002
2094011485
Update settings directory path in exceptions (#7968) 2022-10-13 13:38:06 +02:00
SoSeDiK
514a60647d
Elder Guardian appearance API (#8455) 2022-10-13 12:26:51 +02:00
Shane Freeder
7fe34e9508
Make CraftMinecartTNT public
adding the getHandle method causes some issues with things like ProtocolLib
due to the expectation that all classes which provide a getHandle method
are public.
2022-10-12 16:10:52 +01:00
Jake Potrebic
b9cf1ac580
Fix a classloading issue in tests (#8459) 2022-10-11 20:05:28 -07:00
Jason Penilla
f7c8d79667 Fix stacktrace in server tests 2022-10-11 16:52:49 -07:00
Jakub Žáček
de2d2d4d94
Add PlayerInventorySlotChangeEvent (#7321) 2022-10-11 22:49:10 +01:00
Owen
6b26cfcd31
Add missing Entity + Projectile API (#7632) 2022-10-11 22:04:26 +01:00
SoSeDiK
b097a241c0
Expose isUnderWater to Entity (#8454) 2022-10-11 14:43:10 +02:00
Jake Potrebic
57555b8c6a
Add missing structure set seed configs (#8030) 2022-10-09 22:19:35 +02:00
Jake Potrebic
c389b1c408
Fix configs that relied on outdated min/max y levels (#6986) 2022-10-09 08:52:09 +02:00
Jake Potrebic
77a50b95da
Add Unmodifiable annotations to getDrops methods (#8440) 2022-10-07 20:51:54 +02:00
Warrior
60c973e461
Exempt players in creative/spectator from nether ceiling damage (#8427) 2022-10-07 20:43:26 +02:00
Jake Potrebic
bcb4220b5f
Correctly handle interactions with items on cooldown (#8008) 2022-10-07 17:22:45 +02:00
Jake Potrebic
ff67f1fa18
EntityPickupItemEvent fixes (#8096) 2022-10-04 21:38:39 -07:00
Jake Potrebic
9d63b070a1
Fix custom piglin interest items (#8097) 2022-10-04 20:28:46 -07:00
Nassim Jahnke
ad3d35751a
Remove unnecessary onTrackingStart during nav warning
Closes #8396
2022-10-03 20:50:53 +02:00
Gero
15e1748fd5
Avoid resizing of ArrayList in ChunkMap#getPlayers (#8416) 2022-10-03 19:22:01 +02:00
Nassim Jahnke
011caa4d8e
[ci skip] Minor patch cleanup 2022-10-03 19:07:03 +02:00
Friwi
616db7118d
Fix nothing mlg (#8432) 2022-10-03 18:44:19 +02:00
Nassim Jahnke
928bcc8d3a
Updated Upstream (Bukkit/CraftBukkit) (#8430)
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:
09943450 Update SnakeYAML version
5515734f SPIGOT-7162: Incorrect description for Entity#getVehicle javadoc
6f82b381 PR-788: Add getHand() to all relevant events

CraftBukkit Changes:
aaf484f6f SPIGOT-7163: CraftMerchantRecipe doesn't copy demand and specialPrice from BukkitMerchantRecipe
5329dd6fd PR-1107: Add getHand() to all relevant events
93061706e SPIGOT-7045: Ocelots never spawn with babies with spawn reason OCELOT_BABY
2022-10-02 09:56:36 +02:00
TetraTheta
ec3cfa9b7f
Only create paper.yml-README.txt on config conversion (#8334) 2022-10-02 09:29:09 +02:00
Jake Potrebic
ec76e36a4e
Fix a handful of vanilla bugs (#8187) 2022-10-01 19:39:42 +02:00
Melncat
6d1409316e
Add getDrops to BlockState and isPreferredTool to BlockData (#8284) 2022-10-01 12:30:00 +02:00
Nassim Jahnke
e9618f8780
Add system property to dump stack on bad plugin class access (#8417) 2022-10-01 11:49:27 +02:00
Remynfv
2534e5cbbf
Fix other jigsaw related disconnect bug (#8414) 2022-10-01 10:08:07 +02:00
Nassim Jahnke
f5fa69173c
Don't print full packages in new chunk system classes
Closes #8391, #8412
2022-09-30 23:19:51 +02:00
Pasqual Koschmieder
14c32bc43d
Fix wrong yaw and pitch of CommandSourceStack#getBukkitLocation (#8411) 2022-09-30 21:03:42 +02:00
Remynfv
c6d737528d
use BlockFormEvent for mud converting into clay (#8398)
Co-authored-by: Legitimoose <legitimoose@gmail.com>
2022-09-30 20:33:31 +10:00
Ilari Suhonen
8d69cfc6ce Reduce allocation rate for checkBlock
Use ObjectOpenHashSet instead of HashSet
Remove unnecessary chunkToSave modification
2022-09-29 09:04:52 -07:00
Spottedleaf
7d3a882670 Do not log throwable for duplicate entity adds 2022-09-29 08:55:47 -07:00
Bjarne Koll
8a7dd61348
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 08:54:47 -07:00
F1rsi
017af785ff
[ci skip] Added the missing "d" character (#8267) 2022-09-29 15:36:01 +01:00
Remynfv
21661a7557
Fix jigsaw block kicking user (#8404) 2022-09-29 12:37:56 +01:00
Jason
79f2aa3eed
Update Velocity natives (#8387) 2022-09-29 12:18:20 +01:00
Shane Freeder
bd496d0e0d
[ci skip] shuffle patches and rebuild 2022-09-28 04:27:26 +01:00
Nassim Jahnke
1bbd273bbd
Fix user auth thread pool queue 2022-09-27 18:00:46 +02:00
Jake Potrebic
f7d16f656a
Fixes a couple issues with entity spawn reasons (#8390) 2022-09-27 01:24:56 +01:00
Nassim Jahnke
b58c0cf14a
Update snekyaml 2022-09-26 19:47:22 +02:00
Spottedleaf
01a13871de
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
abe53a7eb4
Fix typos in isTickingWorlds API javadocs (#8382) 2022-09-25 01:01:17 +01:00