Commit graph

2302 commits

Author SHA1 Message Date
Jake Potrebic
bbd013be54 Run the chat callback on the main thread as expected (#9935) 2023-11-11 15:33:19 -08:00
Jake Potrebic
776cc1199a Fix several issues with EntityBreedEvent (#8677)
Upstream did not account for different hands when storing
the breed item for later use in the event. Also they only
stored a reference to the stack, not a copy so if the stack
changed after love mode was started, the breed item in the event
also changed. Also in several places, the breed item was stored after
it was decreased by one to consume the item.
2023-11-11 15:23:02 -08:00
Jake Potrebic
caf899f62b Deprecate Material#isInteractable (#9216) 2023-11-11 14:21:22 -08:00
booky10
e6ad4fadf4 Add hand to fish event for all player interactions (#9929) 2023-11-11 23:00:45 +01:00
Jake Potrebic
932b0256c7 Use ApiStatus.Internal instead of Deprecated (#9042)
Mainly correctly marks a lot of still used "magic values"
as Internal instead of "Deprecated".
2023-11-11 13:52:32 -08:00
booky10
cbce3a66aa Add aggressive mob API (#9838) 2023-11-11 22:17:36 +01:00
Owen1212055
5cca94a05e Add Entity Movement Direction API (#7085)
This allows you to get player movement when riding vehicles, etc.
2023-11-11 16:04:34 -05:00
Jake Potrebic
aa933b773e Updated Upstream (Bukkit/CraftBukkit) (#9922)
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:
fde5602a PR-927: Add PlayerRecipeBookSettingsChangeEvent
949ff217 PR-930: Add methods to get/set evoker fang attack delay
f6f7c79d SPIGOT-7514, PR-929: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics
d40e22da PR-712: Add API to get full result of crafting items

CraftBukkit Changes:
c8feb0629 PR-1291: Improve precondition message in Entity#playEffect
482c56a00 PR-1285: Add PlayerRecipeBookSettingsChangeEvent
cdf798800 PR-1290: Add methods to get/set evoker fang attack delay
2c1b5f78f SPIGOT-7514, PR-1289: Add "Enchantment Roll" API to enchant items according to Minecraft mechanics
6aa644ae9 PR-992: Add API to get full result of crafting items
ffb1319bc PR-1287: Fix scoreboards not updating in Player#setStatistic
2023-11-11 12:25:45 -08:00
Luis
316e921c18 Add Enchantment cost API (#9856)
Cost is a property of individual enchantments, and is used by vanilla in combination with environmental aspects like tool enchantability and bookshelf count to determine the final cost of an enchantment as shown in an enchanting table.

Having access to the base cost of an enchantment using these vanilla methods can allow plugin developers to determine the "value" of an enchantment, and use it in custom logic where needed. I came across this recently when trying to assign an economic value to enchantments during tool repairing, and noticed these values don't seem to be obtainable under the current API.
2023-11-11 21:09:48 +01:00
Tamion
95ec1d2acb Fix strikeLightningEffect powers lightning rods & clears copper (#9780)
* Fix strikeLightningEffect powers lightning rods and clears copper

* Fixed vanilla behavior break

* rebase

* revert spigot cleanup and remove setter

* better fix for behaviour break

* rebase and clean

* fix
2023-11-11 21:09:14 +01:00
Jake Potrebic
de45308069 Don't unpack loot table for TEs not in world (#9918)
Fixed by 23w44a/1.20.3
2023-11-11 11:23:12 -08:00
Shane Freeder
3cf895a891 Don't leave the NearbyPlayers tracker in an entirely busted state on double-add detection 2023-11-05 22:15:38 +00:00
Layla Silbernberg / LadySilver47
244e4b2322 Added missing enchantables to material tags (#9888) 2023-11-05 00:37:51 +01:00
Tamion
8e8bb348c6 Add more API to LingeringPotionSplashEvent (#9901)
* Add createAreaEffectCloud API

* Add missing NotNull

* Add missing Paper comments

* Better solution

* Better naming

* New patch and rename

* rename patch
2023-11-05 00:24:06 +01:00
NonSwag
8d39b63d19 fix secure profile with proxy online mode (#9700) 2023-11-05 00:12:47 +01:00
booky10
7cd33fbd26 Broadcast take item packets with collector as source (#9884)
This fixes players (which can't view the collector) seeing item pickups with themselves as the target.
2023-11-04 23:16:55 +01:00
TonytheMacaroni
e83e680321 Add predicate for block when raytracing (#9691)
* Add predicate for block data when raytracing blocks

* Match based on block, instead of block data

* Use instanceof instead of casting

* Use Position instead of Location, add overload for rayTraceEntities

* Implement requested changes

* Invert predicate

* Cleanup
2023-11-04 18:00:51 -04:00
TrollyLoki
6e88b4fa1e Add API to get the collision shape of a block before it's placed (#9821)
* Add API to get the collision shape of a block before it's placed

* Tweak API documentation

* Clarify behavior

* Rebase

* Rebase
2023-11-04 17:32:10 -04:00
Jake Potrebic
c690244527 Fix a bunch of stuff with player spawn locations (#9887)
If a playerdata doesn't contain a valid, loaded world, reset
to the main world spawn point
2023-11-04 14:11:55 -07:00
powercas_gamer
5cfbe38b31 Make Team extend ForwardingAudience (#9852) 2023-11-04 21:50:56 +01:00
booky10
d1c10d63dc Add entity API for getting the combined gene of a Panda (#9891) 2023-11-04 21:28:23 +01:00
Tamion
5a34a7c895 Deprecate Player#boostElytra (#9899)
The Paper method was chosen for deprecation because it was more
restrictive in that it has an isGliding check.
2023-11-04 21:20:13 +01:00
Jake Potrebic
0609eeadec Use a server impl for hopper event to track get/setItem calls (#9905)
* Use a server impl for hopper event to track getItem/setItem calls

* Rebase

* Comments
2023-11-04 12:58:40 -07:00
Warrior
2cef1cc67e Include packet class name in packet encoding error messages (#9907) 2023-11-04 20:34:34 +01:00
booky10
939f31d33c Remove "fix-curing-zombie-villager-discount" exploit option (#9895) 2023-11-04 20:20:01 +01:00
Lulu13022002
ab5fa1f224 Remove duplicate water-sensitivity damage for unaware mobs (#9908) 2023-11-04 20:10:27 +01:00
Warrior
3230dd880e Add raw iron & raw copper blocks to anti xray defaults (#7622) 2023-11-04 16:07:48 +01:00
TomTom
913522cb6b Readd 0414 use distance map to optimise entity tracker (#9868) 2023-11-03 15:05:57 +01:00
Nassim Jahnke
0d2a5216f6 Add another slot sanity check 2023-11-03 14:49:55 +10:00
Md5Lukas
c0e6952a9a Fix villager infection chance not being handled properly (#9897) 2023-11-01 22:59:00 +01:00
Jake Potrebic
374f24c159 Fix NPE when no valid world is found on legacy Players (#9885) 2023-10-29 08:33:32 -07:00
booky10
5df63ec242 Fix entity camera not being reset when cancelling spectating start/stop events (#9883) 2023-10-29 02:45:07 +02:00
Shane Freeder
03bd83a051 [ci skip] Fix author in last patch 2023-10-29 00:58:15 +01:00
Gero
79f1f1ba5e Implement Velocity VarInt optimizations (#8418)
---------

Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
2023-10-29 01:56:47 +02:00
booky10
ccfb6b4680 Add player idle duration API (#9833)
* Add player idle duration API

Implements API for getting, setting and resetting a player's idle duration.

* Remove idle duration setter

* Rebase
2023-10-29 01:25:46 +02:00
caramel
1dcda2491e fix UnsafeValues#loadAdvancement doesn't recalculate position (#9846) 2023-10-29 08:13:33 +09:00
Kenox
f48bd30f89 Fix warden spawn reason from DEFAULT to NATURAL (#8744) 2023-10-29 01:10:31 +02:00
caramel
c7b9f77124 Cleanup disable explosion knockback patch (#9858) 2023-10-29 07:50:26 +09:00
Tamion
8222e33a11 Fix PotionAPI ignores icon flag (#9864)
* fix PotionAPI ignores icon flag

* also fix CraftPotionUtil#toBukkit

* also CraftPotionUtil#fromBukkit

* use CraftPotionUtil
2023-10-29 00:39:47 +02:00
Warrior
9db92731a1 Fix crash when version_history.json is empty (#9871) 2023-10-29 00:24:54 +02:00
SplotyCode
22672b4be2 Fix null item in sendEquipmentChange (#9869) 2023-10-29 00:15:20 +02:00
Jake Potrebic
06ac3424fa Updated Upstream (Bukkit/CraftBukkit) (#9876)
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:
19830133 PR-925: Add hit entity/block to events extending ProjectileHitEvent

CraftBukkit Changes:
5a72c3c04 SPIGOT-7510: Try to fix broken reflection usage of plugins
6fa69f235 PR-1281: Add hit entity/block to events extending ProjectileHitEvent
224f733ac Fix NPE introduced in #f4d977e
2023-10-28 15:02:13 -07:00
Lulu13022002
8f1cb77f10 Resend entity using the bundle packet (#9853) 2023-10-27 15:48:13 +02:00
Jason Penilla
cd2ebaa455 Update paperweight to 1.5.9 (#9872) 2023-10-26 16:34:58 -07:00
Jake Potrebic
3a4d982c0f Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9861) 2023-10-26 14:56:40 -07:00
Jason Penilla
5abcfb3d6b Fix log level of advancement debug message (#9860) 2023-10-23 10:07:44 -07:00
Jake Potrebic
5f694a81ab Updated Upstream (Bukkit/CraftBukkit/Spigot) (#9825)
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:
897a0a23 SPIGOT-5753: Back PotionType by a minecraft registry
255b2aa1 SPIGOT-7080: Add World#locateNearestBiome
ff984826 Remove javadoc.io doc links

CraftBukkit Changes:
71b0135cc SPIGOT-5753: Back PotionType by a minecraft registry
a6bcb8489 SPIGOT-7080: Add World#locateNearestBiome
ad0e57434 SPIGOT-7502: CraftMetaItem - cannot deserialize BlockStateTag
b3efca57a SPIGOT-6400: Use Mockito instead of InvocationHandler
38c599f9d PR-1272: Only allow one entity in CraftItem instead of two
f065271ac SPIGOT-7498: ChunkSnapshot.getBlockEmittedLight() gets 64 blocks upper in Overworld

Spigot Changes:
e0e223fe Remove javadoc.io doc links
2023-10-22 12:12:00 -07:00
Shane Freeder
69b2101f34 Temp fix for serialisable blockdata 2023-10-22 19:56:25 +01:00
MiniDigger | Martin
44214b0015 [ci skip] cleanup some ATs (#9840) 2023-10-22 02:17:55 +02:00
Lulu13022002
64b1b0fc06 Fix NPE in SculkBloomEvent world access (#9857) 2023-10-21 22:20:24 +02:00
Brokkonaut
0049c47717 Don't check if we can see non-visible entities 2023-10-21 20:53:33 +01:00
Spottedleaf
be034cd985 Initialise default nibble arrays in ChunkAccess directly
When ChunkAccess was converted to an abstract class some versions
ago, the code to initialise nibble arrays should have been moved.
However, the code was not moved and so now mods constructing their
own implementations of ChunkAccess would not have the nibble arrays
initialised.

This is ported to Paper from Starlight to keep the code base in sync,
not because it fixes anything known.
2023-10-16 18:57:45 -07:00
Spottedleaf
b119425c8e Fix mushrooms not generating in swamps
During feature generation, light data is not initialised and
will always return 15 in Starlight. Vanilla can possibly return
0 if partially initialised, which allows some mushroom blocks to
generate.

In general, the brightness value from the light engine should not
be used until the chunk is ready. To emulate Vanilla behavior better,
we return 0 as the brightness during world gen unless the target
chunk is finished lighting.

The regular light retrieval outside of WorldGenRegion remains
the same, as behaviorally chunks not lit should be at max
skylight and zero block light.
2023-10-16 18:52:28 -07:00
Spottedleaf
b6f04d399f Remove unused skyLightSources
There is no point in initialising the sources in Starlight,
as we do not use them. Additionally, they are not saved to
disk so we do not need them.

Maintaining and initialising them is not a negligible cost,
which is why they are being removed.
2023-10-16 18:49:41 -07:00
caramel
664d59e3d7 sync netty version with vanilla (#9842) 2023-10-15 23:41:17 +09:00
caramel
ee307c382a fix recipe packet limiter (#9841) 2023-10-15 23:11:15 +09:00
Md5Lukas
6dea0a9f7c Add additional tags to ItemMeta obfuscation filtering (#9665) 2023-10-14 23:41:15 +02:00
Md5Lukas
c7a0d627ba Add BlockData setter for FallingBlock (#9829) 2023-10-14 22:46:31 +02:00
Jakub Zacek
e7c0e0e246 Replace bukkit Consumers with java consumers (#9836) 2023-10-14 22:43:32 +02:00
froobynooby
2b426027aa Don't call options events on login (#9834)
* Don't call options events on login

* Merge changes into client options API patch
2023-10-15 04:02:00 +09:30
SplotyCode
c5941e1633 Fix CraftPlayerProfile#setId regression (#9822) 2023-10-12 03:20:25 +02:00
Jake Potrebic
2e77a0596d add predicate recipe choice only for potion mixes (#9486) 2023-10-10 16:07:21 -07:00
Tamion
e47183454e Fix PlayerSwapHandItemsEvent NPE when a hand set to null (#9763)
* Fix PlayerSwapHandItemsEvent throwing exception when mainhand or offhand set to null

* use fully qualified import

* Use ItemStack#empty() instead of new ItemStack

* Add NotNull annotation to getters

* Add missing Paper comments
2023-10-11 00:38:25 +02:00
caramel
ae7dded514 Fix UnsafeValues#loadAdvancement (#9753) 2023-10-11 07:19:00 +09:00
Jake Potrebic
93647d2dd6 fix flat bedrock world config (#9728) 2023-10-10 14:43:10 -07:00
TrollyLoki
62d89ef9e4 Make setVelocity method of Fireballs change the travel direction to an arbitrary vector (#9815) 2023-10-10 17:09:45 -04:00
Xander de Keijzer
ec584ef1c3 Fix painting loosing art on face change (#9798) 2023-10-10 22:24:35 +02:00
Jake Potrebic
a404d35d91 Fixes for loot tables (#9818) 2023-10-10 10:35:49 -07:00
Spottedleaf
ad8f4803d3 Make EntityLookup#get use read lock for entity maps
On Folia, this map is modified by multiple threads and iterating
it may throw errors, for example using the /kill command or any
other command that uses an entity selector.
2023-10-09 10:02:37 -07:00
Warrior
e331557dfc Move clientBrandName over to ServerPlayer (#9809) 2023-10-08 13:07:48 +03:00
Bjarne Koll
2595ee0356 Properly check water block when random ticking ice (#9804)
Readds a lost update to the shared mutable state in the random block
ticking optimisation.
2023-10-06 22:34:00 +02:00
Nassim Jahnke
5944323d84 Fix item effects conversion if no tag is present
Fixes #9796
2023-10-05 16:03:26 +10:00
Nassim Jahnke
8ae1a1746e Fixup player profile getters and constructor to expected nullability (#9770) 2023-10-05 15:31:24 +10:00
Warrior
b0704c757b Fix mobs not spawning when using an older config (#9793) 2023-10-04 20:08:47 +03:00
Shane Freeder
13884a0748 Quick tweaks to logical flow of getMapData 2023-10-04 16:25:26 +01:00
booky10
a09f1713bf Fix entity data not updated for firework attached to entity (#9783) 2023-10-04 03:29:44 +02:00
Jake Potrebic
c4f40ca864 update configurate (#9230) 2023-10-03 18:06:23 -07:00
Nassim Jahnke
c18dea2d80 Fix tests 2023-10-04 07:58:30 +10:00
Nassim Jahnke
7d1b302774 Implement tracking range y setting 2023-10-03 22:19:39 +10:00
Nassim Jahnke
a4d2616808 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:
09b1c123 PR-916: Add more lightning API
c085f3de PR-859: Add Entity#getTrackedBy

CraftBukkit Changes:
1bf30a4e9 SPIGOT-7495: Spawning bee entity in asynchronous BlockPopulator causes IllegalStateException - Accessing LegacyRandomSource from multiple threads
476c5bccd PR-1267: Add more lightning API
40d5e6c02 PR-1190: Add Entity#getTrackedBy
40d41acc1 SPIGOT-7491: Downgrade bundled SQLite to be updated next release
44b31da38 PR-1264: Load Bukkit class before creating Registry item
dc45a6738 SPIGOT-7496: Failure to load datapacks with multiple identical predicates
f508657d6 Fix decompile error affecting javac
ef7a4743d PR-1265: Ensure UTF-8 used in new test resource

Spigot Changes:
224dad51 Rebuild patches
2023-10-03 21:55:12 +10:00
Lulu13022002
9b7863a607 Some jd fixes (#9781) 2023-10-01 02:20:51 +02:00
Nassim Jahnke
696a5041a0 Don't throw when removing unplaced player in NearbyPlayers 2023-09-30 15:37:00 +10:00
Nassim Jahnke
933793244c [ci skip] Fix typo (important) 2023-09-29 13:20:32 +10:00
Nassim Jahnke
a5cf9bd970 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:
044d4ee9 SPIGOT-7283, SPIGOT-7318: Add AsyncStructureGenerateEvent and BlockState cloning
57b73d57 PR-913: Deprecate Projectile#doesBounce() and #setBounce()
43373c44 PR-904: Update FeatureFlag for 1.20.2
a7bbbf0c PR-911: Expand DataPack API with 1.20.2 pack version methods
0341e3a0 SPIGOT-7489: Add TeleportDuration to Display Entity
bcd8d2aa PR-912: Update Minecraft Wiki URLs

CraftBukkit Changes:
99aafc222 Increase outdated build delay
dab849f08 SPIGOT-7283, SPIGOT-7318: Add AsyncStructureGenerateEvent and BlockState cloning
041b29ae3 Upgrade specialsource-maven-plugin
851a32cff PR-1263: Remove unused implementation of AbstractProjectile#doesBounce() and #setBounce()
251af0da3 PR-1261: Expand DataPack API with 1.20.2 pack version methods
46e4ba627 Upgrade specialsource-maven-plugin
df3738a24 SPIGOT-7489: Add TeleportDuration to Display Entity
8d0fea457 PR-1262: Update Minecraft Wiki URLs
e62905aab SPIGOT-7490: Fix entity equipment updates

Spigot Changes:
a0f3d486 Rebuild patches
2023-09-29 10:28:26 +10:00
Jake Potrebic
8e2e1e5208 Fix creating the reverse map for loot table keys (#9766) 2023-09-28 16:29:34 -07:00
Spottedleaf
d7561e90f0 Properly call overloaded super onDisconnect
Since the method is overloaded, the call to super (which is changed
to call the overloaded method) without the additional parameters
will result in recursion.
2023-09-26 13:16:21 -07:00
Spottedleaf
ec66a2c91c Fire PlayerConnectionCloseEvent for configuration packet listener
If the player moves to the configuration stage, we also need
to fire the event.
2023-09-26 09:20:17 -07:00
Spottedleaf
68e28c6750 Fix VoxelShape#isFullBlock() for non-single AABB types
The correct logic to implement NOT_SAME with Shapes#block()
is to test whether any shape data exists outside of [0.0, 1.0]
and to test whether the shape is completely filled from 0.0 to 1.0
on all axis. This can be implemented by checking whether the
bounds represent the full block and whether everything within
the bounds is filled.
2023-09-26 09:16:11 -07:00
Jake Potrebic
9c0b169922 Fix tests that broke during the junit 5 update (#9757)
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
2023-09-24 16:05:05 -07:00
Shane Freeder
3ebe415f47 Fix/update wiki (#9758) 2023-09-25 00:02:46 +01:00
Shane Freeder
1a1af91ce3 Handle new brand payload type 2023-09-24 19:48:29 +01:00
Warrior
2474c6ac97 Fix missing map initialize event call & missing map id assignment (#9756) 2023-09-24 21:17:29 +03:00
Nassim Jahnke
358877e2e2 Updated Upstream (Bukkit/CraftBukkit)
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:
fb23cbb3 Define surefire plugin version
d022084a Define ordering for MetadataStoreTest
99a7f6f0 PR-910: Match generic max absorption attribute name style with the rest
c7390d71 PR-909: Update tests to JUnit 5

CraftBukkit Changes:
f0661c351 PR-1230: Move unstructured PDC NBT serialisation to SNBT
452fcb599 PR-1256: Update tests to JUnit 5
2023-09-24 17:16:58 +10:00
Spottedleaf
63a40050bd Re-add remove streams for Brain AI patch 2023-09-23 23:38:51 -07:00
Spottedleaf
0ef267f0e7 Optimise nearby player retrieval
Instead of searching/testing every player online on the server,
we can instead use the nearby player tracking system to reduce
the number of tests per search.
2023-09-23 23:16:45 -07:00
Nassim Jahnke
9abaff8a66 Use correct ClientboundLevelChunkWithLightPacket constructor in later patch 2023-09-24 16:29:07 +10:00
Jake Potrebic
6c18da61ba Fix some issues 2023-09-23 22:33:17 -07:00
Spottedleaf
7834ec5bcc Fix race condition on UpgradeData.BlockFixers class init
The CHUNKY_FIXERS field is modified during the constructors
of the BlockFixers, but the code that uses CHUNKY_FIXERS does
not properly ensure that BlockFixers has been initialised before
using it, leading to a possible race condition where instances of
BlockFixers are accessed before they have initialised correctly.

We can force the class to initialise fully before accessing the
field by calling any method on the class, and for convenience
we use values().
2023-09-23 22:15:09 -07:00
Spottedleaf
0e092b4f36 Add lag compensation for breaking blocks 2023-09-23 22:10:40 -07:00
Spottedleaf
a20286c5a8 Optimise chunk tick iteration
When per-player mob spawning is enabled we do not need to randomly
shuffle the chunk list. Additionally, we can use the NearbyPlayers
class to quickly retrieve nearby players instead of possible
searching all players on the server.
2023-09-23 21:43:10 -07:00