Commit Graph

19445 Commits

Author SHA1 Message Date
Owen1212055
daa4fe5fb5 Use hasImpulse vs hurtMarked for setVelocity
This will prevent projectiles from using the less accurate path for updating motion when interfaced with the API. However, hasImpulse is the more proper way of marking that the entity needs its velocity updated anyways.

This seems to be fairly unused logic in vanilla
2025-06-23 22:39:41 -04:00
Owen1212055
068a1ccda1 Improve AbstractHurtingProjectile syncing
I am sure this has been reported before but I cannot search for any bugs due to Mojang's new bug tracker.

Projectiles at high velocities very obviously go off track from their original course when sent to the client. This is due to the aggressive downsizing of velocity when sent over the client, and these entities typically have large velocity and still work just fine. We workaround this by sending the velocity for these entities exactly by using a teleport packet with relative flags and zero positional data. This prevents any possible position syncing, but sends an accurate velocity.

Then, we properly send the ClientboundProjectilePowerPacket on the first tick the entity is created, as vanilla only updates this when the delta is updated typically.
2025-06-23 22:36:49 -04:00
Owen1212055
10c7914592 Remove move this.update() usages
These can be removed as these values can now be updated on the client through synched values, additionally remove the extra bit that triggered redstone on rotation update which is not vanilla behavior.
2025-06-23 22:28:24 -04:00
Owen1212055
c2e1beaec8 Fix MC-297817
This issue causes the item frame to move on the client erroneously, so we force the entity to resend its position the next tick.

This utilizes a moonrise patch which has a resync flag that can be triggered for the next tick, so we just utilize this. I stub out the method to ensure that it still compiles without the feature patch.
2025-06-23 22:27:17 -04:00
Riley Park
1814d8b47a build: publish to fill (#12717) 2025-06-23 14:13:13 -07:00
Pedro
803baf0ba6 Support hidden entities in Waypoints (#12715) 2025-06-22 13:42:06 -04:00
Owen
5edcf6ddf6 Cleanup/command dispatching (#12713) 2025-06-21 21:44:07 -04:00
Strokkur24
186e9e331b Relocate CommandMap#registerServerAliases() call to after lifecycle events have been run (#12601) 2025-06-21 14:44:07 -04:00
Jake Potrebic
cceffe3d98 Release ItemType and BlockType (#12708) 2025-06-21 11:27:46 -07:00
Pedro
6d0821d2b5 [ci skip] Fix docs for Spawner class and cleanup (#12710) 2025-06-21 17:54:24 +02:00
CraftBukkit/Spigot
e714de6365 Fix excess slot updates
By: AJ Ferguson <fergusonjva@gmail.com>
2025-06-21 13:16:55 +02:00
David
c0dda0ea14 Add isForceDefaultGameMode method (#12673) 2025-06-21 13:10:11 +02:00
David
5652882134 Add isProxyEnabled method to ServerConfiguration (#12664) 2025-06-21 13:09:44 +02:00
Kezz
4419afb9c9 fix: Safely handle nanosecond overflow in ClickCallback (#12686)
If you are creating a click callback using e.g. ChronoUnit.FOREVER.getDuration() this code will throw an ArithmeticException because toNanos overflows. The only way toNanos throws this exception is if the nanos overflow, so we can just safely cap it here as the max value for a long.
2025-06-21 12:58:46 +02:00
Lulu13022002
29fc853271 Allow empty paths in namespaced keys (#12687) 2025-06-21 01:56:45 -04:00
Strokkur24
d61a51e81e Add ItemType#getBurnDuration() (#12604) 2025-06-21 01:54:29 -04:00
Pedro
3750927a06 [ci skip] Fix PermissionManager#clearPermissions() docs bad wording (#12657) 2025-06-21 01:01:11 -04:00
Owen
71b0c76861 Adds support for vanilla negative explosions (#12705)
Fixes #10460
2025-06-21 00:54:53 -04:00
Spottedleaf
e4eb69b8a1 Do not allow ticket level decreases to be processed asynchronously
Note: This cannot happen on the Fabric/NeoForge versions since
async ticket level processing is not allowed, but can happen on
Paper. This change is made here so that Paper can
remain in sync.

Ticket level decreases may be handled asynchronously when the
off-thread invokes processTicketUpdates() when the main thread
is running ChunkHolderManager#tick(). This is because the ticket
update is queued during tick(), but not executed (invoking
processTicketUpdates) until after releasing the ticket lock.
This creates a small window for an off-thread to invoke
processTicketUpdates() and steal the update.

When the update is stolen, the full chunk status update (if any)
will be eventually queued to execute via the chunk task queue.
If the chunk queue is processed during the server tick at any
point other than the ChunkHolderManager tick, then any ticket
level decrease will violate an important invariant in the
Moonrise chunk system: ticket level decreases only occur during
ChunkHolderManager tick. This invariant exists to make interfacing
with the chunk system easier, especially working with off-thread
contexts.

This change is specifically made to work towards fixing
https://github.com/PaperMC/Folia/issues/363
2025-06-20 21:10:09 -07:00
Spottedleaf
219f86ee06 Implement chunk unload delay config option
Fixes https://github.com/PaperMC/Paper/issues/12056
2025-06-20 21:07:21 -07:00
Spottedleaf
c77d5f99f9 Fix MC-297591
Vanilla does not increment ticket timeouts if the chunk is
progressing in generation. They made this change in 1.21.6
so that the ender pearl ticket does not expire if the chunk
fails to generate before the timeout expires. Rather than
blindly adjusting the entire system behavior to fix this
small issue, we instead add non-expirable tickets to keep
ender pearls ticking.
2025-06-20 20:53:01 -07:00
Owen
839c6a1845 Fix #11169 (#12706)
This technically fixes the improperly updated patch, and also no longer checks canPickUpLoot.
2025-06-20 19:22:27 -04:00
Owen
6a51c44ec2 Cleanup Primed TNT Fix (#12704)
This option should probably be removed as its a descendant of an option that allows "old tnt cannon" behavior before ~1.9 But this improves the fix so properly update the velocity/position rather than the questionable way it was doing it before.
2025-06-20 18:22:37 -04:00
Bjarne Koll
a7dd263566 Enable spigot obfuscation support (#12695) 2025-06-20 22:11:33 +01:00
Owen
4b3f967e49 Improve Fix MC-44654 (#12703)
This more properly implement spigot's fix for teleportation area effect clouds, now however supporting many other entity types specified in this bug report.

Currently, this is not an issue for (all) hanging blocks since they have a fix identical to this inside of setPos. Note however the client does not nicely support moving these entities anyways.
2025-06-20 16:02:24 -04:00
Pedro
74fbcce5ae Check type of Material in get/set stats (#12607) 2025-06-20 16:45:40 +02:00
Antti Koponen
4781d28b4b Re-add Log4j Javadocs (#12693) 2025-06-18 18:31:59 -07:00
Lulu13022002
f5534cb7c7 [ci skip] Run generators (#12691) 2025-06-18 20:05:50 +02:00
Jason Penilla
62b7f86dae Avoid and discourage use of Maven Central as a CDN (#12689)
* Default LibraryLoader to Google's Maven Central mirror, add MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR, and warn on use of Maven Central with MavenLibraryResolver

* Account for both Maven Central URLs

* Update Javadoc
2025-06-18 10:47:21 -07:00
Shane Freeder
5613ed6dfb Provide env environment variable and copy spigots sys prop for overriding default repository 2025-06-18 11:04:48 +01:00
Spottedleaf
8980ead7ea Directly walk text component after converting from JSON
It's important to convert the ItemStack present inside
the text component. The ItemStack nests TEXT_COMPONENT (written
book pages, custom name, ...) which would otherwise not be walked
since we have set a breakpoint at the version and moved the walker
to the next version step.

This fixes item names for hover events inside written book pages
failing to convert to NBT. This issue is also present on DFU.
2025-06-17 19:02:35 -07:00
Spottedleaf
e4d7178a3c Implement WaypointTransmitter#isChunkVisible
The Vanilla chunk tracker on Moonrise always returns false. We need
to redirect to Moonrise's chunk loader.

aef2b81d6e
2025-06-17 17:53:12 -07:00
Spottedleaf
1fcc4162d1 Implement FeatureHooks#isChunkSent for Moonrise chunk system
Need to use the player chunk loader, as that will contain the
sent chunks.
2025-06-17 17:47:50 -07:00
Spottedleaf
40d5d31c83 Fix recursively converting JSON Text Components
See 142ec80d28
2025-06-17 16:38:01 -07:00
Bjarne Koll
023e6c2953 Ensure waypoints are per world 2025-06-17 23:43:05 +02:00
Shane Freeder
d2b1158e6c Set correct world access on BSL snapshots 2025-06-17 20:38:39 +01:00
Spottedleaf
8318dcb74b Update DataConverter to 1.21.6-rc1
b388a85809

The 1.21.6 update will include better handling of legacy
hover events.
2025-06-17 10:00:54 -07:00
Spottedleaf
b28d77b3e3 Update Moonrise to 1.21.6
0451444abf
2025-06-17 09:46:59 -07:00
Nassim Jahnke
245b5473a0 Update base to 1.21.6 2025-06-17 17:17:44 +02:00
Nassim Jahnke
457a0a69bf Bump version string and protocol version to 1.21.6 release
Notably, this does not bump the world data version. This will be left for when the actual Vanilla base is updated, just in case. This early bump will likely be the exception for more ironed out update previews in the future.
2025-06-17 15:54:23 +02:00
Bjarne Koll
a24f9b204c 1.21.6 dev
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Co-authored-by: Noah van der Aa <ndvdaa@gmail.com>
Co-authored-by: Owen1212055 <23108066+Owen1212055@users.noreply.github.com>
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2025-06-17 15:45:25 +02:00
Jason Penilla
39203a65e0 [ci skip] Publish PR API and dev bundles (#12672)
* Setup PR publishing

also remove the JDK matrix, it's pointless with one value and other parts of the workflow depend on a single value...

* Use PaperMC action

* Change base PR maven url

* Update action

* Update action

* Update action

* Update action

* Update action

* Re-enable javadoc...?

* Delete PR comment workflow

* Rename publish tag

* comment broken jd link

* update bot name
1.21.5
2025-06-16 17:35:54 -07:00
Jake Potrebic
ba7fb23ddd Finish moving over to Holderable (#12646) 2025-06-10 16:29:10 -07:00
Spottedleaf
519e4224b1 Fix infinite loop in RegionFile IO
If an exception is thrown during decompress then the read process
would be started again, which of course would eventually throw in
the decompress process.
2025-06-09 02:46:34 -07:00
Jake Potrebic
95565e0f4f Add missing attribute serialization updater 2025-06-08 18:33:24 -07:00
David
320f25cb04 fix sponge-absorb deleting chest content (#12647) 2025-06-07 22:28:37 +01:00
Mart
3527ccdf2e feat: expose updateDemand and restock on Villager (#12608) 2025-06-07 12:42:11 +02:00
David Polt
03efecf0d3 Do not fire PlayerDropItemEvent for /give command 2025-06-07 12:22:48 +02:00
Shane Freeder
94f2903584 Do not blow up accessing unregistered memories from API (Fixes #12618) (#12639) 2025-06-06 22:37:52 -04:00
Warrior
e87320d5f2 Fix UOE when using generateTree with pale oak (#12616) 2025-06-06 21:51:42 -04:00