Commit Graph

19476 Commits

Author SHA1 Message Date
Owen
6ea679eb07 Allow listening to plugin messages during configuration phase (#12775) 2025-07-01 15:40:50 +02:00
Newwind
51d28af8fa [ci skip] Typo in CartographyInventory (#12777) 2025-06-30 19:17:27 -07:00
Pedro
5661fbbab9 Add registry builder for Instrument (#12682)
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
2025-06-30 21:33:02 +02:00
masmc05
6e021c8272 Fix CraftContainer#getNotchInventoryType detection of player inventory (#12751) 2025-06-30 19:33:40 +02:00
masmc05
00e79dfb22 Fix wrong size in InventoryType#PLAYER (#12758) 2025-06-30 19:32:05 +02:00
Jake Potrebic
4cdcf00dca Only namespaced reload (#12773) 2025-06-30 10:27:30 -07:00
Pedro
723510f9aa Make warning of PlayerLoginEvent use unique plugin names (#12772) 2025-06-30 19:27:20 +02:00
Noah van der Aa
9686f8b34d Enable obfuscation mappings for 1.21.7 (#12770) 2025-06-30 17:31:40 +02:00
Spottedleaf
4c47c76ecf Update DataConverter constants for 1.21.7
04b08a102a
2025-06-30 08:28:39 -07:00
Nassim Jahnke
4045339e4c 1.21.7 2025-06-30 16:16:56 +02:00
Owen1212055
a9f74cbf6e Readd dropped diff during 1.21.6 2025-06-30 11:49:21 +02:00
Jake Potrebic
371a422567 Remove a bunch more experimental annotations (#12712) 2025-06-30 11:49:19 +02:00
Owen
7f60924390 Configuration API (#12301)
This implements a solution that preemptively exits the tick loop if we have already marked the connection as disconnecting. This avoids changing the result of Connection#isConnected in order to avoid other possibly unintentional changes. Fundamentally it should be investigated if closing the connection async is really still needed.

This also additionally removes the login disconnecting logic for server stopping, as this was also a possible issue in the config stage but also shouldn't be an issue as connections are closed on server stop very early.

Additionally, do not check for isConnecting() on VERIFYING, as that seemed to be an old diff originally trying to resolve this code, however isConnected is not updated at this point so it pretty much was useless.
2025-06-30 11:49:15 +02:00
Bjarne Koll
dda39a0f05 1.21.7-rc2 2025-06-30 11:49:13 +02:00
Nassim Jahnke
4d854e66b8 Disable MC-163962 fix by default
It changes restocking behavior pretty drastically compared to Vanilla, keep it as a config option for those that want it

Fixes #12761
1.21.6
2025-06-30 11:39:07 +02:00
Jake Potrebic
57c202e015 Allow adventure nbt codec to parse all tags 2025-06-28 13:05:31 -07:00
FlorianMichael
bd79e20c66 [ci skip] PluginManager#getPlugin and PluginManager#isPluginEnabled are case-insensitive (#12723) 2025-06-26 21:17:20 +02:00
Shane Freeder
35b2c6ece4 Use dropped item for stats info (#12747)
We are already using the dropped stack to determine the type, we
might as well also use it for the count, given that plugins can already
mutate the type, might as well let them mess with the amount.
2025-06-26 19:44:29 +01:00
Nassim Jahnke
e382e6872c Fix 0 yield on explosion events
Fixes #12745

That cooked is mildly cooked and should be fixed differently, e.g. a custom loot context param, but reverting the recent change in this line works for now
2025-06-26 16:58:05 +02:00
Nassim Jahnke
4e1a2555be Update try catch for command handling
Fixes #12729
2025-06-25 22:42:38 +02:00
Nassim Jahnke
7ec3174a33 Jump out of experimental phase 2025-06-25 22:14:31 +02:00
Lulu13022002
c9e89f49b0 Expose arrow velocity in EntityShootBowEvent for mobs (#12688) 2025-06-25 22:11:18 +02:00
Pedro
aa6cd74c03 Remove unnecesary item check for ServerboundPlayerActionPacket RELEASE_USE_ITEM (#12668) 2025-06-25 22:09:11 +02:00
Owen
ea10fa4a79 Don't mutate the position of Items for MC-4 Fix (#12702) 2025-06-25 21:51:26 +02:00
Spottedleaf
692e93a91f Fix MC-299110
When converting entity/poi data (SimpleRegionStorage),
we need to insert the new data version so that force upgrading
will write the data back with the correct version.
2025-06-25 12:25:45 -07:00
Kezz
bee287927c Adventure 4.23.0 (#12690) 2025-06-25 21:16:18 +02:00
Owen
0caf75f839 Fix #12721 (#12725)
* Fix #12721

Track when knots are created and only fire the event then

* Use mutable boolean + check if actually spawned
2025-06-25 14:16:03 -04:00
Owen
d7510efc16 Fix #12722 (#12726)
Use our getRegistryAccess to null check against world
2025-06-24 15:26:37 -04:00
Spottedleaf
aa6ee44a7a Re-add global region scheduler tick erroneously removed in last commit 2025-06-24 08:14:29 -07:00
Spottedleaf
7c90c7c497 Optimise EntityScheduler ticking
The vast majority of the time, there are no tasks scheduled to
the EntityScheduler. We can avoid iterating the entire entity list
by tracking which schedulers have any tasks scheduled.
2025-06-24 07:19:33 -07:00
Spottedleaf
2f083acbed Ensure player entity schedulers are ticked when they are dead
If the player dies, then they are removed from the world and
as a result are not present in the world entity map.

To guarantee that the player entity scheduler is ticked, we can
tick all schedulers for players in the server player list, and
then skip all players we find in the world entity map.

This problem is not present on Folia since Folia must guarantee
that the player remains in the world.
2025-06-24 05:12:58 -07:00
Spottedleaf
38c1ddb52a Add and use FeatureHooks.getAllEntities
The ServerLevel#getAllEntities function only returns entities which
are accessible. FeatureHooks#getAllEntities will return all
entities, whether or not they are accessible.

Use the new hook in the EntityCommand, which allows server admins
to inspect entities in unloaded chunks.

Use the hook as well for ticking the EntityScheduler. This fixes
an issue whether unloaded entities did not have their scheduler ticked.
2025-06-24 04:55:58 -07:00
Spottedleaf
46b4b0b8d5 Improve keepalive ping system
Send more keepalives, record all transactions within the last minute.
We send more keepalives so that the latency calculation is more
accurate. Since we send more keepalives, we track all pending
keepalives in case multiple end up in flight.

Additionally, replace the latency calculation with a true
average over the last 5 seconds of keepalive transactions.
2025-06-24 04:23:08 -07:00
Spottedleaf
d0e808f44c Move player to correct position in vehicle move packet handler
We add the change to guarantee that the player position moves
in-sync with the vehicle's. As a result, it should be teleporting
the player using the new position of the vehicle rather than the
old.
2025-06-24 02:09:39 -07:00
wiicart
e454fef40e Add support for private constructors in plugin main classes (#12652) 2025-06-23 22:50:59 -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