Compare commits

...
Author SHA1 Message Date
Bjarne Koll 0ff899dae3 Prevent world mutation on copper golem spawn cancel (#13152) 2025-10-07 11:32:34 +00:00
Spottedleaf e9fa3a7393 Use correct queue when blocking on futures
See https://github.com/Tuinity/Moonrise/commit/a3ac9c7d2e8d264ffa2a1500dcc23ef357ac8c62
2025-10-06 20:59:42 -07:00
Spottedleaf 914fb084ef Fix Entity#updateFluidHeightAndDoFluidPushing inconsistency with Vanilla
See https://github.com/Tuinity/Moonrise/commit/57982e273e560ca4799eefe8247dfee19902852f
2025-10-06 13:08:03 -07:00
Bjarne Koll 8483163895 Yield millis from Bukkit#getAverageTickTime 2025-10-06 20:49:10 +02:00
Shane Freeder b3d215831a Disable javadoc.io links
revert me when jd.io comes back, maybe
2025-10-06 18:04:03 +01:00
Pedro b4b1f11f40 [ci skip] Add docs for virtual createMerchant in MerchantInventoryViewBuilder#merchant (#13125) 2025-10-06 17:55:32 +01:00
Maddy Miller ffd5158a93 Update 1.21.9 reobf mappings data (#13135) 2025-10-06 17:52:40 +01:00
Matt Baxter 4dcd8377a2 Add CommandSourceStack to UnknownCommandEvent (#13083) 2025-10-05 23:20:51 +01:00
Bjarne Koll 523efa416f Flatten currentTick incr into file patches 2025-10-06 00:18:09 +02:00
Shane Freeder b63dc92e2c Restore currentTick counter increment as temp feature patch 2025-10-05 18:51:42 +01:00
Spottedleaf dc66e8cf6b Return Server#getTPS over minute intervals instead of seconds 2025-10-04 19:21:23 -07:00
Spottedleaf a4a7461cef Rebase fixups
Oops
2025-10-04 11:41:00 -07:00
Spottedleaf dcd7847dc0 Improve server tick loop
See https://github.com/Tuinity/Moonrise/commit/0b842a906ce0cc22bbb3f5c5f228a7dc22a623c4
2025-10-04 11:34:59 -07:00
Spottedleaf 21b49306ab Fix diff in FlowingFluid#canPassThroughWall
The function should not be returning false if the block states
are uncachable.
2025-10-03 11:08:41 -07:00
Jason Penilla e0ba395d37 Add missing plugin ticket comparator fixes #13130 2025-10-03 10:57:04 -07:00
luigiofthebakery a3f247c258 Fix command-block-overrides from commands.yml 2025-10-02 18:36:05 +02:00
Lulu13022002 0102872d87 validate mannequin pose 2025-10-02 18:01:53 +02:00
Lulu13022002 2d7f5ea8a3 add shelf inventory type 2025-10-02 17:32:38 +02:00
Bjarne Koll 5e42ae950c Correctly reset quick crafting state on out of order packet
Correctly emit a inventory click event for out-of-order click packets to
prevent ghost items.
2025-10-02 16:28:37 +02:00
Jason Penilla ec686f7a39 Add ItemTransportingEntityValidateTargetEvent closes #13114 (#13115) 2025-10-01 21:46:45 -07:00
Lulu13022002 311810fa82 fix copper chest inventory
Closes https://github.com/PaperMC/Paper/issues/13117
2025-10-01 18:42:07 +02:00
Lulu13022002 00bf1284d3 remove old test 2025-10-01 17:55:11 +02:00
Lulu13022002 ce3fe65457 fix NPE in legacy profiles
Closes https://github.com/PaperMC/Paper/issues/13120
2025-10-01 17:40:57 +02:00
Lulu13022002 36e0c0ab4e update enchantment target and rework some component impl 2025-10-01 17:03:32 +02:00
Jason Penilla 27f926e7ec Expose Copper Golem weathering state to API (#13089) 2025-09-30 16:55:07 -07:00
Nassim Jahnke dad730f294 [ci skip] Update README 2025-09-30 17:22:58 +02:00
Nassim Jahnke 6950f05d11 Update to 1.21.9 2025-09-30 17:11:04 +02:00
granny 5b6165c48d Add spawnreason for building copper golems (#13112) 2025-09-30 14:26:15 +01:00
Jason Penilla b61b3c9dd2 Update paperweight to 2.0.0-beta.19 2025-09-29 18:05:51 -07:00
Jason Penilla 0b565e9639 Update Gradle wrapper to 9.1.0 2025-09-29 17:36:09 -07:00
Spottedleaf 9df83bc5a2 Update DataConverter to 1.21.9-rc1
https://github.com/PaperMC/DataConverter/commit/3138b268fdb26bccdb8d8c78e6549ba2807216ad
2025-09-29 05:37:45 -07:00
Jason Penilla 79198b18b7 Expose ResolvableProfile for Skull blocks (#13095) 2025-09-28 18:34:19 -07:00
Lulu13022002 f57fd54176 remove api scheduled for removal 2025-09-27 22:20:12 +02:00
Lulu13022002 c1013989b4 remove old configs 2025-09-27 18:57:11 +02:00
EmilandLulu13022002 922c85fe9d Add GAMEMODE_SWITCHER gamemode change cause (#13097)
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
2025-09-27 17:16:20 +02:00
Spottedleaf e16b369f6e Resize propagator queues less aggressively
https://github.com/Tuinity/Moonrise/commit/cca38110864f65ab3dd0d7ad1a421ee639fc14fb
2025-09-26 14:59:59 -07:00
Spottedleaf c3a60b8df2 Use ThreadLocal for Starlight and ticket level propagator cache
https://github.com/Tuinity/Moonrise/commit/46d3cbf1eaa159140777a8addc5a44c874083b57
2025-09-26 14:57:58 -07:00
Spottedleaf e97fb4044e Remove parallel generation config option
https://github.com/Tuinity/Moonrise/commit/22e7dd06e87690e43619de1fe06adf349d5cca3f
2025-09-26 14:55:03 -07:00
Jason Penilla 3a0dc7faba Fix a couple PlayerProfile mutability issues 2025-09-26 10:41:48 -07:00
Lulu13022002 673abf4b97 use PlayerShieldDisableEvent#getCooldown 2025-09-26 17:41:47 +02:00
Lulu13022002 5613a35972 fix PlayerGameModeChangeEvent#cancelMessage 2025-09-26 17:31:39 +02:00
Adrian 51fe7aaaf3 Fixed modern forwarding support (#13098) 2025-09-26 00:18:47 -07:00
Jason Penilla 4055274204 Fix empty SkinPatch initialization and swapped dynamic/static heuristic in ResolvableProfile build method 2025-09-25 20:12:28 -07:00
Jason Penilla 404e49fdc6 Update to 1.21.9-rc1 2025-09-25 12:48:24 -07:00
Jason Penilla 1d6ee7dbcc Update adventure 2025-09-24 23:15:54 -07:00
Jason Penilla f6fabc5f4f Call EntityChangeBlockEvent for copper golem statue changes (#13090) 2025-09-24 23:04:19 -07:00
Jason Penilla 6b0b29a9b7 Update publishing endpoint 2025-09-24 21:31:50 -07:00
Spottedleaf 037179fa88 Update Starlight stored version
https://github.com/Tuinity/Moonrise/commit/d2d297b804b98faeb5aab80c73aa247afe3806df
2025-09-23 15:53:35 -07:00
Spottedleaf fada3a7ffb Update DataConverter to 1.21.9-pre4
https://github.com/PaperMC/DataConverter/commit/a3321c9b42d8a5f546ea99adcf047ad6e75a80a0
https://github.com/PaperMC/DataConverter/commit/9c1546f41101ab2b32f9d11a41d1a4742cd96df6
2025-09-23 15:43:58 -07:00
Jason Penilla 634f51e3fc Update to 1.21.9-pre4
includes parchment update
2025-09-23 14:08:14 -07:00
Jason Penilla 44259ea529 Add ResolvableProfile.SkinPatch (#13091) 2025-09-23 11:28:10 -07:00
Jason Penilla e6f14832db Update to 1.21.9-pre3 2025-09-22 10:10:08 -07:00
Jason Penilla 0e23b0242c Add back null check for chunkPacketBlockController
This is needed due to a circular reference during controller init
2025-09-21 12:16:59 -07:00
Jason Penilla dc474a8946 Fixup vanilla code for Anti-Xray changes 2025-09-20 12:13:47 -07:00
Jason Penilla 4d7185f6ab Add AsyncPlayerSpawnLocationEvent#isNewPlayer (#13081) 2025-09-20 12:01:34 -07:00
Jason Penilla 25ecc59009 Enable Anti-Xray 2025-09-20 11:40:48 -07:00
Lulu13022002 cb9fc05d6d simplify overloads 2025-09-20 19:10:19 +02:00
Jason Penilla 2efb400a13 [ci skip] Adjust spawn location event docs 2025-09-19 15:49:41 -07:00
Lulu13022002 1f79388ddd fix end portal teleportation 2025-09-19 23:42:08 +02:00
Spottedleaf f43641f86f Use ConcurrentUtil 0.0.5
For
https://github.com/Tuinity/ConcurrentUtil/commit/c3293d1d16b0196cbc8dc7ee8e813fbfbe9caa30
2025-09-19 11:53:28 -07:00
Jason Penilla 121ac2eb29 Port the last Anti-XRay hunk 2025-09-19 11:31:32 -07:00
Jason Penilla 4a8e88dcb2 Disable oldPaperCommit to fix CI build 2025-09-19 11:14:04 -07:00
Nassim Jahnke 90b29c4ccf Port most of the anti-xray patch 2025-09-19 20:13:32 +02:00
Jason Penilla f2cb073aad Set build channel to alpha 2025-09-19 10:58:38 -07:00
Jason Penilla 4025289290 Add pre2 to api version
This is similar to what we did with 1.18-rc3 builds
2025-09-19 10:43:33 -07:00
Lulu13022002 60cb0dfc7f generate ClientOption enums and mark CraftBlockData impl as null marked 2025-09-19 17:13:07 +02:00
Lulu13022002 cf78f2a288 bump api-version/datapack format and add a copper torch tag 2025-09-19 15:59:34 +02:00
Bjarne Koll 0ea15c97a0 Drop no longer applicable ATs 2025-09-19 15:54:52 +02:00
Owen1212055 22ad451907 Move some stuff to ATs 2025-09-19 09:45:03 -04:00
Bjarne Koll 5d3aa53748 Some diff improvements in prepare spawn task 2025-09-19 14:41:14 +02:00
Bjarne Koll 9360ba426a Identifying comments for MinecraftServer 2025-09-19 14:40:32 +02:00
Bjarne Koll 0249204303 1.21.9-pre2 feature patches 2025-09-19 14:22:20 +02:00
Bjarne Koll bb017458ff 1.21.9-pre2 2025-09-19 14:15:47 +02:00
Spottedleaf eb421583b4 Use 0.0.4 release of ConcurrentUtil
https://github.com/Tuinity/Moonrise/commit/bab92354c01990ae54d734bc4395873918a330ca
2025-09-18 21:55:54 -07:00
Jason Penilla bc2ae1075b Fix default respawn dimension being null for new worlds 2025-09-18 19:39:30 -07:00
Jason Penilla 24874e5369 Also rename Mannequin profile getter/setters for consistency 2025-09-18 17:43:40 -07:00
Jason Penilla 6f9957e82b Mannequin#createDefaultProfile -> Mannequin#defaultProfile
ResolvableProfile is immutable
2025-09-18 17:40:55 -07:00
Lulu13022002 2779a538bb deprecate #lanterns material tag in favour of vanilla tag 2025-09-18 21:32:43 +02:00
Lulu13022002 6b7bf0141c bump built-in datapack version 2025-09-18 20:41:55 +02:00
Lulu13022002 03eb18bb32 replace requireNonNull by checkArgument and deprecate MCUtil#toLocation 2025-09-18 20:09:54 +02:00
Lulu13022002 fcc763adaf Call BlockRedstoneEvent for the shelf 2025-09-18 18:50:49 +02:00
Lulu13022002 a3c89a8f95 add javadocs for new api
and fix some typos
2025-09-18 18:40:25 +02:00
Lulu13022002 388e6936ea update generator
Couple of changes coming from the other branch/PRs:
- add support for defining registry constants out
of their value class (already required by at least 4 PRs).
- remove version hint in the generated annotation (to avoid noise during updates)
- basic support for parameterized types in API
- tweaks bootstrap to allow usage of dimension registries
2025-09-18 16:51:09 +02:00
Spottedleaf b6d955746f Apply "Optimize Hoppers" 2025-09-17 18:46:17 -07:00
Spottedleaf 2f4211edf2 Apply "Improve cancelling PreCreatureSpawnEvent with per player mob spawns" 2025-09-17 18:41:12 -07:00
Spottedleaf 086b4fd4f6 Apply "Optional per player mob spawns" 2025-09-17 18:28:34 -07:00
Spottedleaf 8f659478cd Apply "Optimise EntityScheduler ticking" 2025-09-17 18:22:13 -07:00
Spottedleaf ec492d3fa5 Apply "Improve keepalive ping system" 2025-09-17 18:18:47 -07:00
Spottedleaf 920e8d35a9 Apply "Optimise collision checking in player move packet handling" 2025-09-17 18:10:35 -07:00
Spottedleaf 55d56d9138 Apply "Flush regionfiles on save configuration option" 2025-09-17 18:02:07 -07:00
Spottedleaf 65250cbe30 Drop "Optimize Collision to not load chunks"
Covered by Moonrise
2025-09-17 18:00:36 -07:00
Spottedleaf 9a626dd7ed Rewrite ticket counter system
The old method of tracking the counts was to copy a
Long2IntOpenHashMap each time a count was removed or added. This
was under the assumption that tickets with counter types were not
being added or removed frequently.

The new system uses ConcurrentLong2LongChainedHashTable instead
to support concurrently updating ticket counters for different
positions.
We copy the map when retrieving the forced chunks, however this
appears to only be used in the ForceLoad command so this shouldn't
be an issue.

Additionally, the ticket counts were not updated if the ticket
were to expire or if the ticket was UNKNOWN and added during
ChunkHolderManager#removeTicket(). These issues are now resolved.
2025-09-17 17:54:25 -07:00
Spottedleaf e3aca9211d Replace ConcurrentUtil's Validate with Objects
Validate will be removed, and the methods in Objects are a
suitable replacement.
2025-09-17 15:54:32 -07:00
Jason Penilla 8bb12cbd35 Fix compile 2025-09-17 12:36:53 -07:00
Jason Penilla 9b69cc5a8f Add some more Mannequin API 2025-09-17 12:34:14 -07:00
Jason Penilla b31ca18cfc Update 'Incremental chunk and player saving', 'Optimise general POI access' 2025-09-17 11:48:43 -07:00
Jason Penilla 181f9bbc08 Update 'Entity load/save limit per chunk', 'Attempt to recalculate regionfile header if it is corrupt' 2025-09-17 11:45:16 -07:00
Jason Penilla 35e973d387 Update 'Improve exact choice recipe ingredients', 'Only write chunk data to disk if it serializes without throwing' 2025-09-17 11:43:49 -07:00
Jason Penilla 87e05257b6 Update alternate redstone impls 2025-09-17 11:40:46 -07:00
Jason Penilla 49e49d057b Update 'Fix entity tracker desync when new players are added to the tracker' 2025-09-17 11:33:11 -07:00
Jason Penilla 98e745a0a8 Update 'Optimize Pathfinder - Remove Streams / Optimized collections' 2025-09-17 11:32:15 -07:00
Jason Penilla 92f822d4ee Update 'Optimize Bit Operations by inlining', 'Remove streams from hot code' 2025-09-17 11:22:54 -07:00
Jason Penilla f0b3d62594 Update 'optimize dirt and snow spreading' and drop 'Optimise getChunkAt calls for loaded chunks' patch to code replaced by Moonrise 2025-09-17 11:17:05 -07:00
Jason Penilla 5aac8b4893 Update 'Handle Oversized block entities in chunks' 2025-09-17 11:12:38 -07:00
Jason Penilla 532348681e Update 'Optimize Voxel Shape Merging' 2025-09-17 11:09:25 -07:00
Jason Penilla 87f3e2f00f Update 'Optimize GoalSelector Goal.Flag Set operations' 2025-09-17 11:08:29 -07:00
Jason Penilla 6b44820108 Update 'Use Velocity compression and cipher natives' 2025-09-17 11:05:59 -07:00
Jason Penilla bcd75d8518 Update EAR 2.0 patch and enable oldPaperCommit for better 3-way merges 2025-09-17 10:58:32 -07:00
Jason Penilla 89cc24a863 Update 'Allow Saving of Oversized Chunks' 2025-09-17 10:18:29 -07:00
Jason Penilla 510aa9b421 Update 'Optimize Network Manager and add advanced packet support' 2025-09-17 10:13:08 -07:00
Jason Penilla 114105815d Shift feature patch #s for Moonrise being first 2025-09-17 10:03:18 -07:00
Spottedleaf 1870261762 Update Moonrise to 1.21.9-pre1 2025-09-16 21:34:37 -07:00
Owen1212055 810b3c6cd6 Deprecate the Conversation API (for removal), Metadata API, and PlayerSpawnLocationEvent (for removal)
The Conversation API has been left to rot for the past few years and is considered dead. It does not support components and has had functionality ripped out over the years. Because of this, it is being deprecated for removal.

The metadata API is extremely misleading and causes memory leaks on every server I have seen use it. It just promotes bad practices and is misleading. The PDC system and just having their own solutions is better for developers.

Lastly deprecate PlayerSpawnLocationEvent for removal as events using this hack will be aggressively removed as we move towards better supporting the config API.
2025-09-16 23:41:19 -04:00
Jason Penilla f9434d2cf0 Use pitch when setting spawn position with Location 2025-09-16 19:38:06 -07:00
Jason Penilla 68f26a1ba6 Drop no-longer-needed packet diffs
We don't need to scale this anymore as vanilla has per-level world borders
2025-09-16 19:34:45 -07:00
Jason Penilla b67fa6ddf6 move todos txt content into tracking issue 2025-09-16 18:54:41 -07:00
Jason Penilla 0a2881674e Add Server#getRespawnWorld and Server#setRespawnWorld(World) 2025-09-16 18:48:59 -07:00
7e706369b4 Initial 1.21.9 update (squashed)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Josh Roy <10731363+JRoy@users.noreply.github.com>
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
2025-09-16 18:32:37 -07:00
Jason Penilla 29c8822d90 Remove no longer needed MC-210802 fix (#13059) 2025-09-06 14:38:29 -07:00
Lulu13022002 19156cdd3b Give the right amount of experience after mending (#13047) 2025-09-06 13:49:56 -07:00
Spottedleaf 9aaaadffaa Backport DFU changes from snapshots
When converting to components:
 - Remove enchantments with levels <= 0
 - Remove the item name if it is not valid JSON
 - Remove lore entries that are not valid JSON
2025-09-03 14:59:39 -07:00
Spottedleaf 78aecfebaf Do not remove plugin chunk tickets on shutdown
The chunk system may not be responsive in a shutdown (i.e
watchdog timeout). Therefore, we should avoid interacting
with the chunk system to increase the odds of a graceful
shutdown.
2025-09-03 14:25:27 -07:00
Jason Penilla 65641d1006 Only log name instead of full profile for configuration phase disconnects (#13038) 2025-08-29 13:32:10 -07:00
Emil 49ca2d2d76 chore: remove experimental status from Damageable#damage (#13021) 2025-08-29 18:15:29 +01:00
Jason Penilla 63cd4af408 Fix createProfile not always returning a new profile (#13036) 2025-08-29 09:42:35 -07:00
Jason Penilla 704107c3dd Resend frozen ticks when cancelling EntityInsideBlockEvent for powder snow fixes #13033 (#13035) 2025-08-28 18:11:29 -07:00
Jason Penilla 9d1d0ef3f3 Add and call RegionizedServerInitEvent from Folia (#13034) 2025-08-28 18:09:09 -07:00
Jason Penilla b6168b7ccc Get console Brig suggestions from main thread fixes #13027 (#13028) 2025-08-28 17:25:42 -07:00
Shane Freeder 51706e5ac1 Fixed DyeItem sheep dye hunk 2025-08-25 02:49:26 +01:00
614e9acfca Improve APIs around riptide tridents (#12996)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
2025-08-23 21:12:30 +00:00
MCdragonmaster 52d9a2216c [ci skip] Fix typo in Display javadoc (#13010) 2025-08-23 20:59:05 +00:00
42b653b197 Expose more argument types (#12665)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
2025-08-23 21:10:41 +01:00
Strokkur24andLulu13022002 5622c9dd73 Expose attribute sentiment (#12974)
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
2025-08-23 17:15:16 +00:00
Pedro a9e7674933 Support for showNotification in PlayerRecipeDiscoverEvent (#12992) 2025-08-23 17:53:46 +01:00
MC_XiaoHeiandJake Potrebic ea014f7a77 feat: add stuckEntityPoiRetryDelay config (#12949)
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2025-08-23 09:39:19 -07:00
Warrior 79cf1353b9 Ignore HopperInventorySearchEvent when it has no listeners (#13009) 2025-08-23 16:25:40 +00:00
Lulu13022002 1922be9074 Update custom tags (#12183) 2025-08-23 16:53:07 +01:00
Pedro b0da38c278 Repository details in RuntimeException for MavenLibraryResolver#addRepository (#12939) 2025-08-22 11:25:08 +01:00
Moulberry 38fe16b5f2 Fix missing reason in disconnectAsync (#13001) 2025-08-21 22:13:31 +01:00
Moulberry f866a5fd54 Use LinkedHashMap in ChannelInitializeListenerHolder (#13000) 2025-08-19 17:53:03 +02:00
Esophose 616a8795ea Add LootTable to BlockDispenseLootEvent (#12917) 2025-08-17 15:53:00 +01:00
Strokkur24 47f983f430 Add allow-remote-ender-dragon-respawning setting (#12602) 2025-08-17 13:49:30 +02:00
Pedro b200237c7d Fix clone return for Paper PlayerProfile (#12984) 2025-08-15 21:56:54 +01:00
David a22447a555 Added getWorldPath to World API (#12952) 2025-08-15 21:39:09 +01:00
Warrior a743e6b1c7 [ci skip] Clarify tab completion ordering in event jd (#12965) 2025-08-15 21:33:10 +01:00
Warrior 2456ff26ed [ci skip] Update javadoc for tinted leaves particle (#12962) 2025-08-15 21:30:16 +01:00
Emil 651fa124c5 Fix cancelled EnderDragonShootFireballEvent playing sound (#12977) 2025-08-15 21:55:31 +02:00
swim5678 f0c1f856f2 Fix Phantom entity Spawn reason (#12980) 2025-08-14 17:46:02 +01:00
Jason Penilla 86b716bc5b Fix BlockFadeEvent not being called when fire extinguishes in rain (#12972) 2025-08-13 08:29:06 -07:00
Alejandro Nieto 4fe66e5800 Fix lead_break sound playing after cancelling EntityUnleashEvent (#12944) 2025-08-12 11:01:39 +02:00
Alejandro Nieto 3d1425f086 Fix phantoms failing to target players near non-insomniacs (#12953) 2025-08-11 22:13:29 +02:00
Pedro abf6b6c228 Allow replace effects in Consumable Component Builder (#12938) 2025-08-08 18:17:34 +02:00
Žiga Slatnar Štagar a664311f0f Fix AbstractArrow not setting noPhysics flag (#12935) 2025-08-07 12:55:48 -04:00
Lumine1909andHelvetica Volubi 9694886daa Fix endermite spawn position
The player teleport has been moved up in ThrownEnderpearl to prevent
endermite spawning in case of a cancelled teleport. This however placed
the player at the teleport destination prior to the endermite spawn
logic, creating the entity at the wrong location.

The commit stores the location of the player pre teleportation and uses
said location for spawning the endermite instead.

Co-authored-by: Helvetica Volubi <suisuroru@blue-millennium.fun>
Reviewed-in: https://github.com/PaperMC/Paper/pull/12912
2025-08-07 12:36:47 +02:00
Pedro 6d0833ece5 Use target level for waypoint modify command (#12933) 2025-08-07 12:36:23 +02:00
Emily 846c64f4d1 Allow for sending plugin messages during configuration stage (#12915) 2025-08-04 15:06:52 +02:00
Bjarne Koll e9380882f2 Lazy evaluate ender chest inventory holder 2025-08-04 14:45:52 +02:00
Warrior c60f4436f0 Restore players being the inventory holder of an enderchest (#12923) 2025-08-04 13:53:50 +02:00
Gero bf465e0029 Cancel hit for all vanished entities, not only players (#12906) 2025-08-03 17:17:41 +02:00
Red ed31825a8d HIDE_ADDITIONAL_TOOLTIP backwards compat. not hiding disc names (#12900) 2025-07-30 22:26:35 -04:00
Jason Penilla 0c8efe4d02 [ci skip] Remove redundant adventure version specification
This is handled by a version constraint from the BOM dependency in -api
2025-07-30 10:48:12 -07:00
Kezz ec9c83fa2b Adventure 4.24.0 (#12908) 2025-07-30 10:43:51 -07:00
TonytheMacaroni a4da45e3b2 Fix typo in give command (#12905) 2025-07-30 08:52:40 +01:00
Jake Potrebic 4f79e9eeca [ci skip] no need to ever import non-library files ever again (#12765) 2025-07-29 20:25:43 -04:00
Théo SZANTO 4d44b5fd55 Remove @Experimental annotation from the org.bukkit.damage package (#12898) 2025-07-29 20:22:46 -04:00
Noah van der Aa dbc367ba2d Keep non-container slots synced when in container view (#12881) 2025-07-26 21:46:30 +00:00
David a57636189a Add WorldDifficultyChangeEvent (#12471) 2025-07-26 23:38:16 +02:00
David Mayr 57c13137e4 Allow to change despawnInPeaceful (#12880) 2025-07-26 14:13:42 -07:00
Alejandro Nieto 9ccc51df43 Fix legacy pearls forgetting owner on disconnect (#12884) 2025-07-26 21:53:29 +02:00
Lulu13022002 840dd9e1f8 Fix dialog preconditions (#12895) 2025-07-26 21:35:19 +02:00
David 6bb9dc6b73 Normalize and trim spaces in Player#performCommand (#12892) 2025-07-26 21:29:47 +02:00
Bjarne Koll 103187750e [ci skip] Update mache for codebook 1.0.15 (#12887) 2025-07-24 01:24:41 +02:00
Nassim Jahnke a5f2f6140d Fix offhand item desync on cancelling interact events (#12828) 2025-07-22 10:42:22 +02:00
c8a8c0ef89 feat(plugin): make Plugin extend Namespaced (#12867)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
2025-07-20 22:01:22 +00:00
ookiegajwaandBjarne Koll 602ea9f0e1 Restore previous PlayerToggleSneakEvent behaviour (#12815)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
2025-07-20 23:54:27 +02:00
Jake Potrebic 617e5a46a1 Update to configurate 4.2.0 (#12869) 2025-07-20 23:05:42 +02:00
Jake Potrebic a2d37f12fb Remove invalid team colors nicely (#12874) 2025-07-20 22:42:24 +02:00
Fisher 782ce950b8 Allow forcing break effects when using breakNaturally (#12734) 2025-07-18 22:17:38 +02:00
Umbre11as 0dad7f150b Add Bee#set/getTimeSinceSting() methods (#12792) 2025-07-18 22:17:06 +02:00
metabrix f7c59f914c Fix broken resource pack API when configured in configuration stage (#12866)
Correctly return the resource pack status from Player#getResourcePackStatus()
when the resource pack was send and accepted during the configuration stage.
2025-07-18 20:22:28 +02:00
Spottedleaf aa4ef06748 Update DataConverter constants for 1.21.8 2025-07-17 16:23:33 -07:00
Junhyung Park 6fb36e34b6 Replace compileOnly with implementation for test visibility (#12841) 2025-07-17 18:01:04 +02:00
Tamion 1f93f56670 [ci-skip] Improve getPotentialBedLocation deprecation (#12857) 2025-07-17 17:59:36 +02:00
Spottedleaf d8cb3f5852 Update DataConverter to 1.21.8-RC1
Add a non-Vanilla converter which removes ENTITY fall_distance
entries if they are equal to 0.0. This fixes incorrectly
converted data before https://github.com/PaperMC/DataConverter/commit/b6675e47ca068f152c3b648b3869fe63ca12b720
2025-07-17 07:03:10 -07:00
Bjarne Koll 6db4bc01a6 1.21.8 generators 2025-07-17 15:48:06 +02:00
Bjarne Koll a4feb28898 Update to 1.21.8 2025-07-17 15:47:55 +02:00
David e792779dd8 Allow AreaEffectCloud#setColor to reset color for null (#12760) 2025-07-16 22:00:54 +02:00
David a6e0c08fdf Add getRotation to Location (#12799) 2025-07-16 21:52:05 +02:00
Jason Penilla 22d80a3b3b [ci skip] Update Gradle wrapper and Fill plugin (#12846) 2025-07-16 11:00:29 -07:00
Spottedleaf 04f95191f1 Fix spawners converted from 1.21.4 not running finalisation logic
DataConverter incorrectly placed a fall_distance value with 0.0
if the entity did not have a FallDistance entry. This results in the
entity spawn data having 2 entries, which prevents finalisation
logic from running.

We can fix this by removing the fall_distance entry if it is 0.0.

In 1.21.8 there will be a proper fix for this and the patch can be
dropped.
2025-07-16 10:33:06 -07:00
Spottedleaf 21fb54246e Do not write fall_distance tag unless it already existed before
It looks like BaseSpawner will not run natural spawn finalization
unless the entire data tag only contains the ID.

This only fixes converting old data, we need a fix for already
converted data.
2025-07-15 17:09:06 -07:00
Shane Freeder 94d60e15b3 Copy thrown pearls list for removal (#12840) 2025-07-14 23:04:02 +02:00
Clexus bda84069b4 [ci skip] fix typo in AttributeInstance (#12843) 2025-07-14 17:57:12 +02:00
Brokkonaut d9b5003fa1 Dried Ghast events and Happy Ghast spawn reason (#12788) 2025-07-14 17:56:44 +02:00
Jake Potrebic 533d93c758 Don't consume anchor charge if loc changes (#12835) 2025-07-12 19:03:48 +00:00
Jake Potrebic ba7c982605 Add missing Range annotations to dialog types
Closes #12825
2025-07-12 09:01:14 -07:00
Lach 25d358cf01 [ci skip] javadoc: Fix grammatical error for getState (#12817) 2025-07-12 17:44:23 +02:00
David 4000fcc3d7 Fix typo in PluginBootstrap javadocs (#12821) 2025-07-12 17:43:49 +02:00
caramel fcfc6c3fe8 Expose HexColor argument type (#12833) 2025-07-12 17:41:21 +02:00
partydev 76fb5060c1 Add vanilla error message to precondition for DialogBaseImpl (#12831) 2025-07-12 11:15:48 +02:00
Jason Penilla 1bf6364b97 Update Mache for horse decompile fix 2025-07-11 18:07:23 -07:00
Bjarne Koll 40764534a2 Specify the class loader when loading services (#12829) 2025-07-11 18:05:07 -07:00
Nassim Jahnke cb47e01823 Remove more dead code, fix pre-existing desync when cancelling and closing container 2025-07-11 22:24:20 +02:00
Nassim Jahnke a939945148 Fixup sendAllDataToRemote calls
Reduces unnecessary item copies by a lot
2025-07-11 17:43:05 +02:00
Jake Potrebic b4466ec981 Dialog API (#12671) 2025-07-06 20:49:43 +02:00
Jason Penilla f7d5a0a017 [ci skip] Add remote build cache configuration through Gradle properties (#12797) 2025-07-04 13:12:45 -07:00
6e598f8527 Fix incorrect createPath overload arguments, fixes #12043 (#12794)
Co-authored-by: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
2025-07-03 12:40:19 -07:00
Owen 0cadaefc09 Fix quitmessage nullability issues (#12783) 2025-07-01 18:44:17 -04:00
David 2141ca5273 Port plugins command to brigadier (#12632) 2025-07-01 16:24:38 -04:00
Shane Freeder 108255cbbb Reduce PlayerLoginEvent alt behavior nag for now (#12782) 2025-07-01 21:47:37 +02:00
Nassim Jahnke 3fec37a9c1 Move the double call into the dispatch method
At some point later,
2025-07-01 21:44:24 +02:00
Nassim Jahnke c3be00f0ec Always call plugin message dispatch on PlayerConnection 2025-07-01 21:09:44 +02:00
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
PedroandLulu13022002 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
https://github.com/PaperMC/DataConverter/commit/04b08a102a3d2473420edceed05420b5ccb3b771
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
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
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.

https://github.com/Tuinity/Moonrise/commit/aef2b81d6e805f6af7d12d904fb88cdca1f721ca
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 https://github.com/PaperMC/DataConverter/commit/142ec80d2892a1978ccd0a85a8f99e704e4b3a8d
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
https://github.com/PaperMC/DataConverter/commit/b388a85809b1af6a762339d33c6afa6a4bd45d50

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
https://github.com/Tuinity/Moonrise/commit/0451444abfd5f0011afe13054347c11a8f57de59
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
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
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
Strokkur24 7ebc94c2a6 Add Registry#getTagValues (#12603) 2025-06-06 18:23:02 -07:00
Shane Freeder 4eda045b15 Backport fix for MC-296337 (Fixes #12617) (#12619) 2025-06-06 19:05:30 +01:00
Spottedleaf 2ba1675c75 Replace deprecated Thread#getId usage with Thread#threadId 2025-05-29 04:59:52 -07:00
Spottedleaf 6f315356b6 Add MCUtil#toLocation from Folia
Helper methods to convert NMS world/position to Bukkit Location
2025-05-29 04:58:00 -07:00
Jason Penilla 4765010083 Improve error messages when PluginRemapper fails to initialize (#12598) 2025-05-28 12:33:25 -07:00
1626 changed files with 37179 additions and 21694 deletions

No files matched your search

+23 -9
View File
@@ -16,21 +16,25 @@ on:
jobs:
build:
env:
ORG_GRADLE_PROJECT_paperBuildCacheEnabled: true
ORG_GRADLE_PROJECT_paperBuildCacheUsername: ${{ secrets.PAPER_BUILD_CACHE_USERNAME }}
ORG_GRADLE_PROJECT_paperBuildCachePassword: ${{ secrets.PAPER_BUILD_CACHE_PASSWORD }}
ORG_GRADLE_PROJECT_paperBuildCachePush: true
# The goal of the build workflow is split into multiple requirements.
# 1. Run on pushes to same repo.
# 2. Run on PR open/reopen/syncs from repos that are not the same (PRs from the same repo are covered by 1)
# 3. Run on labeled PRs that have the build-pr-jar flag.
# 3. Run on labeled PRs that have the publish-pr flag.
if: >
(
(github.event_name == 'push')
|| (github.event_name == 'pull_request' && github.repository != github.event.pull_request.head.repo.full_name && contains(fromJSON('["opened", "reopened", "synchronize"]'), github.event.action))
|| (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'build-pr-jar')
|| (github.event_name == 'pull_request' && github.event.action == 'labeled' && github.event.label.name == 'publish-pr')
)
runs-on: ubuntu-latest
strategy:
matrix:
java: [21]
fail-fast: true
steps:
- if: ${{ github.event_name == 'push' }}
@@ -43,14 +47,17 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: JDK ${{ matrix.java }}
- name: JDK 21
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
java-version: 21
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
# Allow cache writes on main and dev branches
cache-read-only: ${{ github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/dev/') }}
- name: Configure Build
uses: actions/github-script@v7
@@ -73,14 +80,14 @@ jobs:
if (event_name === "push" && ref_type === "branch") {
const {data: pulls} = await github.rest.pulls.list({ owner, repo, head: `${owner}:${ref_name}`, state: "open" });
const pull = pulls.find((pr) => !!pr.labels.find((l) => l.name === "build-pr-jar"));
const pull = pulls.find((pr) => !!pr.labels.find((l) => l.name === "publish-pr"));
if (pull) {
result["pr"] = pull.number;
result["action"] = "paperclip";
core.notice(`This is a push action but to a branch with an open PR with the build paperclip label (${JSON.stringify(result)})`);
return result;
}
} else if (event_name === "pull_request" && event.pull_request.labels.find((l) => l.name === "build-pr-jar")) {
} else if (event_name === "pull_request" && event.pull_request.labels.find((l) => l.name === "publish-pr")) {
result["pr"] = event.pull_request.number;
result["action"] = "paperclip";
core.notice(`This is a pull request action with a build paperclip label (${JSON.stringify(result)})`);
@@ -102,7 +109,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v4
with:
name: Test Results (${{ matrix.java }})
name: Test Results
path: |
**/build/test-results/test/TEST-*.xml
@@ -116,6 +123,13 @@ jobs:
with:
name: paper-${{ fromJSON(steps.determine.outputs.result).pr }}
path: paper-server/build/libs/paper-paperclip-*-mojmap.jar
- name: Publish Artifacts
if: fromJSON(steps.determine.outputs.result).action == 'paperclip'
uses: PaperMC/action-pr-publishing/upload@paper
with:
# TODO fallback for failing javadoc
publishing-task: ":paper-api:publishAllPublicationsTo_githubPackages_PRsRepository publishDevBundlePublicationTo_githubPackages_PRsRepository -PpublishDevBundle"
event_file:
name: "Event File"
# Only run on PRs if the source branch is on someone else's repo
-84
View File
@@ -1,84 +0,0 @@
# This workflow run on the completion of the
# build workflow but only does anything if the
# triggering workflow uploaded an artifact.
#
# Do note that it is then the trigger workflow that
# determines if this will update the PR text body. All
# this workflow does is check if an uploaded artifact
# exists and there is a PR tied to the previous workflow.
name: Comment on pull request
on:
workflow_run:
workflows: ['Build Paper']
types: [completed]
jobs:
pr_comment:
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
env:
BRANCH_NAME: "${{ github.event.workflow_run.head_branch }}"
PR_OWNER: "${{ github.event.workflow_run.head_repository.owner.login }}"
PR_SHA: "${{ github.event.workflow_run.head_sha }}"
RUN_ID: "${{ github.event.workflow_run.id }}"
REPO_ID: "${{ github.event.repository.id }}"
EVENT_TYPE: "${{ github.event.workflow_run.event}}"
PULL_REQUESTS: "${{ toJSON(github.event.workflow_run.pull_requests) }}"
with:
# This snippet is public-domain, taken from
# https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml
# Modified extensively by Machine_Maker
script: |
async function updatePR(owner, repo, issue_number, purpose, body) {
const { data } = await github.rest.issues.get({ owner, repo, issue_number });
core.debug(JSON.stringify(data, null, 2));
const marker = `<!-- bot: ${purpose} -->`;
let new_body = data.body ? data.body.trim().split(marker)[0].trim() : "";
new_body += `\n${marker}\n---\n${body}`;
core.info(`Updating the text body of PR #${issue_number} in ${owner}/${repo}`);
await github.rest.issues.update({ owner, repo, issue_number, body: new_body });
}
const { owner, repo } = context.repo;
const run_id = `${process.env.RUN_ID}`;
const repo_id = `${process.env.REPO_ID}`;
let pulls = [];
const event_type = `${process.env.EVENT_TYPE}`;
if (event_type === "push") { // if push, it's from the same repo which means `pull_requests` is populated
pulls = JSON.parse(`${process.env.PULL_REQUESTS}`);
} else {
const pr_branch = `${process.env.BRANCH_NAME}`;
const pr_sha = `${process.env.PR_SHA}`;
const pr_owner = `${process.env.PR_OWNER}`;
const { data } = await github.rest.pulls.list({ owner, repo, head: `${pr_owner}:${pr_branch}`, state: "open" });
core.debug(JSON.stringify(data, null, 2));
pulls = data.filter((pr) => pr.head.sha === pr_sha && pr.labels.find((l) => l.name === "build-pr-jar"));
}
if (!pulls.length) {
return core.notice("This workflow doesn't have any pull requests!");
} else if (pulls.length > 1) {
core.info(JSON.stringify(pulls, null, 2));
return core.error("Found multiple matching PRs");
}
const pull_request = pulls[0];
const artifacts = await github.paginate(github.rest.actions.listWorkflowRunArtifacts, { owner, repo, run_id });
if (!artifacts.length) {
return core.info("Skipping comment due to no artifact found");
}
const artifact = artifacts.find((art) => art.name === `paper-${pull_request.number}`);
if (!artifact) {
return core.info("Skipping comment to no matching artifact found");
}
const link = `https://nightly.link/${owner}/${repo}/actions/artifacts/${artifact.id}.zip`;
const body = `Download the paperclip jar for this pull request: [${artifact.name}.zip](${link})`;
core.info(`Adding a link to ${link}`);
await updatePR(owner, repo, pull_request.number, "paperclip-pr-build", body);
+36
View File
@@ -0,0 +1,36 @@
name: Publish PR
on:
workflow_run:
workflows: [ "Build Paper" ]
types:
- completed
permissions:
packages: write # To upload the PR
actions: write # To get information about the uploading workflow run and to delete the run artifacts
contents: write # To download the `maven-publish` artifact, and to be able to create commit comments
issues: write # To be able to create PR comments
pull-requests: write # To be able to create PR comments
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Generate an Application repository access token
id: gen_repo_token
uses: kattecon/gh-app-access-token-gen@v1
with:
app_id: 1408328
private_key: ${{ secrets.PR_PUBLISHING_GH_APP_KEY }}
repository: ${{ github.repository }}
- name: Publish PR
uses: PaperMC/action-pr-publishing@paper
env:
GITHUB_TOKEN: ${{ steps.gen_repo_token.outputs.token }}
with:
publishing-token: ${{ github.token }}
uploader-workflow-name: Build Paper
artifacts-base-path: io/papermc/paper
base-maven-url: 'https://maven-prs.papermc.io'
self-name: 'papermc-pr-publishing[bot]'
+5 -3
View File
@@ -21,12 +21,14 @@ jobs:
uses: dawidd6/action-download-artifact@v6
with:
run_id: ${{ github.event.workflow_run.id }}
path: artifacts
path: test_artifacts
name: "Test Results|Event File"
name_is_regexp: true
- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
commit: ${{ github.event.workflow_run.head_sha }}
event_file: artifacts/Event File/event.json
event_file: test_artifacts/Event File/event.json
event_name: ${{ github.event.workflow_run.event }}
files: "artifacts/**/*.xml"
files: "test_artifacts/**/*.xml"
comment_mode: off
+2 -2
View File
@@ -40,7 +40,7 @@ How To (Plugin Developers)
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.5-R0.1-SNAPSHOT</version>
<version>1.21.9-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
```
@@ -53,7 +53,7 @@ repositories {
}
dependencies {
compileOnly("io.papermc.paper:paper-api:1.21.5-R0.1-SNAPSHOT")
compileOnly("io.papermc.paper:paper-api:1.21.9-R0.1-SNAPSHOT")
}
java {
-7
View File
@@ -5,10 +5,3 @@
# authlib com/mojang/authlib/yggdrasil/YggdrasilGameProfileRepository.java
# datafixerupper com.mojang.datafixers.DataFixerBuilder
# datafixerupper com/mojang/datafixers/util/Either.java
# To import classes from the vanilla Minecraft jar use `minecraft` as the artifactId:
# minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter
# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java
# To import minecraft data files, like the default chat type, use `mc_data` as the prefix:
# mc_data chat_type/chat.json
# mc_data dimension_type/overworld.json
#
+44 -42
View File
@@ -25,7 +25,6 @@ public net.minecraft.network.chat.numbers.FixedFormat value
public net.minecraft.network.chat.numbers.StyledFormat style
public net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket <init>(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/entity/BlockEntityType;Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket blockState
public net.minecraft.network.protocol.game.ClientboundSetDefaultSpawnPositionPacket pos
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket hasPos
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket hasRot
public net.minecraft.network.protocol.game.ServerboundMovePlayerPacket x
@@ -42,8 +41,6 @@ public net.minecraft.server.MinecraftServer doRunTask(Lnet/minecraft/server/Tick
public net.minecraft.server.MinecraftServer executor
public net.minecraft.server.MinecraftServer fixerUpper
public net.minecraft.server.MinecraftServer playerDataStorage
public net.minecraft.server.MinecraftServer prepareLevels(Lnet/minecraft/server/level/progress/ChunkProgressListener;)V
public net.minecraft.server.MinecraftServer progressListenerFactory
public net.minecraft.server.MinecraftServer resources
public net.minecraft.server.MinecraftServer serverThread
public net.minecraft.server.MinecraftServer$ReloadableResources
@@ -63,7 +60,6 @@ public net.minecraft.server.level.ChunkMap distanceManager
public net.minecraft.server.level.ChunkMap entityMap
public net.minecraft.server.level.ChunkMap getVisibleChunkIfPresent(J)Lnet/minecraft/server/level/ChunkHolder;
public net.minecraft.server.level.ChunkMap level
public net.minecraft.server.level.ChunkMap progressListener
public net.minecraft.server.level.ChunkMap save(Lnet/minecraft/world/level/chunk/ChunkAccess;)Z
public net.minecraft.server.level.ChunkMap serverViewDistance
public net.minecraft.server.level.ChunkMap setServerViewDistance(I)V
@@ -82,7 +78,6 @@ public net.minecraft.server.level.ServerChunkCache mainThread
public net.minecraft.server.level.ServerChunkCache mainThreadProcessor
public net.minecraft.server.level.ServerChunkCache runDistanceManagerUpdates()Z
public net.minecraft.server.level.ServerChunkCache spawnEnemies
public net.minecraft.server.level.ServerChunkCache spawnFriendlies
public net.minecraft.server.level.ServerChunkCache$MainThreadExecutor
public net.minecraft.server.level.ServerLevel chunkSource
public net.minecraft.server.level.ServerLevel entityManager
@@ -99,11 +94,15 @@ public net.minecraft.server.level.ServerPlayer lastSentExp
public net.minecraft.server.level.ServerPlayer nextContainerCounter()V
public net.minecraft.server.level.ServerPlayer particleStatus
public net.minecraft.server.level.ServerPlayer seenCredits
public net.minecraft.server.level.ServerPlayer setShoulderEntityLeft(Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.server.level.ServerPlayer setShoulderEntityRight(Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.server.level.ServerPlayer triggerDimensionChangeTriggers(Lnet/minecraft/server/level/ServerLevel;)V
public net.minecraft.server.level.ServerPlayer wardenSpawnTracker
public net.minecraft.server.level.ServerPlayer$RespawnPosAngle
public net.minecraft.server.level.ServerPlayerGameMode level
public net.minecraft.server.level.TicketType register(Ljava/lang/String;JZLnet/minecraft/server/level/TicketType$TicketUse;)Lnet/minecraft/server/level/TicketType;
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl clientInformation
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl currentTask
public net.minecraft.server.network.ServerConfigurationPacketListenerImpl finishCurrentTask(Lnet/minecraft/server/network/ConfigurationTask$Type;)V
public net.minecraft.server.network.ServerGamePacketListenerImpl isChatMessageIllegal(Ljava/lang/String;)Z
public net.minecraft.server.network.ServerLoginPacketListenerImpl authenticatedProfile
public net.minecraft.server.network.ServerLoginPacketListenerImpl connection
@@ -140,13 +139,13 @@ public net.minecraft.world.effect.MobEffect attributeModifiers
public net.minecraft.world.effect.MobEffect$AttributeTemplate
public net.minecraft.world.effect.MobEffectInstance hiddenEffect
public net.minecraft.world.entity.AreaEffectCloud durationOnUse
public net.minecraft.world.entity.AreaEffectCloud ownerUUID
public net.minecraft.world.entity.AreaEffectCloud owner
public net.minecraft.world.entity.AreaEffectCloud potionContents
public net.minecraft.world.entity.AreaEffectCloud radiusOnUse
public net.minecraft.world.entity.AreaEffectCloud radiusPerTick
public net.minecraft.world.entity.AreaEffectCloud reapplicationDelay
public net.minecraft.world.entity.AreaEffectCloud updateColor()V
public net.minecraft.world.entity.AreaEffectCloud waitTime
public net.minecraft.world.entity.Avatar DATA_PLAYER_MODE_CUSTOMISATION
public net.minecraft.world.entity.Display DATA_POS_ROT_INTERPOLATION_DURATION_ID
public net.minecraft.world.entity.Display createTransformation(Lnet/minecraft/network/syncher/SynchedEntityData;)Lcom/mojang/math/Transformation;
public net.minecraft.world.entity.Display getBillboardConstraints()Lnet/minecraft/world/entity/Display$BillboardConstraints;
@@ -186,6 +185,7 @@ public net.minecraft.world.entity.Display$TextDisplay getTextOpacity()B
public net.minecraft.world.entity.Display$TextDisplay setFlags(B)V
public net.minecraft.world.entity.Display$TextDisplay setText(Lnet/minecraft/network/chat/Component;)V
public net.minecraft.world.entity.Display$TextDisplay setTextOpacity(B)V
public net.minecraft.world.entity.Entity DATA_TICKS_FROZEN
public net.minecraft.world.entity.Entity FLAG_INVISIBLE
public net.minecraft.world.entity.Entity getEncodeId()Ljava/lang/String;
public net.minecraft.world.entity.Entity getFireImmuneTicks()I
@@ -252,6 +252,7 @@ public net.minecraft.world.entity.Mob lootTable
public net.minecraft.world.entity.Mob lootTableSeed
public net.minecraft.world.entity.OminousItemSpawner setItem(Lnet/minecraft/world/item/ItemStack;)V
public net.minecraft.world.entity.OminousItemSpawner spawnItemAfterTicks
public net.minecraft.world.entity.ai.attributes.Attribute sentiment
public net.minecraft.world.entity.ai.attributes.AttributeSupplier getAttributeInstance(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;
public net.minecraft.world.entity.ai.control.MoveControl$Operation
public net.minecraft.world.entity.ai.gossip.GossipContainer gossips
@@ -271,6 +272,7 @@ public net.minecraft.world.entity.animal.Bee setHasStung(Z)V
public net.minecraft.world.entity.animal.Bee setRolling(Z)V
public net.minecraft.world.entity.animal.Bee stayOutOfHiveCountdown
public net.minecraft.world.entity.animal.Bee ticksWithoutNectarSinceExitingHive
public net.minecraft.world.entity.animal.Bee timeSinceSting
public net.minecraft.world.entity.animal.Cat isRelaxStateOne()Z
public net.minecraft.world.entity.animal.Cat setCollarColor(Lnet/minecraft/world/item/DyeColor;)V
public net.minecraft.world.entity.animal.Cat setRelaxStateOne(Z)V
@@ -330,14 +332,8 @@ public net.minecraft.world.entity.animal.wolf.Wolf setSoundVariant(Lnet/minecraf
public net.minecraft.world.entity.animal.wolf.Wolf setVariant(Lnet/minecraft/core/Holder;)V
public net.minecraft.world.entity.boss.enderdragon.EnderDragon subEntities
public net.minecraft.world.entity.boss.wither.WitherBoss bossEvent
public net.minecraft.world.entity.decoration.ArmorStand bodyPose
public net.minecraft.world.entity.decoration.ArmorStand disabledSlots
public net.minecraft.world.entity.decoration.ArmorStand headPose
public net.minecraft.world.entity.decoration.ArmorStand isDisabled(Lnet/minecraft/world/entity/EquipmentSlot;)Z
public net.minecraft.world.entity.decoration.ArmorStand leftArmPose
public net.minecraft.world.entity.decoration.ArmorStand leftLegPose
public net.minecraft.world.entity.decoration.ArmorStand rightArmPose
public net.minecraft.world.entity.decoration.ArmorStand rightLegPose
public net.minecraft.world.entity.decoration.ArmorStand setMarker(Z)V
public net.minecraft.world.entity.decoration.ArmorStand setSmall(Z)V
public net.minecraft.world.entity.decoration.HangingEntity setDirection(Lnet/minecraft/core/Direction;)V
@@ -346,6 +342,15 @@ public net.minecraft.world.entity.decoration.ItemFrame DATA_ROTATION
public net.minecraft.world.entity.decoration.ItemFrame dropChance
public net.minecraft.world.entity.decoration.ItemFrame fixed
public net.minecraft.world.entity.decoration.ItemFrame setDirection(Lnet/minecraft/core/Direction;)V
public net.minecraft.world.entity.decoration.Mannequin ALL_LAYERS
public net.minecraft.world.entity.decoration.Mannequin DEFAULT_DESCRIPTION
public net.minecraft.world.entity.decoration.Mannequin getDescription()Lnet/minecraft/network/chat/Component;
public net.minecraft.world.entity.decoration.Mannequin getImmovable()Z
public net.minecraft.world.entity.decoration.Mannequin getProfile()Lnet/minecraft/world/item/component/ResolvableProfile;
public net.minecraft.world.entity.decoration.Mannequin setDescription(Lnet/minecraft/network/chat/Component;)V
public net.minecraft.world.entity.decoration.Mannequin setHideDescription(Z)V
public net.minecraft.world.entity.decoration.Mannequin setImmovable(Z)V
public net.minecraft.world.entity.decoration.Mannequin setProfile(Lnet/minecraft/world/item/component/ResolvableProfile;)V
public net.minecraft.world.entity.decoration.Painting setVariant(Lnet/minecraft/core/Holder;)V
public net.minecraft.world.entity.item.FallingBlockEntity <init>(Lnet/minecraft/world/level/Level;DDDLnet/minecraft/world/level/block/state/BlockState;)V
public net.minecraft.world.entity.item.FallingBlockEntity blockState
@@ -364,8 +369,6 @@ public net.minecraft.world.entity.monster.Creeper explodeCreeper()V
public net.minecraft.world.entity.monster.Creeper explosionRadius
public net.minecraft.world.entity.monster.Creeper maxSwell
public net.minecraft.world.entity.monster.Creeper swell
public net.minecraft.world.entity.monster.Drowned groundNavigation
public net.minecraft.world.entity.monster.Drowned waterNavigation
public net.minecraft.world.entity.monster.EnderMan teleport()Z
public net.minecraft.world.entity.monster.EnderMan teleportTowards(Lnet/minecraft/world/entity/Entity;)Z
public net.minecraft.world.entity.monster.Endermite life
@@ -392,6 +395,7 @@ public net.minecraft.world.entity.monster.SpellcasterIllager$IllagerSpell
public net.minecraft.world.entity.monster.Strider steering
public net.minecraft.world.entity.monster.Vex hasLimitedLife
public net.minecraft.world.entity.monster.Vex limitedLifeTicks
public net.minecraft.world.entity.monster.Vex owner
public net.minecraft.world.entity.monster.Vindicator DOOR_BREAKING_PREDICATE
public net.minecraft.world.entity.monster.Vindicator isJohnny
public net.minecraft.world.entity.monster.Witch usingTime
@@ -419,18 +423,16 @@ public net.minecraft.world.entity.npc.Villager increaseMerchantCareer()V
public net.minecraft.world.entity.npc.Villager numberOfRestocksToday
public net.minecraft.world.entity.npc.Villager releaseAllPois()V
public net.minecraft.world.entity.npc.Villager setUnhappy()V
public net.minecraft.world.entity.npc.Villager updateDemand()V
public net.minecraft.world.entity.npc.WanderingTrader getWanderTarget()Lnet/minecraft/core/BlockPos;
public net.minecraft.world.entity.player.Abilities flyingSpeed
public net.minecraft.world.entity.player.Abilities walkingSpeed
public net.minecraft.world.entity.player.Inventory equipment
public net.minecraft.world.entity.player.Player DATA_PLAYER_MODE_CUSTOMISATION
public net.minecraft.world.entity.player.Player closeContainer()V
public net.minecraft.world.entity.player.Player enchantmentSeed
public net.minecraft.world.entity.player.Player getFireImmuneTicks()I
public net.minecraft.world.entity.player.Player hurtDir
public net.minecraft.world.entity.player.Player removeEntitiesOnShoulder()V
public net.minecraft.world.entity.player.Player setShoulderEntityLeft(Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.world.entity.player.Player setShoulderEntityRight(Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.world.entity.player.Player sleepCounter
public net.minecraft.world.entity.projectile.AbstractArrow baseDamage
public net.minecraft.world.entity.projectile.AbstractArrow firedFromWeapon
@@ -449,9 +451,7 @@ public net.minecraft.world.entity.projectile.Arrow updateColor()V
public net.minecraft.world.entity.projectile.EvokerFangs warmupDelayTicks
public net.minecraft.world.entity.projectile.EyeOfEnder life
public net.minecraft.world.entity.projectile.EyeOfEnder surviveAfterDeath
public net.minecraft.world.entity.projectile.EyeOfEnder tx
public net.minecraft.world.entity.projectile.EyeOfEnder ty
public net.minecraft.world.entity.projectile.EyeOfEnder tz
public net.minecraft.world.entity.projectile.EyeOfEnder target
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ATTACHED_TO_TARGET
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_ID_FIREWORKS_ITEM
public net.minecraft.world.entity.projectile.FireworkRocketEntity DATA_SHOT_AT_ANGLE
@@ -471,10 +471,9 @@ public net.minecraft.world.entity.projectile.FishingHook timeUntilHooked
public net.minecraft.world.entity.projectile.FishingHook timeUntilLured
public net.minecraft.world.entity.projectile.FishingHook$FishHookState
public net.minecraft.world.entity.projectile.LargeFireball explosionPower
public net.minecraft.world.entity.projectile.Projectile cachedOwner
public net.minecraft.world.entity.projectile.Projectile hasBeenShot
public net.minecraft.world.entity.projectile.Projectile leftOwner
public net.minecraft.world.entity.projectile.Projectile ownerUUID
public net.minecraft.world.entity.projectile.Projectile owner
public net.minecraft.world.entity.projectile.ShulkerBullet currentMoveDirection
public net.minecraft.world.entity.projectile.ShulkerBullet flightSteps
public net.minecraft.world.entity.projectile.ShulkerBullet targetDeltaX
@@ -500,7 +499,7 @@ public net.minecraft.world.entity.vehicle.AbstractMinecartContainer lootTable
public net.minecraft.world.entity.vehicle.AbstractMinecartContainer lootTableSeed
public net.minecraft.world.entity.vehicle.MinecartCommandBlock DATA_ID_COMMAND_NAME
public net.minecraft.world.entity.vehicle.MinecartFurnace fuel
public net.minecraft.world.entity.vehicle.MinecartTNT explode(D)V
public net.minecraft.world.entity.vehicle.MinecartTNT explode(Lnet/minecraft/world/damagesource/DamageSource;D)V
public net.minecraft.world.entity.vehicle.MinecartTNT explosionPowerBase
public net.minecraft.world.entity.vehicle.MinecartTNT explosionSpeedFactor
public net.minecraft.world.entity.vehicle.MinecartTNT fuse
@@ -516,6 +515,8 @@ public net.minecraft.world.inventory.AbstractContainerMenu quickcraftSlots
public net.minecraft.world.inventory.AbstractContainerMenu quickcraftStatus
public net.minecraft.world.inventory.AbstractContainerMenu quickcraftType
public net.minecraft.world.inventory.AbstractContainerMenu resetQuickCraft()V
public net.minecraft.world.inventory.AbstractContainerMenu synchronizeSlotToRemote(ILnet/minecraft/world/item/ItemStack;Ljava/util/function/Supplier;)V
public net.minecraft.world.inventory.AbstractContainerMenu triggerSlotListeners(ILnet/minecraft/world/item/ItemStack;Ljava/util/function/Supplier;)V
public net.minecraft.world.inventory.AbstractCraftingMenu craftSlots
public net.minecraft.world.inventory.AbstractCraftingMenu resultSlots
public net.minecraft.world.inventory.AnvilMenu cost
@@ -544,6 +545,11 @@ public net.minecraft.world.item.StandingAndWallBlockItem wallBlock
public net.minecraft.world.item.component.BundleContents$Mutable getMaxAmountToAdd(Lnet/minecraft/world/item/ItemStack;)I
public net.minecraft.world.item.component.ItemContainerContents MAX_SIZE
public net.minecraft.world.item.component.ItemContainerContents items
public net.minecraft.world.item.component.ResolvableProfile unpack()Lcom/mojang/datafixers/util/Either;
public net.minecraft.world.item.component.ResolvableProfile$Dynamic <init>(Lcom/mojang/datafixers/util/Either;Lnet/minecraft/world/entity/player/PlayerSkin$Patch;)V
public net.minecraft.world.item.component.ResolvableProfile$Partial
public net.minecraft.world.item.component.ResolvableProfile$Partial MAP_CODEC
public net.minecraft.world.item.component.ResolvableProfile$Static <init>(Lcom/mojang/datafixers/util/Either;Lnet/minecraft/world/entity/player/PlayerSkin$Patch;)V
public net.minecraft.world.item.context.UseOnContext <init>(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/phys/BlockHitResult;)V
public net.minecraft.world.item.crafting.RecipeManager recipes
public net.minecraft.world.item.crafting.RecipeMap byKey
@@ -567,6 +573,7 @@ public net.minecraft.world.level.BaseSpawner spawnRange
public net.minecraft.world.level.GameRules GAME_RULE_TYPES
public net.minecraft.world.level.GameRules$Value deserialize(Ljava/lang/String;)V
public net.minecraft.world.level.GameRules$Value onChanged(Lnet/minecraft/server/MinecraftServer;)V
public net.minecraft.world.level.Level DEFAULT_EXPLOSION_BLOCK_PARTICLES
public net.minecraft.world.level.Level blockEntityTickers
public net.minecraft.world.level.Level getEntities()Lnet/minecraft/world/level/entity/LevelEntityGetter;
public net.minecraft.world.level.Level levelData
@@ -581,8 +588,6 @@ public net.minecraft.world.level.biome.Biome getTemperature(Lnet/minecraft/core/
public net.minecraft.world.level.biome.Biome$ClimateSettings
public net.minecraft.world.level.block.Block popExperience(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;I)V
public net.minecraft.world.level.block.ChestBlock isBlockedChestByBlock(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Z
public net.minecraft.world.level.block.ChiseledBookShelfBlock getHitSlot(Lnet/minecraft/world/phys/BlockHitResult;Lnet/minecraft/world/level/block/state/BlockState;)Ljava/util/OptionalInt;
public net.minecraft.world.level.block.ChiseledBookShelfBlock getSection(F)I
public net.minecraft.world.level.block.ComposterBlock$EmptyContainer
public net.minecraft.world.level.block.ComposterBlock$InputContainer
public net.minecraft.world.level.block.ComposterBlock$OutputContainer
@@ -591,6 +596,7 @@ public net.minecraft.world.level.block.DropperBlock dispenseFrom(Lnet/minecraft/
public net.minecraft.world.level.block.FireBlock igniteOdds
public net.minecraft.world.level.block.RedStoneWireBlock canSurvive(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/LevelReader;Lnet/minecraft/core/BlockPos;)Z
public net.minecraft.world.level.block.RedStoneWireBlock shouldSignal
public net.minecraft.world.level.block.SelectableSlotContainer getSection(FI)I
public net.minecraft.world.level.block.ShulkerBoxBlock color
public net.minecraft.world.level.block.SoundType breakSound
public net.minecraft.world.level.block.SoundType hitSound
@@ -615,7 +621,7 @@ public net.minecraft.world.level.block.entity.BedBlockEntity color
public net.minecraft.world.level.block.entity.BeehiveBlockEntity savedFlowerPos
public net.minecraft.world.level.block.entity.BellBlockEntity resonating
public net.minecraft.world.level.block.entity.BellBlockEntity resonationTicks
public net.minecraft.world.level.block.entity.BlockEntity saveId(Lnet/minecraft/nbt/CompoundTag;)V
public net.minecraft.world.level.block.entity.BlockEntity saveId(Lnet/minecraft/world/level/storage/ValueOutput;)V
public net.minecraft.world.level.block.entity.BlockEntityType validBlocks
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity brewTime
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity fuel
@@ -624,13 +630,15 @@ public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTable
public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTableSeed
public net.minecraft.world.level.block.entity.CampfireBlockEntity cookingProgress
public net.minecraft.world.level.block.entity.CampfireBlockEntity cookingTime
public net.minecraft.world.level.block.entity.ChestBlockEntity DEFAULT_NAME
public net.minecraft.world.level.block.entity.ChestBlockEntity openersCounter
public net.minecraft.world.level.block.entity.ChestBlockEntity playSound(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/sounds/SoundEvent;)V
public net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity lastInteractedSlot
public net.minecraft.world.level.block.entity.ConduitBlockEntity MIN_KILL_SIZE
public net.minecraft.world.level.block.entity.ConduitBlockEntity destroyTarget
public net.minecraft.world.level.block.entity.ConduitBlockEntity destroyTargetUUID
public net.minecraft.world.level.block.entity.ConduitBlockEntity effectBlocks
public net.minecraft.world.level.block.entity.ConduitBlockEntity getDestroyRangeAABB(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/phys/AABB;
public net.minecraft.world.level.block.entity.ConduitBlockEntity updateDestroyTarget(Lnet/minecraft/world/entity/EntityReference;Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Z)Lnet/minecraft/world/entity/EntityReference;
public net.minecraft.world.level.block.entity.CrafterBlockEntity craftingTicksRemaining
public net.minecraft.world.level.block.entity.DecoratedPotBlockEntity decorations
public net.minecraft.world.level.block.entity.EnderChestBlockEntity openersCounter
@@ -664,13 +672,14 @@ public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity age
public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity exactTeleport
public net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity exitPortal
public net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity trialSpawner
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner config
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner isOminous
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawner stateAccessor
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData cooldownEndsAt
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData currentMobs
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData detectedPlayers
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData nextMobSpawnsAt
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerData nextSpawnData
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData cooldownEndsAt
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData currentMobs
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData detectedPlayers
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData nextMobSpawnsAt
public net.minecraft.world.level.block.entity.trialspawner.TrialSpawnerStateData nextSpawnData
public net.minecraft.world.level.block.entity.vault.VaultBlockEntity serverData
public net.minecraft.world.level.block.entity.vault.VaultServerData getRewardedPlayers()Ljava/util/Set;
public net.minecraft.world.level.block.entity.vault.VaultServerData pauseStateUpdatingUntil(J)V
@@ -688,12 +697,10 @@ public net.minecraft.world.level.chunk.ChunkGenerator generationSettingsGetter
public net.minecraft.world.level.chunk.LevelChunk level
public net.minecraft.world.level.chunk.LevelChunk loaded
public net.minecraft.world.level.chunk.LevelChunkSection states
public net.minecraft.world.level.chunk.PalettedContainer registry
public net.minecraft.world.level.chunk.status.ChunkStatusTasks postLoadProtoChunk(Lnet/minecraft/server/level/ServerLevel;Ljava/util/List;)V
public net.minecraft.world.level.chunk.status.ChunkStatusTasks postLoadProtoChunk(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/storage/ValueInput$ValueInputList;)V
public net.minecraft.world.level.chunk.storage.EntityStorage entityDeserializerQueue
public net.minecraft.world.level.chunk.storage.EntityStorage level
public net.minecraft.world.level.chunk.storage.RegionFileStorage regionCache
public net.minecraft.world.level.chunk.storage.SerializableChunkData BLOCK_STATE_CODEC
public net.minecraft.world.level.dimension.end.EndDragonFight GATEWAY_COUNT
public net.minecraft.world.level.dimension.end.EndDragonFight dragonEvent
public net.minecraft.world.level.dimension.end.EndDragonFight dragonUUID
@@ -754,7 +761,6 @@ public-f net.minecraft.server.ReloadableServerResources commands
public-f net.minecraft.server.dedicated.DedicatedServer serverLinks
public-f net.minecraft.server.dedicated.DedicatedServer settings
public-f net.minecraft.server.dedicated.DedicatedServerProperties pauseWhenEmptySeconds
public-f net.minecraft.server.players.PlayerList maxPlayers
public-f net.minecraft.world.entity.LivingEntity combatTracker
public-f net.minecraft.world.entity.LivingEntity invulnerableDuration
public-f net.minecraft.world.entity.Mob goalSelector
@@ -776,10 +782,6 @@ public-f net.minecraft.world.level.LevelSettings hardcore
public-f net.minecraft.world.level.LevelSettings levelName
public-f net.minecraft.world.level.block.ChestBlock MENU_PROVIDER_COMBINER
public-f net.minecraft.world.level.block.entity.BannerBlockEntity baseColor
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner normalConfig
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner ominousConfig
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner requiredPlayerRange
public-f net.minecraft.world.level.block.entity.trialspawner.TrialSpawner targetCooldownLength
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerX
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerZ
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData dimension
+2 -2
View File
@@ -14,10 +14,10 @@ tiny 2 0 mojang spigot
# CraftBukkit changes type
c net/minecraft/server/level/ServerLevel net/minecraft/server/level/WorldServer
f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData L
f Lnet/minecraft/world/level/storage/PrimaryLevelData; serverLevelData J
c net/minecraft/world/level/chunk/LevelChunk net/minecraft/world/level/chunk/Chunk
f Lnet/minecraft/server/level/ServerLevel; level r
f Lnet/minecraft/server/level/ServerLevel; level q
# See mappings-patch.tiny
c net/minecraft/server/level/ChunkMap net/minecraft/server/level/PlayerChunkMap
+6 -6
View File
@@ -2,7 +2,7 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent
plugins {
id("io.papermc.paperweight.core") version "2.0.0-beta.17" apply false
id("io.papermc.paperweight.core") version "2.0.0-beta.19" apply false
}
subprojects {
@@ -24,19 +24,19 @@ subprojects {
val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"
subprojects {
tasks.withType<JavaCompile> {
tasks.withType<JavaCompile>().configureEach {
options.encoding = Charsets.UTF_8.name()
options.release = 21
options.isFork = true
options.compilerArgs.addAll(listOf("-Xlint:-deprecation", "-Xlint:-removal"))
}
tasks.withType<Javadoc> {
tasks.withType<Javadoc>().configureEach {
options.encoding = Charsets.UTF_8.name()
}
tasks.withType<ProcessResources> {
tasks.withType<ProcessResources>().configureEach {
filteringCharset = Charsets.UTF_8.name()
}
tasks.withType<Test> {
tasks.withType<Test>().configureEach {
testLogging {
showStackTraces = true
exceptionFormat = TestExceptionFormat.FULL
@@ -51,7 +51,7 @@ subprojects {
extensions.configure<PublishingExtension> {
repositories {
maven("https://repo.papermc.io/repository/maven-snapshots/") {
maven("https://artifactory.papermc.io/artifactory/snapshots/") {
name = "paperSnapshots"
credentials(PasswordCredentials::class)
}
+3 -4
View File
@@ -1,10 +1,9 @@
group=io.papermc.paper
version=1.21.5-R0.1-SNAPSHOT
mcVersion=1.21.5
version=1.21.9-R0.1-SNAPSHOT
mcVersion=1.21.9
# Set to true while updating Minecraft version
updatingMinecraft=true
updateTaskListIssue=https://github.com/PaperMC/Paper/issues/11736
updatingMinecraft=false
org.gradle.configuration-cache=true
org.gradle.caching=true
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Vendored
+1 -4
View File
@@ -1,7 +1,7 @@
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
# Copyright © 2015 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -114,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -172,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
Vendored
+1 -2
View File
@@ -70,11 +70,10 @@ goto fail
:execute
@rem Setup the command line
set CLASSPATH=
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
+12 -22
View File
@@ -11,7 +11,7 @@ java {
val annotationsVersion = "26.0.2"
// Keep in sync with paper-server adventure-text-serializer-ansi dep
val adventureVersion = "4.21.0"
val adventureVersion = "4.25.0-SNAPSHOT"
val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21"
val slf4jVersion = "2.0.16"
val log4jVersion = "2.24.1"
@@ -66,8 +66,8 @@ dependencies {
apiAndDocs("net.kyori:adventure-text-logger-slf4j")
api("org.apache.maven:maven-resolver-provider:3.9.6") // make API dependency for Paper Plugins
compileOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
compileOnly("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
implementation("org.apache.maven.resolver:maven-resolver-transport-http:1.9.18")
// Annotations - Slowly migrate to jspecify
val annotations = "org.jetbrains:annotations:$annotationsVersion"
@@ -164,18 +164,19 @@ abstract class Services {
}
val services = objects.newInstance<Services>()
tasks.withType<Javadoc> {
tasks.withType<Javadoc>().configureEach {
val options = options as StandardJavadocDocletOptions
options.overview = "src/main/javadoc/overview.html"
options.use()
options.isDocFilesSubDirs = true
options.links(
"https://guava.dev/releases/33.3.1-jre/api/docs/",
"https://javadoc.io/doc/org.yaml/snakeyaml/2.2/",
"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/",
"https://javadoc.io/doc/org.joml/joml/1.10.8/",
"https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0",
//"https://javadoc.io/doc/org.yaml/snakeyaml/2.2/",
//"https://javadoc.io/doc/org.jetbrains/annotations/$annotationsVersion/",
//"https://javadoc.io/doc/org.joml/joml/1.10.8/",
//"https://www.javadoc.io/doc/com.google.code.gson/gson/2.11.0",
"https://jspecify.dev/docs/api/",
/* TODO 1.21.9 dev - adventure release
"https://jd.advntr.dev/api/$adventureVersion/",
"https://jd.advntr.dev/key/$adventureVersion/",
"https://jd.advntr.dev/text-minimessage/$adventureVersion/",
@@ -183,9 +184,10 @@ tasks.withType<Javadoc> {
"https://jd.advntr.dev/text-serializer-legacy/$adventureVersion/",
"https://jd.advntr.dev/text-serializer-plain/$adventureVersion/",
"https://jd.advntr.dev/text-logger-slf4j/$adventureVersion/",
"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
*/
//"https://javadoc.io/doc/org.slf4j/slf4j-api/$slf4jVersion/",
"https://logging.apache.org/log4j/2.x/javadoc/log4j-api/",
"https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3",
//"https://javadoc.io/doc/org.apache.maven.resolver/maven-resolver-api/1.7.3",
)
options.tags("apiNote:a:API Note:")
@@ -233,15 +235,3 @@ val scanJarForBadCalls by tasks.registering(io.papermc.paperweight.tasks.ScanJar
tasks.check {
dependsOn(scanJarForBadCalls)
}
if (providers.gradleProperty("updatingMinecraft").getOrElse("false").toBoolean()) {
val scanJarForOldGeneratedCode by tasks.registering(io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) {
mcVersion.set(providers.gradleProperty("mcVersion"))
annotation.set("Lio/papermc/paper/generated/GeneratedFrom;")
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
classpath.from(configurations.compileClasspath)
}
tasks.check {
dependsOn(scanJarForOldGeneratedCode)
}
}
@@ -1,8 +1,8 @@
package com.destroystokyo.paper.entity.ai;
import com.destroystokyo.paper.entity.RangedEntity;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.entity.SchoolableFish;
import io.papermc.paper.generated.GeneratedFrom;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.AbstractHorse;
import org.bukkit.entity.AbstractSkeleton;
@@ -21,6 +21,7 @@ import org.bukkit.entity.Fish;
import org.bukkit.entity.Fox;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.Guardian;
import org.bukkit.entity.HappyGhast;
import org.bukkit.entity.Illager;
import org.bukkit.entity.Illusioner;
import org.bukkit.entity.IronGolem;
@@ -67,17 +68,17 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<AbstractHorse> RANDOM_STAND = create("random_stand", AbstractHorse.class);
GoalKey<AbstractHorse> HORSE_RANDOM_STAND = create("horse_random_stand", AbstractHorse.class);
GoalKey<AbstractHorse> RUN_AROUND_LIKE_CRAZY = create("run_around_like_crazy", AbstractHorse.class);
GoalKey<AbstractHorse> HORSE_RUN_AROUND_LIKE_CRAZY = create("horse_run_around_like_crazy", AbstractHorse.class);
GoalKey<AbstractSkeleton> ABSTRACT_SKELETON_MELEE = create("abstract_skeleton_melee", AbstractSkeleton.class);
GoalKey<AbstractSkeleton> SKELETON_MELEE = create("skeleton_melee", AbstractSkeleton.class);
GoalKey<AbstractVillager> LOOK_AT_TRADING_PLAYER = create("look_at_trading_player", AbstractVillager.class);
GoalKey<AbstractVillager> VILLAGER_LOOK_AT_TRADING_PLAYER = create("villager_look_at_trading_player", AbstractVillager.class);
GoalKey<AbstractVillager> TRADE_WITH_PLAYER = create("trade_with_player", AbstractVillager.class);
GoalKey<AbstractVillager> VILLAGER_TRADE_WITH_PLAYER = create("villager_trade_with_player", AbstractVillager.class);
GoalKey<Animals> BREED = create("breed", Animals.class);
@@ -101,12 +102,12 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Bee> BEE_POLLINATE = create("bee_pollinate", Bee.class);
GoalKey<Bee> BEE_VALIDATE_FLOWER = create("bee_validate_flower", Bee.class);
GoalKey<Bee> BEE_VALIDATE_HIVE = create("bee_validate_hive", Bee.class);
GoalKey<Bee> BEE_WANDER = create("bee_wander", Bee.class);
GoalKey<Bee> VALIDATE_FLOWER = create("validate_flower", Bee.class);
GoalKey<Bee> VALIDATE_HIVE = create("validate_hive", Bee.class);
GoalKey<Blaze> BLAZE_ATTACK = create("blaze_attack", Blaze.class);
GoalKey<Cat> CAT_AVOID_ENTITY = create("cat_avoid_entity", Cat.class);
@@ -165,16 +166,16 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Creature> WATER_AVOIDING_RANDOM_STROLL = create("water_avoiding_random_stroll", Creature.class);
GoalKey<Creeper> SWELL = create("swell", Creeper.class);
GoalKey<Creeper> CREEPER_SWELL = create("creeper_swell", Creeper.class);
GoalKey<Dolphin> DOLPHIN_JUMP = create("dolphin_jump", Dolphin.class);
GoalKey<Dolphin> DOLPHIN_PLAY_WITH_ITEMS = create("dolphin_play_with_items", Dolphin.class);
GoalKey<Dolphin> DOLPHIN_SWIM_TO_TREASURE = create("dolphin_swim_to_treasure", Dolphin.class);
GoalKey<Dolphin> DOLPHIN_SWIM_WITH_PLAYER = create("dolphin_swim_with_player", Dolphin.class);
GoalKey<Dolphin> PLAY_WITH_ITEMS = create("play_with_items", Dolphin.class);
GoalKey<Drowned> DROWNED_ATTACK = create("drowned_attack", Drowned.class);
GoalKey<Drowned> DROWNED_GO_TO_BEACH = create("drowned_go_to_beach", Drowned.class);
@@ -199,14 +200,14 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Fish> FISH_SWIM = create("fish_swim", Fish.class);
GoalKey<Fox> DEFEND_TRUSTED = create("defend_trusted", Fox.class);
GoalKey<Fox> FACEPLANT = create("faceplant", Fox.class);
GoalKey<Fox> FOX_BREED = create("fox_breed", Fox.class);
GoalKey<Fox> FOX_DEFEND_TRUSTED = create("fox_defend_trusted", Fox.class);
GoalKey<Fox> FOX_EAT_BERRIES = create("fox_eat_berries", Fox.class);
GoalKey<Fox> FOX_FACEPLANT = create("fox_faceplant", Fox.class);
GoalKey<Fox> FOX_FLOAT = create("fox_float", Fox.class);
GoalKey<Fox> FOX_FOLLOW_PARENT = create("fox_follow_parent", Fox.class);
@@ -217,29 +218,27 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Fox> FOX_PANIC = create("fox_panic", Fox.class);
GoalKey<Fox> FOX_PERCH_AND_SEARCH = create("fox_perch_and_search", Fox.class);
GoalKey<Fox> FOX_POUNCE = create("fox_pounce", Fox.class);
GoalKey<Fox> FOX_SEARCH_FOR_ITEMS = create("fox_search_for_items", Fox.class);
GoalKey<Fox> FOX_SEEK_SHELTER = create("fox_seek_shelter", Fox.class);
GoalKey<Fox> FOX_SLEEP = create("fox_sleep", Fox.class);
GoalKey<Fox> FOX_STALK_PREY = create("fox_stalk_prey", Fox.class);
GoalKey<Fox> FOX_STROLL_THROUGH_VILLAGE = create("fox_stroll_through_village", Fox.class);
GoalKey<Fox> PERCH_AND_SEARCH = create("perch_and_search", Fox.class);
GoalKey<Fox> SEEK_SHELTER = create("seek_shelter", Fox.class);
GoalKey<Fox> SLEEP = create("sleep", Fox.class);
GoalKey<Fox> STALK_PREY = create("stalk_prey", Fox.class);
GoalKey<Ghast> GHAST_LOOK = create("ghast_look", Ghast.class);
GoalKey<Ghast> GHAST_SHOOT_FIREBALL = create("ghast_shoot_fireball", Ghast.class);
GoalKey<Ghast> RANDOM_FLOAT_AROUND = create("random_float_around", Ghast.class);
GoalKey<Guardian> GUARDIAN_ATTACK = create("guardian_attack", Guardian.class);
GoalKey<Illager> HOLD_GROUND_ATTACK = create("hold_ground_attack", Illager.class);
GoalKey<HappyGhast> HAPPY_GHAST_FLOAT = create("happy_ghast_float", HappyGhast.class);
GoalKey<Illager> ILLAGER_HOLD_GROUND_ATTACK = create("illager_hold_ground_attack", Illager.class);
GoalKey<Illager> RAIDER_OPEN_DOOR = create("raider_open_door", Illager.class);
@@ -247,9 +246,9 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Illusioner> ILLUSIONER_MIRROR_SPELL = create("illusioner_mirror_spell", Illusioner.class);
GoalKey<IronGolem> DEFEND_VILLAGE = create("defend_village", IronGolem.class);
GoalKey<IronGolem> IRON_GOLEM_DEFEND_VILLAGE = create("iron_golem_defend_village", IronGolem.class);
GoalKey<IronGolem> OFFER_FLOWER = create("offer_flower", IronGolem.class);
GoalKey<IronGolem> IRON_GOLEM_OFFER_FLOWER = create("iron_golem_offer_flower", IronGolem.class);
GoalKey<Llama> LLAMA_ATTACK_WOLF = create("llama_attack_wolf", Llama.class);
@@ -269,6 +268,8 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Mob> FOLLOW_MOB = create("follow_mob", Mob.class);
GoalKey<Mob> GHAST_LOOK = create("ghast_look", Mob.class);
GoalKey<Mob> INTERACT = create("interact", Mob.class);
GoalKey<Mob> LEAP_AT = create("leap_at", Mob.class);
@@ -281,10 +282,14 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Mob> OPEN_DOOR = create("open_door", Mob.class);
GoalKey<Mob> RANDOM_FLOAT_AROUND = create("random_float_around", Mob.class);
GoalKey<Mob> RANDOM_LOOK_AROUND = create("random_look_around", Mob.class);
GoalKey<Mob> RESET_UNIVERSAL_ANGER = create("reset_universal_anger", Mob.class);
GoalKey<Mob> TEMPT_FOR_NON_PATHFINDERS = create("tempt_for_non_pathfinders", Mob.class);
GoalKey<Mob> USE_ITEM = create("use_item", Mob.class);
GoalKey<Mob> VINDICATOR_BREAK_DOOR = create("vindicator_break_door", Mob.class);
@@ -317,7 +322,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Panda> PANDA_SNEEZE = create("panda_sneeze", Panda.class);
GoalKey<Parrot> LAND_ON_OWNERS_SHOULDER = create("land_on_owners_shoulder", Parrot.class);
GoalKey<Parrot> PARROT_LAND_ON_OWNERS_SHOULDER = create("parrot_land_on_owners_shoulder", Parrot.class);
GoalKey<Phantom> PHANTOM_ATTACK_PLAYER = create("phantom_attack_player", Phantom.class);
@@ -339,27 +344,27 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Rabbit> RABBIT_PANIC = create("rabbit_panic", Rabbit.class);
GoalKey<Rabbit> RAID_GARDEN = create("raid_garden", Rabbit.class);
GoalKey<Raider> LONG_DISTANCE_PATROL = create("long_distance_patrol", Raider.class);
GoalKey<Raider> NEAREST_ATTACKABLE_WITCH = create("nearest_attackable_witch", Raider.class);
GoalKey<Raider> NEAREST_HEALABLE_RAIDER = create("nearest_healable_raider", Raider.class);
GoalKey<Raider> OBTAIN_RAID_LEADER_BANNER = create("obtain_raid_leader_banner", Raider.class);
GoalKey<Raider> PATHFIND_TO_RAID = create("pathfind_to_raid", Raider.class);
GoalKey<Rabbit> RABBIT_RAID_GARDEN = create("rabbit_raid_garden", Rabbit.class);
GoalKey<Raider> RAIDER_CELEBRATION = create("raider_celebration", Raider.class);
GoalKey<Raider> RAIDER_LONG_DISTANCE_PATROL = create("raider_long_distance_patrol", Raider.class);
GoalKey<Raider> RAIDER_MOVE_THROUGH_VILLAGE = create("raider_move_through_village", Raider.class);
GoalKey<Raider> RAIDER_NEAREST_ATTACKABLE_WITCH = create("raider_nearest_attackable_witch", Raider.class);
GoalKey<Raider> RAIDER_NEAREST_HEALABLE_RAIDER = create("raider_nearest_healable_raider", Raider.class);
GoalKey<Raider> RAIDER_OBTAIN_RAID_LEADER_BANNER = create("raider_obtain_raid_leader_banner", Raider.class);
GoalKey<Raider> RAIDER_PATHFIND_TO_RAID = create("raider_pathfind_to_raid", Raider.class);
GoalKey<RangedEntity> DROWNED_TRIDENT_ATTACK = create("drowned_trident_attack", RangedEntity.class);
GoalKey<RangedEntity> RANGED_ATTACK = create("ranged_attack", RangedEntity.class);
GoalKey<SchoolableFish> FOLLOW_FLOCK_LEADER = create("follow_flock_leader", SchoolableFish.class);
GoalKey<SchoolableFish> SCHOOLABLE_FISH_FOLLOW_FLOCK_LEADER = create("schoolable_fish_follow_flock_leader", SchoolableFish.class);
GoalKey<Shulker> SHULKER_ATTACK = create("shulker_attack", Shulker.class);
@@ -373,7 +378,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Silverfish> SILVERFISH_WAKE_UP_FRIENDS = create("silverfish_wake_up_friends", Silverfish.class);
GoalKey<SkeletonHorse> SKELETON_TRAP = create("skeleton_trap", SkeletonHorse.class);
GoalKey<SkeletonHorse> SKELETON_HORSE_SKELETON_TRAP = create("skeleton_horse_skeleton_trap", SkeletonHorse.class);
GoalKey<Slime> SLIME_ATTACK = create("slime_attack", Slime.class);
@@ -429,14 +434,14 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Vindicator> VINDICATOR_JOHNNY_ATTACK = create("vindicator_johnny_attack", Vindicator.class);
GoalKey<WanderingTrader> WANDER_TO_POSITION = create("wander_to_position", WanderingTrader.class);
GoalKey<WanderingTrader> WANDERING_TRADER_WANDER_TO_POSITION = create("wandering_trader_wander_to_position", WanderingTrader.class);
GoalKey<Wither> WITHER_DO_NOTHING = create("wither_do_nothing", Wither.class);
GoalKey<Wolf> BEG = create("beg", Wolf.class);
GoalKey<Wolf> WOLF_AVOID_ENTITY = create("wolf_avoid_entity", Wolf.class);
GoalKey<Wolf> WOLF_BEG = create("wolf_beg", Wolf.class);
GoalKey<Zombie> ZOMBIE_ATTACK = create("zombie_attack", Zombie.class);
GoalKey<Zombie> ZOMBIE_ATTACK_TURTLE_EGG = create("zombie_attack_turtle_egg", Zombie.class);
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class AttributeKeys {
/**
* {@code minecraft:armor}
@@ -81,6 +81,13 @@ public final class AttributeKeys {
*/
public static final TypedKey<Attribute> BURNING_TIME = create(key("burning_time"));
/**
* {@code minecraft:camera_distance}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Attribute> CAMERA_DISTANCE = create(key("camera_distance"));
/**
* {@code minecraft:entity_interaction_range}
*
@@ -249,6 +256,20 @@ public final class AttributeKeys {
*/
public static final TypedKey<Attribute> WATER_MOVEMENT_EFFICIENCY = create(key("water_movement_efficiency"));
/**
* {@code minecraft:waypoint_receive_range}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Attribute> WAYPOINT_RECEIVE_RANGE = create(key("waypoint_receive_range"));
/**
* {@code minecraft:waypoint_transmit_range}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Attribute> WAYPOINT_TRANSMIT_RANGE = create(key("waypoint_transmit_range"));
private AttributeKeys() {
}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class BannerPatternKeys {
/**
* {@code minecraft:base}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class BiomeKeys {
/**
* {@code minecraft:badlands}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class BlockTypeKeys {
/**
* {@code minecraft:acacia_button}
@@ -95,6 +95,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> ACACIA_SAPLING = create(key("acacia_sapling"));
/**
* {@code minecraft:acacia_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ACACIA_SHELF = create(key("acacia_shelf"));
/**
* {@code minecraft:acacia_sign}
*
@@ -347,6 +354,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BAMBOO_SAPLING = create(key("bamboo_sapling"));
/**
* {@code minecraft:bamboo_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BAMBOO_SHELF = create(key("bamboo_shelf"));
/**
* {@code minecraft:bamboo_sign}
*
@@ -536,6 +550,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BIRCH_SAPLING = create(key("birch_sapling"));
/**
* {@code minecraft:birch_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BIRCH_SHELF = create(key("birch_shelf"));
/**
* {@code minecraft:birch_sign}
*
@@ -1173,13 +1194,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CAVE_VINES_PLANT = create(key("cave_vines_plant"));
/**
* {@code minecraft:chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CHAIN = create(key("chain"));
/**
* {@code minecraft:chain_command_block}
*
@@ -1257,6 +1271,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CHERRY_SAPLING = create(key("cherry_sapling"));
/**
* {@code minecraft:cherry_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CHERRY_SHELF = create(key("cherry_shelf"));
/**
* {@code minecraft:cherry_sign}
*
@@ -1551,6 +1572,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CONDUIT = create(key("conduit"));
/**
* {@code minecraft:copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_BARS = create(key("copper_bars"));
/**
* {@code minecraft:copper_block}
*
@@ -1565,6 +1593,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> COPPER_BULB = create(key("copper_bulb"));
/**
* {@code minecraft:copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_CHAIN = create(key("copper_chain"));
/**
* {@code minecraft:copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_CHEST = create(key("copper_chest"));
/**
* {@code minecraft:copper_door}
*
@@ -1572,6 +1614,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> COPPER_DOOR = create(key("copper_door"));
/**
* {@code minecraft:copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_GOLEM_STATUE = create(key("copper_golem_statue"));
/**
* {@code minecraft:copper_grate}
*
@@ -1579,6 +1628,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> COPPER_GRATE = create(key("copper_grate"));
/**
* {@code minecraft:copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_LANTERN = create(key("copper_lantern"));
/**
* {@code minecraft:copper_ore}
*
@@ -1586,6 +1642,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> COPPER_ORE = create(key("copper_ore"));
/**
* {@code minecraft:copper_torch}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_TORCH = create(key("copper_torch"));
/**
* {@code minecraft:copper_trapdoor}
*
@@ -1593,6 +1656,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> COPPER_TRAPDOOR = create(key("copper_trapdoor"));
/**
* {@code minecraft:copper_wall_torch}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> COPPER_WALL_TORCH = create(key("copper_wall_torch"));
/**
* {@code minecraft:cornflower}
*
@@ -1747,6 +1817,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CRIMSON_ROOTS = create(key("crimson_roots"));
/**
* {@code minecraft:crimson_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CRIMSON_SHELF = create(key("crimson_shelf"));
/**
* {@code minecraft:crimson_sign}
*
@@ -2034,6 +2111,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> DARK_OAK_SAPLING = create(key("dark_oak_sapling"));
/**
* {@code minecraft:dark_oak_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> DARK_OAK_SHELF = create(key("dark_oak_shelf"));
/**
* {@code minecraft:dark_oak_sign}
*
@@ -2475,6 +2559,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> DRAGON_WALL_HEAD = create(key("dragon_wall_head"));
/**
* {@code minecraft:dried_ghast}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> DRIED_GHAST = create(key("dried_ghast"));
/**
* {@code minecraft:dried_kelp_block}
*
@@ -2601,6 +2692,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> EXPOSED_COPPER = create(key("exposed_copper"));
/**
* {@code minecraft:exposed_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_BARS = create(key("exposed_copper_bars"));
/**
* {@code minecraft:exposed_copper_bulb}
*
@@ -2608,6 +2706,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_BULB = create(key("exposed_copper_bulb"));
/**
* {@code minecraft:exposed_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_CHAIN = create(key("exposed_copper_chain"));
/**
* {@code minecraft:exposed_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_CHEST = create(key("exposed_copper_chest"));
/**
* {@code minecraft:exposed_copper_door}
*
@@ -2615,6 +2727,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_DOOR = create(key("exposed_copper_door"));
/**
* {@code minecraft:exposed_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_GOLEM_STATUE = create(key("exposed_copper_golem_statue"));
/**
* {@code minecraft:exposed_copper_grate}
*
@@ -2622,6 +2741,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_GRATE = create(key("exposed_copper_grate"));
/**
* {@code minecraft:exposed_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_COPPER_LANTERN = create(key("exposed_copper_lantern"));
/**
* {@code minecraft:exposed_copper_trapdoor}
*
@@ -2650,6 +2776,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> EXPOSED_CUT_COPPER_STAIRS = create(key("exposed_cut_copper_stairs"));
/**
* {@code minecraft:exposed_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> EXPOSED_LIGHTNING_ROD = create(key("exposed_lightning_rod"));
/**
* {@code minecraft:farmland}
*
@@ -3196,6 +3329,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> IRON_BLOCK = create(key("iron_block"));
/**
* {@code minecraft:iron_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> IRON_CHAIN = create(key("iron_chain"));
/**
* {@code minecraft:iron_door}
*
@@ -3308,6 +3448,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> JUNGLE_SAPLING = create(key("jungle_sapling"));
/**
* {@code minecraft:jungle_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> JUNGLE_SHELF = create(key("jungle_shelf"));
/**
* {@code minecraft:jungle_sign}
*
@@ -3980,6 +4127,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> MANGROVE_ROOTS = create(key("mangrove_roots"));
/**
* {@code minecraft:mangrove_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> MANGROVE_SHELF = create(key("mangrove_shelf"));
/**
* {@code minecraft:mangrove_sign}
*
@@ -4351,6 +4505,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OAK_SAPLING = create(key("oak_sapling"));
/**
* {@code minecraft:oak_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OAK_SHELF = create(key("oak_shelf"));
/**
* {@code minecraft:oak_sign}
*
@@ -4554,6 +4715,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER = create(key("oxidized_copper"));
/**
* {@code minecraft:oxidized_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_BARS = create(key("oxidized_copper_bars"));
/**
* {@code minecraft:oxidized_copper_bulb}
*
@@ -4561,6 +4729,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_BULB = create(key("oxidized_copper_bulb"));
/**
* {@code minecraft:oxidized_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_CHAIN = create(key("oxidized_copper_chain"));
/**
* {@code minecraft:oxidized_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_CHEST = create(key("oxidized_copper_chest"));
/**
* {@code minecraft:oxidized_copper_door}
*
@@ -4568,6 +4750,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_DOOR = create(key("oxidized_copper_door"));
/**
* {@code minecraft:oxidized_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_GOLEM_STATUE = create(key("oxidized_copper_golem_statue"));
/**
* {@code minecraft:oxidized_copper_grate}
*
@@ -4575,6 +4764,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_GRATE = create(key("oxidized_copper_grate"));
/**
* {@code minecraft:oxidized_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_COPPER_LANTERN = create(key("oxidized_copper_lantern"));
/**
* {@code minecraft:oxidized_copper_trapdoor}
*
@@ -4603,6 +4799,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> OXIDIZED_CUT_COPPER_STAIRS = create(key("oxidized_cut_copper_stairs"));
/**
* {@code minecraft:oxidized_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> OXIDIZED_LIGHTNING_ROD = create(key("oxidized_lightning_rod"));
/**
* {@code minecraft:packed_ice}
*
@@ -4708,6 +4911,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> PALE_OAK_SAPLING = create(key("pale_oak_sapling"));
/**
* {@code minecraft:pale_oak_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PALE_OAK_SHELF = create(key("pale_oak_shelf"));
/**
* {@code minecraft:pale_oak_sign}
*
@@ -6430,6 +6640,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> SPRUCE_SAPLING = create(key("spruce_sapling"));
/**
* {@code minecraft:spruce_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> SPRUCE_SHELF = create(key("spruce_shelf"));
/**
* {@code minecraft:spruce_sign}
*
@@ -7095,6 +7312,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WARPED_ROOTS = create(key("warped_roots"));
/**
* {@code minecraft:warped_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WARPED_SHELF = create(key("warped_shelf"));
/**
* {@code minecraft:warped_sign}
*
@@ -7172,6 +7396,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_CHISELED_COPPER = create(key("waxed_chiseled_copper"));
/**
* {@code minecraft:waxed_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_COPPER_BARS = create(key("waxed_copper_bars"));
/**
* {@code minecraft:waxed_copper_block}
*
@@ -7186,6 +7417,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_COPPER_BULB = create(key("waxed_copper_bulb"));
/**
* {@code minecraft:waxed_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_COPPER_CHAIN = create(key("waxed_copper_chain"));
/**
* {@code minecraft:waxed_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_COPPER_CHEST = create(key("waxed_copper_chest"));
/**
* {@code minecraft:waxed_copper_door}
*
@@ -7193,6 +7438,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_COPPER_DOOR = create(key("waxed_copper_door"));
/**
* {@code minecraft:waxed_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_COPPER_GOLEM_STATUE = create(key("waxed_copper_golem_statue"));
/**
* {@code minecraft:waxed_copper_grate}
*
@@ -7200,6 +7452,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_COPPER_GRATE = create(key("waxed_copper_grate"));
/**
* {@code minecraft:waxed_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_COPPER_LANTERN = create(key("waxed_copper_lantern"));
/**
* {@code minecraft:waxed_copper_trapdoor}
*
@@ -7242,6 +7501,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER = create(key("waxed_exposed_copper"));
/**
* {@code minecraft:waxed_exposed_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_BARS = create(key("waxed_exposed_copper_bars"));
/**
* {@code minecraft:waxed_exposed_copper_bulb}
*
@@ -7249,6 +7515,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_BULB = create(key("waxed_exposed_copper_bulb"));
/**
* {@code minecraft:waxed_exposed_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_CHAIN = create(key("waxed_exposed_copper_chain"));
/**
* {@code minecraft:waxed_exposed_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_CHEST = create(key("waxed_exposed_copper_chest"));
/**
* {@code minecraft:waxed_exposed_copper_door}
*
@@ -7256,6 +7536,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_DOOR = create(key("waxed_exposed_copper_door"));
/**
* {@code minecraft:waxed_exposed_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_GOLEM_STATUE = create(key("waxed_exposed_copper_golem_statue"));
/**
* {@code minecraft:waxed_exposed_copper_grate}
*
@@ -7263,6 +7550,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_GRATE = create(key("waxed_exposed_copper_grate"));
/**
* {@code minecraft:waxed_exposed_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_COPPER_LANTERN = create(key("waxed_exposed_copper_lantern"));
/**
* {@code minecraft:waxed_exposed_copper_trapdoor}
*
@@ -7291,6 +7585,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_CUT_COPPER_STAIRS = create(key("waxed_exposed_cut_copper_stairs"));
/**
* {@code minecraft:waxed_exposed_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_EXPOSED_LIGHTNING_ROD = create(key("waxed_exposed_lightning_rod"));
/**
* {@code minecraft:waxed_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_LIGHTNING_ROD = create(key("waxed_lightning_rod"));
/**
* {@code minecraft:waxed_oxidized_chiseled_copper}
*
@@ -7305,6 +7613,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER = create(key("waxed_oxidized_copper"));
/**
* {@code minecraft:waxed_oxidized_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_BARS = create(key("waxed_oxidized_copper_bars"));
/**
* {@code minecraft:waxed_oxidized_copper_bulb}
*
@@ -7312,6 +7627,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_BULB = create(key("waxed_oxidized_copper_bulb"));
/**
* {@code minecraft:waxed_oxidized_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_CHAIN = create(key("waxed_oxidized_copper_chain"));
/**
* {@code minecraft:waxed_oxidized_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_CHEST = create(key("waxed_oxidized_copper_chest"));
/**
* {@code minecraft:waxed_oxidized_copper_door}
*
@@ -7319,6 +7648,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_DOOR = create(key("waxed_oxidized_copper_door"));
/**
* {@code minecraft:waxed_oxidized_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_GOLEM_STATUE = create(key("waxed_oxidized_copper_golem_statue"));
/**
* {@code minecraft:waxed_oxidized_copper_grate}
*
@@ -7326,6 +7662,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_GRATE = create(key("waxed_oxidized_copper_grate"));
/**
* {@code minecraft:waxed_oxidized_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_COPPER_LANTERN = create(key("waxed_oxidized_copper_lantern"));
/**
* {@code minecraft:waxed_oxidized_copper_trapdoor}
*
@@ -7354,6 +7697,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_CUT_COPPER_STAIRS = create(key("waxed_oxidized_cut_copper_stairs"));
/**
* {@code minecraft:waxed_oxidized_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_OXIDIZED_LIGHTNING_ROD = create(key("waxed_oxidized_lightning_rod"));
/**
* {@code minecraft:waxed_weathered_chiseled_copper}
*
@@ -7368,6 +7718,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER = create(key("waxed_weathered_copper"));
/**
* {@code minecraft:waxed_weathered_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_BARS = create(key("waxed_weathered_copper_bars"));
/**
* {@code minecraft:waxed_weathered_copper_bulb}
*
@@ -7375,6 +7732,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_BULB = create(key("waxed_weathered_copper_bulb"));
/**
* {@code minecraft:waxed_weathered_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_CHAIN = create(key("waxed_weathered_copper_chain"));
/**
* {@code minecraft:waxed_weathered_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_CHEST = create(key("waxed_weathered_copper_chest"));
/**
* {@code minecraft:waxed_weathered_copper_door}
*
@@ -7382,6 +7753,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_DOOR = create(key("waxed_weathered_copper_door"));
/**
* {@code minecraft:waxed_weathered_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_GOLEM_STATUE = create(key("waxed_weathered_copper_golem_statue"));
/**
* {@code minecraft:waxed_weathered_copper_grate}
*
@@ -7389,6 +7767,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_GRATE = create(key("waxed_weathered_copper_grate"));
/**
* {@code minecraft:waxed_weathered_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_COPPER_LANTERN = create(key("waxed_weathered_copper_lantern"));
/**
* {@code minecraft:waxed_weathered_copper_trapdoor}
*
@@ -7417,6 +7802,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_CUT_COPPER_STAIRS = create(key("waxed_weathered_cut_copper_stairs"));
/**
* {@code minecraft:waxed_weathered_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WAXED_WEATHERED_LIGHTNING_ROD = create(key("waxed_weathered_lightning_rod"));
/**
* {@code minecraft:weathered_chiseled_copper}
*
@@ -7431,6 +7823,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WEATHERED_COPPER = create(key("weathered_copper"));
/**
* {@code minecraft:weathered_copper_bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_BARS = create(key("weathered_copper_bars"));
/**
* {@code minecraft:weathered_copper_bulb}
*
@@ -7438,6 +7837,20 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_BULB = create(key("weathered_copper_bulb"));
/**
* {@code minecraft:weathered_copper_chain}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_CHAIN = create(key("weathered_copper_chain"));
/**
* {@code minecraft:weathered_copper_chest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_CHEST = create(key("weathered_copper_chest"));
/**
* {@code minecraft:weathered_copper_door}
*
@@ -7445,6 +7858,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_DOOR = create(key("weathered_copper_door"));
/**
* {@code minecraft:weathered_copper_golem_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_GOLEM_STATUE = create(key("weathered_copper_golem_statue"));
/**
* {@code minecraft:weathered_copper_grate}
*
@@ -7452,6 +7872,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_GRATE = create(key("weathered_copper_grate"));
/**
* {@code minecraft:weathered_copper_lantern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_COPPER_LANTERN = create(key("weathered_copper_lantern"));
/**
* {@code minecraft:weathered_copper_trapdoor}
*
@@ -7480,6 +7907,13 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WEATHERED_CUT_COPPER_STAIRS = create(key("weathered_cut_copper_stairs"));
/**
* {@code minecraft:weathered_lightning_rod}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WEATHERED_LIGHTNING_ROD = create(key("weathered_lightning_rod"));
/**
* {@code minecraft:weeping_vines}
*
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class CatVariantKeys {
/**
* {@code minecraft:all_black}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class ChickenVariantKeys {
/**
* {@code minecraft:cold}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class CowVariantKeys {
/**
* {@code minecraft:cold}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class DamageTypeKeys {
/**
* {@code minecraft:arrow}
@@ -2,8 +2,8 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.datacomponent.DataComponentType;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class DataComponentTypeKeys {
/**
* {@code minecraft:attribute_modifiers}
@@ -0,0 +1,61 @@
package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.dialog.Dialog;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
import org.jspecify.annotations.NullMarked;
/**
* Vanilla keys for {@link RegistryKey#DIALOG}.
*
* @apiNote The fields provided here are a direct representation of
* what is available from the vanilla game source. They may be
* changed (including removals) on any Minecraft version
* bump, so cross-version compatibility is not provided on the
* same level as it is on most of the other API.
*/
@SuppressWarnings({
"unused",
"SpellCheckingInspection"
})
@NullMarked
@GeneratedClass
public final class DialogKeys {
/**
* {@code minecraft:custom_options}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Dialog> CUSTOM_OPTIONS = create(key("custom_options"));
/**
* {@code minecraft:quick_actions}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Dialog> QUICK_ACTIONS = create(key("quick_actions"));
/**
* {@code minecraft:server_links}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Dialog> SERVER_LINKS = create(key("server_links"));
private DialogKeys() {
}
/**
* Creates a typed key for {@link Dialog} in the registry {@code minecraft:dialog}.
*
* @param key the value's key in the registry
* @return a new typed key
*/
public static TypedKey<Dialog> create(final Key key) {
return TypedKey.create(RegistryKey.DIALOG, key);
}
}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class EnchantmentKeys {
/**
* {@code minecraft:aqua_affinity}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class FluidKeys {
/**
* {@code minecraft:empty}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class FrogVariantKeys {
/**
* {@code minecraft:cold}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class GameEventKeys {
/**
* {@code minecraft:block_activate}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class InstrumentKeys {
/**
* {@code minecraft:admire_goat_horn}
File diff suppressed because it is too large. Load diff
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class JukeboxSongKeys {
/**
* {@code minecraft:11}
@@ -88,6 +88,13 @@ public final class JukeboxSongKeys {
*/
public static final TypedKey<JukeboxSong> FAR = create(key("far"));
/**
* {@code minecraft:lava_chicken}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<JukeboxSong> LAVA_CHICKEN = create(key("lava_chicken"));
/**
* {@code minecraft:mall}
*
@@ -144,6 +151,13 @@ public final class JukeboxSongKeys {
*/
public static final TypedKey<JukeboxSong> STRAD = create(key("strad"));
/**
* {@code minecraft:tears}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<JukeboxSong> TEARS = create(key("tears"));
/**
* {@code minecraft:wait}
*
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class MapDecorationTypeKeys {
/**
* {@code minecraft:banner_black}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class MenuTypeKeys {
/**
* {@code minecraft:anvil}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class MobEffectKeys {
/**
* {@code minecraft:absorption}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class PaintingVariantKeys {
/**
* {@code minecraft:alban}
@@ -123,6 +123,13 @@ public final class PaintingVariantKeys {
*/
public static final TypedKey<Art> CREEBET = create(key("creebet"));
/**
* {@code minecraft:dennis}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Art> DENNIS = create(key("dennis"));
/**
* {@code minecraft:donkey_kong}
*
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class PigVariantKeys {
/**
* {@code minecraft:cold}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class SoundEventKeys {
/**
* {@code minecraft:ambient.basalt_deltas.additions}
@@ -1565,6 +1565,48 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_COPPER_BULB_TURN_ON = create(key("block.copper_bulb.turn_on"));
/**
* {@code minecraft:block.copper_chest.close}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_CLOSE = create(key("block.copper_chest.close"));
/**
* {@code minecraft:block.copper_chest.open}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_OPEN = create(key("block.copper_chest.open"));
/**
* {@code minecraft:block.copper_chest_oxidized.close}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_OXIDIZED_CLOSE = create(key("block.copper_chest_oxidized.close"));
/**
* {@code minecraft:block.copper_chest_oxidized.open}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_OXIDIZED_OPEN = create(key("block.copper_chest_oxidized.open"));
/**
* {@code minecraft:block.copper_chest_weathered.close}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_WEATHERED_CLOSE = create(key("block.copper_chest_weathered.close"));
/**
* {@code minecraft:block.copper_chest_weathered.open}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_CHEST_WEATHERED_OPEN = create(key("block.copper_chest_weathered.open"));
/**
* {@code minecraft:block.copper_door.close}
*
@@ -1579,6 +1621,41 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_COPPER_DOOR_OPEN = create(key("block.copper_door.open"));
/**
* {@code minecraft:block.copper_golem_statue.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_GOLEM_STATUE_BREAK = create(key("block.copper_golem_statue.break"));
/**
* {@code minecraft:block.copper_golem_statue.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_GOLEM_STATUE_FALL = create(key("block.copper_golem_statue.fall"));
/**
* {@code minecraft:block.copper_golem_statue.hit}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_GOLEM_STATUE_HIT = create(key("block.copper_golem_statue.hit"));
/**
* {@code minecraft:block.copper_golem_statue.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_GOLEM_STATUE_PLACE = create(key("block.copper_golem_statue.place"));
/**
* {@code minecraft:block.copper_golem_statue.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_COPPER_GOLEM_STATUE_STEP = create(key("block.copper_golem_statue.step"));
/**
* {@code minecraft:block.copper_grate.break}
*
@@ -1929,6 +2006,62 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_DISPENSER_LAUNCH = create(key("block.dispenser.launch"));
/**
* {@code minecraft:block.dried_ghast.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_AMBIENT = create(key("block.dried_ghast.ambient"));
/**
* {@code minecraft:block.dried_ghast.ambient_water}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_AMBIENT_WATER = create(key("block.dried_ghast.ambient_water"));
/**
* {@code minecraft:block.dried_ghast.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_BREAK = create(key("block.dried_ghast.break"));
/**
* {@code minecraft:block.dried_ghast.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_FALL = create(key("block.dried_ghast.fall"));
/**
* {@code minecraft:block.dried_ghast.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_PLACE = create(key("block.dried_ghast.place"));
/**
* {@code minecraft:block.dried_ghast.place_in_water}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_PLACE_IN_WATER = create(key("block.dried_ghast.place_in_water"));
/**
* {@code minecraft:block.dried_ghast.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_STEP = create(key("block.dried_ghast.step"));
/**
* {@code minecraft:block.dried_ghast.transition}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRIED_GHAST_TRANSITION = create(key("block.dried_ghast.transition"));
/**
* {@code minecraft:block.dripstone_block.break}
*
@@ -1964,6 +2097,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_DRIPSTONE_BLOCK_STEP = create(key("block.dripstone_block.step"));
/**
* {@code minecraft:block.dry_grass.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_DRY_GRASS_AMBIENT = create(key("block.dry_grass.ambient"));
/**
* {@code minecraft:block.enchantment_table.use}
*
@@ -4113,13 +4253,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_SAND_STEP = create(key("block.sand.step"));
/**
* {@code minecraft:block.sand.wind}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SAND_WIND = create(key("block.sand.wind"));
/**
* {@code minecraft:block.scaffolding.break}
*
@@ -4372,6 +4505,83 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_SCULK_VEIN_STEP = create(key("block.sculk_vein.step"));
/**
* {@code minecraft:block.shelf.activate}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_ACTIVATE = create(key("block.shelf.activate"));
/**
* {@code minecraft:block.shelf.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_BREAK = create(key("block.shelf.break"));
/**
* {@code minecraft:block.shelf.deactivate}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_DEACTIVATE = create(key("block.shelf.deactivate"));
/**
* {@code minecraft:block.shelf.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_FALL = create(key("block.shelf.fall"));
/**
* {@code minecraft:block.shelf.hit}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_HIT = create(key("block.shelf.hit"));
/**
* {@code minecraft:block.shelf.multi_swap}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MULTI_SWAP = create(key("block.shelf.multi_swap"));
/**
* {@code minecraft:block.shelf.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_PLACE = create(key("block.shelf.place"));
/**
* {@code minecraft:block.shelf.place_item}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_PLACE_ITEM = create(key("block.shelf.place_item"));
/**
* {@code minecraft:block.shelf.single_swap}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_SINGLE_SWAP = create(key("block.shelf.single_swap"));
/**
* {@code minecraft:block.shelf.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_STEP = create(key("block.shelf.step"));
/**
* {@code minecraft:block.shelf.take_item}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_TAKE_ITEM = create(key("block.shelf.take_item"));
/**
* {@code minecraft:block.shroomlight.break}
*
@@ -6276,6 +6486,139 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_COD_HURT = create(key("entity.cod.hurt"));
/**
* {@code minecraft:entity.copper_golem.death}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_DEATH = create(key("entity.copper_golem.death"));
/**
* {@code minecraft:entity.copper_golem.hurt}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_HURT = create(key("entity.copper_golem.hurt"));
/**
* {@code minecraft:entity.copper_golem.item_drop}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_ITEM_DROP = create(key("entity.copper_golem.item_drop"));
/**
* {@code minecraft:entity.copper_golem.item_no_drop}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_ITEM_NO_DROP = create(key("entity.copper_golem.item_no_drop"));
/**
* {@code minecraft:entity.copper_golem.no_item_get}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_NO_ITEM_GET = create(key("entity.copper_golem.no_item_get"));
/**
* {@code minecraft:entity.copper_golem.no_item_no_get}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_NO_ITEM_NO_GET = create(key("entity.copper_golem.no_item_no_get"));
/**
* {@code minecraft:entity.copper_golem.shear}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_SHEAR = create(key("entity.copper_golem.shear"));
/**
* {@code minecraft:entity.copper_golem.spawn}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_SPAWN = create(key("entity.copper_golem.spawn"));
/**
* {@code minecraft:entity.copper_golem.spin}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_SPIN = create(key("entity.copper_golem.spin"));
/**
* {@code minecraft:entity.copper_golem.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_STEP = create(key("entity.copper_golem.step"));
/**
* {@code minecraft:entity.copper_golem_become_statue}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_BECOME_STATUE = create(key("entity.copper_golem_become_statue"));
/**
* {@code minecraft:entity.copper_golem_oxidized.death}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_OXIDIZED_DEATH = create(key("entity.copper_golem_oxidized.death"));
/**
* {@code minecraft:entity.copper_golem_oxidized.hurt}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_OXIDIZED_HURT = create(key("entity.copper_golem_oxidized.hurt"));
/**
* {@code minecraft:entity.copper_golem_oxidized.spin}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_OXIDIZED_SPIN = create(key("entity.copper_golem_oxidized.spin"));
/**
* {@code minecraft:entity.copper_golem_oxidized.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_OXIDIZED_STEP = create(key("entity.copper_golem_oxidized.step"));
/**
* {@code minecraft:entity.copper_golem_weathered.death}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_WEATHERED_DEATH = create(key("entity.copper_golem_weathered.death"));
/**
* {@code minecraft:entity.copper_golem_weathered.hurt}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_WEATHERED_HURT = create(key("entity.copper_golem_weathered.hurt"));
/**
* {@code minecraft:entity.copper_golem_weathered.spin}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_WEATHERED_SPIN = create(key("entity.copper_golem_weathered.spin"));
/**
* {@code minecraft:entity.copper_golem_weathered.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_COPPER_GOLEM_WEATHERED_STEP = create(key("entity.copper_golem_weathered.step"));
/**
* {@code minecraft:entity.cow.ambient}
*
@@ -7207,6 +7550,34 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_GHAST_WARN = create(key("entity.ghast.warn"));
/**
* {@code minecraft:entity.ghastling.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_GHASTLING_AMBIENT = create(key("entity.ghastling.ambient"));
/**
* {@code minecraft:entity.ghastling.death}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_GHASTLING_DEATH = create(key("entity.ghastling.death"));
/**
* {@code minecraft:entity.ghastling.hurt}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_GHASTLING_HURT = create(key("entity.ghastling.hurt"));
/**
* {@code minecraft:entity.ghastling.spawn}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_GHASTLING_SPAWN = create(key("entity.ghastling.spawn"));
/**
* {@code minecraft:entity.glow_item_frame.add_item}
*
@@ -7452,6 +7823,62 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_GUARDIAN_HURT_LAND = create(key("entity.guardian.hurt_land"));
/**
* {@code minecraft:entity.happy_ghast.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_AMBIENT = create(key("entity.happy_ghast.ambient"));
/**
* {@code minecraft:entity.happy_ghast.death}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_DEATH = create(key("entity.happy_ghast.death"));
/**
* {@code minecraft:entity.happy_ghast.equip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_EQUIP = create(key("entity.happy_ghast.equip"));
/**
* {@code minecraft:entity.happy_ghast.harness_goggles_down}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_HARNESS_GOGGLES_DOWN = create(key("entity.happy_ghast.harness_goggles_down"));
/**
* {@code minecraft:entity.happy_ghast.harness_goggles_up}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_HARNESS_GOGGLES_UP = create(key("entity.happy_ghast.harness_goggles_up"));
/**
* {@code minecraft:entity.happy_ghast.hurt}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_HURT = create(key("entity.happy_ghast.hurt"));
/**
* {@code minecraft:entity.happy_ghast.riding}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_RIDING = create(key("entity.happy_ghast.riding"));
/**
* {@code minecraft:entity.happy_ghast.unequip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_HAPPY_GHAST_UNEQUIP = create(key("entity.happy_ghast.unequip"));
/**
* {@code minecraft:entity.hoglin.ambient}
*
@@ -7816,20 +8243,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_ITEM_FRAME_ROTATE_ITEM = create(key("entity.item_frame.rotate_item"));
/**
* {@code minecraft:entity.leash_knot.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_LEASH_KNOT_BREAK = create(key("entity.leash_knot.break"));
/**
* {@code minecraft:entity.leash_knot.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_LEASH_KNOT_PLACE = create(key("entity.leash_knot.place"));
/**
* {@code minecraft:entity.lightning_bolt.impact}
*
@@ -8880,13 +9293,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_POLAR_BEAR_WARNING = create(key("entity.polar_bear.warning"));
/**
* {@code minecraft:entity.puffer_fish.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_PUFFER_FISH_AMBIENT = create(key("entity.puffer_fish.ambient"));
/**
* {@code minecraft:entity.puffer_fish.blow_out}
*
@@ -10861,6 +11267,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ITEM_ARMOR_EQUIP_CHAIN = create(key("item.armor.equip_chain"));
/**
* {@code minecraft:item.armor.equip_copper}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_ARMOR_EQUIP_COPPER = create(key("item.armor.equip_copper"));
/**
* {@code minecraft:item.armor.equip_diamond}
*
@@ -11323,6 +11736,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ITEM_HONEYCOMB_WAX_ON = create(key("item.honeycomb.wax_on"));
/**
* {@code minecraft:item.horse_armor.unequip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_HORSE_ARMOR_UNEQUIP = create(key("item.horse_armor.unequip"));
/**
* {@code minecraft:item.ink_sac.use}
*
@@ -11330,6 +11750,34 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ITEM_INK_SAC_USE = create(key("item.ink_sac.use"));
/**
* {@code minecraft:item.lead.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_LEAD_BREAK = create(key("item.lead.break"));
/**
* {@code minecraft:item.lead.tied}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_LEAD_TIED = create(key("item.lead.tied"));
/**
* {@code minecraft:item.lead.untied}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_LEAD_UNTIED = create(key("item.lead.untied"));
/**
* {@code minecraft:item.llama_carpet.unequip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_LLAMA_CARPET_UNEQUIP = create(key("item.llama_carpet.unequip"));
/**
* {@code minecraft:item.lodestone_compass.lock}
*
@@ -11372,6 +11820,20 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ITEM_OMINOUS_BOTTLE_DISPOSE = create(key("item.ominous_bottle.dispose"));
/**
* {@code minecraft:item.saddle.unequip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_SADDLE_UNEQUIP = create(key("item.saddle.unequip"));
/**
* {@code minecraft:item.shears.snip}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ITEM_SHEARS_SNIP = create(key("item.shears.snip"));
/**
* {@code minecraft:item.shield.block}
*
@@ -11778,6 +12240,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> MUSIC_DISC_FAR = create(key("music_disc.far"));
/**
* {@code minecraft:music_disc.lava_chicken}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> MUSIC_DISC_LAVA_CHICKEN = create(key("music_disc.lava_chicken"));
/**
* {@code minecraft:music_disc.mall}
*
@@ -11834,6 +12303,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> MUSIC_DISC_STRAD = create(key("music_disc.strad"));
/**
* {@code minecraft:music_disc.tears}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> MUSIC_DISC_TEARS = create(key("music_disc.tears"));
/**
* {@code minecraft:music_disc.wait}
*
@@ -11925,6 +12401,13 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> UI_TOAST_OUT = create(key("ui.toast.out"));
/**
* {@code minecraft:weather.end_flash}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> WEATHER_END_FLASH = create(key("weather.end_flash"));
/**
* {@code minecraft:weather.rain}
*
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class StructureKeys {
/**
* {@code minecraft:ancient_city}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class StructureTypeKeys {
/**
* {@code minecraft:buried_treasure}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class TrimMaterialKeys {
/**
* {@code minecraft:amethyst}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class TrimPatternKeys {
/**
* {@code minecraft:bolt}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class VillagerProfessionKeys {
/**
* {@code minecraft:armorer}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class VillagerTypeKeys {
/**
* {@code minecraft:desert}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class WolfSoundVariantKeys {
/**
* {@code minecraft:angry}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import net.kyori.adventure.key.Key;
@@ -23,7 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@GeneratedClass
public final class WolfVariantKeys {
/**
* {@code minecraft:ashen}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.block.banner.PatternType;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class BannerPatternTagKeys {
/**
* {@code #minecraft:no_item_required}
@@ -113,7 +111,6 @@ public final class BannerPatternTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<PatternType> create(final Key key) {
return TagKey.create(RegistryKey.BANNER_PATTERN, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.block.Biome;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class BiomeTagKeys {
/**
* {@code #minecraft:allows_surface_slime_spawns}
@@ -540,7 +538,6 @@ public final class BiomeTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<Biome> create(final Key key) {
return TagKey.create(RegistryKey.BIOME, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.block.BlockType;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class BlockTypeTagKeys {
/**
* {@code #minecraft:acacia_logs}
@@ -132,6 +130,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> BANNERS = create(key("banners"));
/**
* {@code #minecraft:bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BARS = create(key("bars"));
/**
* {@code #minecraft:base_stone_nether}
*
@@ -272,6 +277,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CEILING_HANGING_SIGNS = create(key("ceiling_hanging_signs"));
/**
* {@code #minecraft:chains}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CHAINS = create(key("chains"));
/**
* {@code #minecraft:cherry_logs}
*
@@ -321,6 +333,27 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CONVERTABLE_TO_MUD = create(key("convertable_to_mud"));
/**
* {@code #minecraft:copper}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> COPPER = create(key("copper"));
/**
* {@code #minecraft:copper_chests}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> COPPER_CHESTS = create(key("copper_chests"));
/**
* {@code #minecraft:copper_golem_statues}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> COPPER_GOLEM_STATUES = create(key("copper_golem_statues"));
/**
* {@code #minecraft:copper_ores}
*
@@ -580,6 +613,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> GUARDED_BY_PIGLINS = create(key("guarded_by_piglins"));
/**
* {@code #minecraft:happy_ghast_avoids}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> HAPPY_GHAST_AVOIDS = create(key("happy_ghast_avoids"));
/**
* {@code #minecraft:hoglin_repellents}
*
@@ -601,6 +641,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> IMPERMEABLE = create(key("impermeable"));
/**
* {@code #minecraft:incorrect_for_copper_tool}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> INCORRECT_FOR_COPPER_TOOL = create(key("incorrect_for_copper_tool"));
/**
* {@code #minecraft:incorrect_for_diamond_tool}
*
@@ -692,6 +739,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> JUNGLE_LOGS = create(key("jungle_logs"));
/**
* {@code #minecraft:lanterns}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> LANTERNS = create(key("lanterns"));
/**
* {@code #minecraft:lapis_ores}
*
@@ -713,6 +767,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> LEAVES = create(key("leaves"));
/**
* {@code #minecraft:lightning_rods}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> LIGHTNING_RODS = create(key("lightning_rods"));
/**
* {@code #minecraft:logs}
*
@@ -909,13 +970,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> PLANKS = create(key("planks"));
/**
* {@code #minecraft:plays_ambient_desert_block_sounds}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> PLAYS_AMBIENT_DESERT_BLOCK_SOUNDS = create(key("plays_ambient_desert_block_sounds"));
/**
* {@code #minecraft:polar_bears_spawnable_on_alternate}
*
@@ -1203,6 +1257,27 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> TRAPDOORS = create(key("trapdoors"));
/**
* {@code #minecraft:triggers_ambient_desert_dry_vegetation_block_sounds}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> TRIGGERS_AMBIENT_DESERT_DRY_VEGETATION_BLOCK_SOUNDS = create(key("triggers_ambient_desert_dry_vegetation_block_sounds"));
/**
* {@code #minecraft:triggers_ambient_desert_sand_block_sounds}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> TRIGGERS_AMBIENT_DESERT_SAND_BLOCK_SOUNDS = create(key("triggers_ambient_desert_sand_block_sounds"));
/**
* {@code #minecraft:triggers_ambient_dried_ghast_block_sounds}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> TRIGGERS_AMBIENT_DRIED_GHAST_BLOCK_SOUNDS = create(key("triggers_ambient_dried_ghast_block_sounds"));
/**
* {@code #minecraft:underwater_bonemeals}
*
@@ -1329,6 +1404,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates"));
/**
* {@code #minecraft:wooden_shelves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> WOODEN_SHELVES = create(key("wooden_shelves"));
/**
* {@code #minecraft:wooden_slabs}
*
@@ -1373,7 +1455,6 @@ public final class BlockTypeTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<BlockType> create(final Key key) {
return TagKey.create(RegistryKey.BLOCK, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.damage.DamageType;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class DamageTypeTagKeys {
/**
* {@code #minecraft:always_hurts_ender_dragons}
@@ -267,7 +265,6 @@ public final class DamageTypeTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<DamageType> create(final Key key) {
return TagKey.create(RegistryKey.DAMAGE_TYPE, key);
}
@@ -0,0 +1,54 @@
package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.dialog.Dialog;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.jspecify.annotations.NullMarked;
/**
* Vanilla tag keys for {@link RegistryKey#DIALOG}.
*
* @apiNote The fields provided here are a direct representation of
* what is available from the vanilla game source. They may be
* changed (including removals) on any Minecraft version
* bump, so cross-version compatibility is not provided on the
* same level as it is on most of the other API.
*/
@SuppressWarnings({
"unused",
"SpellCheckingInspection"
})
@NullMarked
@GeneratedClass
public final class DialogTagKeys {
/**
* {@code #minecraft:pause_screen_additions}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Dialog> PAUSE_SCREEN_ADDITIONS = create(key("pause_screen_additions"));
/**
* {@code #minecraft:quick_actions}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Dialog> QUICK_ACTIONS = create(key("quick_actions"));
private DialogTagKeys() {
}
/**
* Creates a tag key for {@link Dialog} in the registry {@code minecraft:dialog}.
*
* @param key the tag key's key
* @return a new tag key
*/
public static TagKey<Dialog> create(final Key key) {
return TagKey.create(RegistryKey.DIALOG, key);
}
}
@@ -2,7 +2,7 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
@@ -25,8 +25,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class EnchantmentTagKeys {
/**
* {@code #minecraft:curse}
@@ -317,7 +316,6 @@ public final class EnchantmentTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<Enchantment> create(final Key key) {
return TagKey.create(RegistryKey.ENCHANTMENT, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.entity.EntityType;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,9 +23,15 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class EntityTypeTagKeys {
/**
* {@code #minecraft:accepts_iron_golem_gift}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> ACCEPTS_IRON_GOLEM_GIFT = create(key("accepts_iron_golem_gift"));
/**
* {@code #minecraft:aquatic}
*
@@ -83,6 +88,13 @@ public final class EntityTypeTagKeys {
*/
public static final TagKey<EntityType> CAN_BREATHE_UNDER_WATER = create(key("can_breathe_under_water"));
/**
* {@code #minecraft:can_equip_harness}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> CAN_EQUIP_HARNESS = create(key("can_equip_harness"));
/**
* {@code #minecraft:can_equip_saddle}
*
@@ -104,6 +116,20 @@ public final class EntityTypeTagKeys {
*/
public static final TagKey<EntityType> CAN_WEAR_HORSE_ARMOR = create(key("can_wear_horse_armor"));
/**
* {@code #minecraft:candidate_for_iron_golem_gift}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> CANDIDATE_FOR_IRON_GOLEM_GIFT = create(key("candidate_for_iron_golem_gift"));
/**
* {@code #minecraft:cannot_be_pushed_onto_boats}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> CANNOT_BE_PUSHED_ONTO_BOATS = create(key("cannot_be_pushed_onto_boats"));
/**
* {@code #minecraft:deflects_projectiles}
*
@@ -125,6 +151,13 @@ public final class EntityTypeTagKeys {
*/
public static final TagKey<EntityType> FALL_DAMAGE_IMMUNE = create(key("fall_damage_immune"));
/**
* {@code #minecraft:followable_friendly_mobs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> FOLLOWABLE_FRIENDLY_MOBS = create(key("followable_friendly_mobs"));
/**
* {@code #minecraft:freeze_hurts_extra_types}
*
@@ -295,7 +328,6 @@ public final class EntityTypeTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<EntityType> create(final Key key) {
return TagKey.create(RegistryKey.ENTITY_TYPE, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.Fluid;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class FluidTagKeys {
/**
* {@code #minecraft:lava}
@@ -50,7 +48,6 @@ public final class FluidTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<Fluid> create(final Key key) {
return TagKey.create(RegistryKey.FLUID, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.GameEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class GameEventTagKeys {
/**
* {@code #minecraft:allay_can_listen}
@@ -71,7 +69,6 @@ public final class GameEventTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<GameEvent> create(final Key key) {
return TagKey.create(RegistryKey.GAME_EVENT, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.MusicInstrument;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class InstrumentTagKeys {
/**
* {@code #minecraft:goat_horns}
@@ -57,7 +55,6 @@ public final class InstrumentTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<MusicInstrument> create(final Key key) {
return TagKey.create(RegistryKey.INSTRUMENT, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.inventory.ItemType;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class ItemTypeTagKeys {
/**
* {@code #minecraft:acacia_logs}
@@ -83,6 +81,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> BANNERS = create(key("banners"));
/**
* {@code #minecraft:bars}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> BARS = create(key("bars"));
/**
* {@code #minecraft:beacon_payment_items}
*
@@ -181,6 +186,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> CAT_FOOD = create(key("cat_food"));
/**
* {@code #minecraft:chains}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> CHAINS = create(key("chains"));
/**
* {@code #minecraft:cherry_logs}
*
@@ -244,6 +256,27 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> COMPLETES_FIND_TREE_TUTORIAL = create(key("completes_find_tree_tutorial"));
/**
* {@code #minecraft:copper}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> COPPER = create(key("copper"));
/**
* {@code #minecraft:copper_chests}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> COPPER_CHESTS = create(key("copper_chests"));
/**
* {@code #minecraft:copper_golem_statues}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> COPPER_GOLEM_STATUES = create(key("copper_golem_statues"));
/**
* {@code #minecraft:copper_ores}
*
@@ -251,6 +284,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> COPPER_ORES = create(key("copper_ores"));
/**
* {@code #minecraft:copper_tool_materials}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> COPPER_TOOL_MATERIALS = create(key("copper_tool_materials"));
/**
* {@code #minecraft:cow_food}
*
@@ -601,6 +641,27 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> HANGING_SIGNS = create(key("hanging_signs"));
/**
* {@code #minecraft:happy_ghast_food}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> HAPPY_GHAST_FOOD = create(key("happy_ghast_food"));
/**
* {@code #minecraft:happy_ghast_tempt_items}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> HAPPY_GHAST_TEMPT_ITEMS = create(key("happy_ghast_tempt_items"));
/**
* {@code #minecraft:harnesses}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> HARNESSES = create(key("harnesses"));
/**
* {@code #minecraft:head_armor}
*
@@ -664,6 +725,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> JUNGLE_LOGS = create(key("jungle_logs"));
/**
* {@code #minecraft:lanterns}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> LANTERNS = create(key("lanterns"));
/**
* {@code #minecraft:lapis_ores}
*
@@ -692,6 +760,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> LEG_ARMOR = create(key("leg_armor"));
/**
* {@code #minecraft:lightning_rods}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> LIGHTNING_RODS = create(key("lightning_rods"));
/**
* {@code #minecraft:llama_food}
*
@@ -902,6 +977,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> REPAIRS_CHAIN_ARMOR = create(key("repairs_chain_armor"));
/**
* {@code #minecraft:repairs_copper_armor}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> REPAIRS_COPPER_ARMOR = create(key("repairs_copper_armor"));
/**
* {@code #minecraft:repairs_diamond_armor}
*
@@ -965,6 +1047,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> SAPLINGS = create(key("saplings"));
/**
* {@code #minecraft:shearable_from_copper_golem}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> SHEARABLE_FROM_COPPER_GOLEM = create(key("shearable_from_copper_golem"));
/**
* {@code #minecraft:sheep_food}
*
@@ -1217,6 +1306,13 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> WOODEN_PRESSURE_PLATES = create(key("wooden_pressure_plates"));
/**
* {@code #minecraft:wooden_shelves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> WOODEN_SHELVES = create(key("wooden_shelves"));
/**
* {@code #minecraft:wooden_slabs}
*
@@ -1268,7 +1364,6 @@ public final class ItemTypeTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<ItemType> create(final Key key) {
return TagKey.create(RegistryKey.ITEM, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.Art;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class PaintingVariantTagKeys {
/**
* {@code #minecraft:placeable}
@@ -43,7 +41,6 @@ public final class PaintingVariantTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<Art> create(final Key key) {
return TagKey.create(RegistryKey.PAINTING_VARIANT, key);
}
@@ -2,12 +2,11 @@ package io.papermc.paper.registry.keys.tags;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.generated.GeneratedFrom;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.tag.TagKey;
import net.kyori.adventure.key.Key;
import org.bukkit.generator.structure.Structure;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
@@ -24,8 +23,7 @@ import org.jspecify.annotations.NullMarked;
"SpellCheckingInspection"
})
@NullMarked
@GeneratedFrom("1.21.5")
@ApiStatus.Experimental
@GeneratedClass
public final class StructureTagKeys {
/**
* {@code #minecraft:cats_spawn_as_black}
@@ -176,7 +174,6 @@ public final class StructureTagKeys {
* @param key the tag key's key
* @return a new tag key
*/
@ApiStatus.Experimental
public static TagKey<Structure> create(final Key key) {
return TagKey.create(RegistryKey.STRUCTURE, key);
}
@@ -51,8 +51,7 @@ import static co.aikar.timings.TimingsManager.MINUTE_REPORTS;
import static co.aikar.util.JSONUtil.*;
/**
* Internal.
*
* @hidden
* @deprecated Timings will be removed in the future
*/
@Deprecated(forRemoval = true)
@@ -82,9 +82,9 @@ public class LoadingMap <K, V> extends AbstractMap<K, V> {
/**
* Creates a LoadingMap with an auto instantiating loader.
*
* Will auto construct class of of Value when not found
* Will auto construct class of Value when not found
*
* Since this uses Reflection, It is more effecient to define your own static loader
* Since this uses Reflection, It is more efficient to define your own static loader
* than using this helper, but if performance is not critical, this is easier.
*
* @param backingMap Actual map being used.
@@ -102,9 +102,9 @@ public class LoadingMap <K, V> extends AbstractMap<K, V> {
/**
* Creates a LoadingMap with an auto instantiating loader.
*
* Will auto construct class of of Value when not found
* Will auto construct class of Value when not found
*
* Since this uses Reflection, It is more effecient to define your own static loader
* Since this uses Reflection, It is more efficient to define your own static loader
* than using this helper, but if performance is not critical, this is easier.
*
* @param backingMap Actual map being used.
@@ -1,5 +1,6 @@
package com.destroystokyo.paper;
import java.util.Locale;
import net.kyori.adventure.translation.Translatable;
import net.kyori.adventure.util.Index;
import org.bukkit.inventory.MainHand;
@@ -29,9 +30,11 @@ public final class ClientOption<T> {
}
public enum ChatVisibility implements Translatable {
FULL("full"),
SYSTEM("system"),
HIDDEN("hidden"),
// Start generate - ChatVisibility
FULL("options.chat.visibility.full"),
SYSTEM("options.chat.visibility.system"),
HIDDEN("options.chat.visibility.hidden"),
// End generate - ChatVisibility
/**
* @deprecated no longer used anymore since 1.15.2, the value fallback
* to the default value of the setting when unknown on the server.
@@ -40,37 +43,39 @@ public final class ClientOption<T> {
@Deprecated(since = "1.15.2", forRemoval = true)
UNKNOWN("unknown");
public static final Index<String, ChatVisibility> NAMES = Index.create(ChatVisibility.class, chatVisibility -> chatVisibility.name);
private final String name;
public static final Index<String, ChatVisibility> NAMES = Index.create(ChatVisibility.class, chatVisibility -> chatVisibility.name().toLowerCase(Locale.ENGLISH));
private final String translationKey;
ChatVisibility(final String name) {
this.name = name;
ChatVisibility(final String translationKey) {
this.translationKey = translationKey;
}
@Override
public String translationKey() {
if (this == UNKNOWN) {
throw new UnsupportedOperationException(this.name + " doesn't have a translation key");
throw new UnsupportedOperationException(this.name() + " doesn't have a translation key");
}
return "options.chat.visibility." + this.name;
return this.translationKey;
}
}
public enum ParticleVisibility implements Translatable {
ALL("all"),
DECREASED("decreased"),
MINIMAL("minimal");
// Start generate - ParticleVisibility
ALL("options.particles.all"),
DECREASED("options.particles.decreased"),
MINIMAL("options.particles.minimal");
// End generate - ParticleVisibility
public static final Index<String, ParticleVisibility> NAMES = Index.create(ParticleVisibility.class, particleVisibility -> particleVisibility.name);
private final String name;
public static final Index<String, ParticleVisibility> NAMES = Index.create(ParticleVisibility.class, particleVisibility -> particleVisibility.name().toLowerCase(Locale.ENGLISH));
private final String translationKey;
ParticleVisibility(final String name) {
this.name = name;
ParticleVisibility(final String translationKey) {
this.translationKey = translationKey;
}
@Override
public String translationKey() {
return "options.particles." + this.name;
return this.translationKey;
}
}
}
@@ -6,18 +6,17 @@ package com.destroystokyo.paper;
import com.google.common.collect.Lists;
import io.papermc.paper.tag.BaseTag;
import java.util.Collection;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.data.BlockData;
import org.bukkit.inventory.ItemStack;
import java.util.Collection;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -94,7 +93,8 @@ public class MaterialSetTag extends BaseTag<Material, MaterialSetTag> {
return isTagged(item.getType());
}
@Override
public boolean isTagged(@NotNull Material material) {
return this.tagged.contains(material);
return super.isTagged(material);
}
}
@@ -23,6 +23,7 @@
package com.destroystokyo.paper;
import java.util.Objects;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.Tag;
@@ -38,19 +39,32 @@ import org.bukkit.Tag;
public class MaterialTags {
private static NamespacedKey keyFor(String key) {
//noinspection deprecation
return new NamespacedKey("paper", key + "_settag");
}
public static final MaterialSetTag ARROWS = new MaterialSetTag(keyFor("arrows"))
.endsWith("ARROW")
.ensureSize("ARROWS", 3).lock();
private static MaterialSetTag replacedBy(Tag<Material> vanillaTag) {
return replacedBy(vanillaTag, Objects.requireNonNull(vanillaTag).key().value());
}
@SuppressWarnings("unchecked")
private static MaterialSetTag replacedBy(Tag<Material> vanillaTag, String legacyKey) {
Objects.requireNonNull(vanillaTag);
return new MaterialSetTag(keyFor(legacyKey)).add(vanillaTag).lock();
}
/**
* @deprecated in favour of {@link Tag#ITEMS_ARROWS}
*/
@Deprecated(since = "1.21.8")
public static final MaterialSetTag ARROWS = replacedBy(Tag.ITEMS_ARROWS);
/**
* Covers all colors of beds.
*
* @deprecated in favour of {@link Tag#BEDS}
*/
public static final MaterialSetTag BEDS = new MaterialSetTag(keyFor("beds"))
.endsWith("_BED")
.ensureSize("BEDS", 16).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag BEDS = replacedBy(Tag.BEDS);
/**
* Covers all bucket items.
@@ -61,9 +75,11 @@ public class MaterialTags {
/**
* Covers coal and charcoal.
*
* @deprecated in favour of {@link Tag#ITEMS_COALS}
*/
public static final MaterialSetTag COALS = new MaterialSetTag(keyFor("coals"))
.add(Material.COAL, Material.CHARCOAL).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag COALS = replacedBy(Tag.ITEMS_COALS);
/**
* Covers both cobblestone wall variants.
@@ -87,10 +103,11 @@ public class MaterialTags {
/**
* Covers all colors of concrete powder.
*
* @deprecated in favour of {@link Tag#CONCRETE_POWDER}
*/
public static final MaterialSetTag CONCRETE_POWDER = new MaterialSetTag(keyFor("concrete_powder"))
.endsWith("_CONCRETE_POWDER")
.ensureSize("CONCRETE_POWDER", 16).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag CONCRETE_POWDER = replacedBy(Tag.CONCRETE_POWDER);
/**
* Covers the two types of cooked fish.
@@ -100,10 +117,11 @@ public class MaterialTags {
/**
* Covers all variants of doors.
*
* @deprecated in favour of {@link Tag#DOORS}
*/
public static final MaterialSetTag DOORS = new MaterialSetTag(keyFor("doors"))
.endsWith("_DOOR")
.ensureSize("DOORS", 21).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag DOORS = replacedBy(Tag.DOORS);
/**
* Covers all dyes.
@@ -114,17 +132,19 @@ public class MaterialTags {
/**
* Covers all variants of gates.
*
* @deprecated in favour of {@link Tag#FENCE_GATES}
*/
public static final MaterialSetTag FENCE_GATES = new MaterialSetTag(keyFor("fence_gates"))
.endsWith("_GATE")
.ensureSize("FENCE_GATES", 12).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag FENCE_GATES = replacedBy(Tag.FENCE_GATES);
/**
* Covers all variants of fences.
*
* @deprecated in favour of {@link Tag#FENCES}
*/
public static final MaterialSetTag FENCES = new MaterialSetTag(keyFor("fences"))
.endsWith("_FENCE")
.ensureSize("FENCES", 13).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag FENCES = replacedBy(Tag.FENCES);
/**
* Covers all variants of fish buckets.
@@ -133,7 +153,7 @@ public class MaterialTags {
.add(Material.COD_BUCKET, Material.PUFFERFISH_BUCKET, Material.SALMON_BUCKET, Material.TROPICAL_FISH_BUCKET).lock();
/**
* Covers the non-colored glass and 16 stained glass (not panes).
* Covers the non-colored glass and 16 stained glasses (not panes).
*/
public static final MaterialSetTag GLASS = new MaterialSetTag(keyFor("glass"))
.endsWith("_GLASS")
@@ -182,7 +202,7 @@ public class MaterialTags {
*/
public static final MaterialSetTag HORSE_ARMORS = new MaterialSetTag(keyFor("horse_armors"))
.endsWith("_HORSE_ARMOR")
.ensureSize("HORSE_ARMORS", 4).lock();
.ensureSize("HORSE_ARMORS", 5).lock();
/**
* Covers the variants of infested blocks.
@@ -214,10 +234,11 @@ public class MaterialTags {
/**
* Covers all ores.
*/
@SuppressWarnings("unchecked")
public static final MaterialSetTag ORES = new MaterialSetTag(keyFor("ores"))
.add(Material.ANCIENT_DEBRIS)
.endsWith("_ORE")
.ensureSize("ORES", 19).lock();
.add(Tag.COAL_ORES, Tag.COPPER_ORES, Tag.IRON_ORES, Tag.GOLD_ORES,
Tag.LAPIS_ORES, Tag.REDSTONE_ORES, Tag.DIAMOND_ORES, Tag.EMERALD_ORES)
.add(Material.ANCIENT_DEBRIS, Material.NETHER_QUARTZ_ORE).lock();
/**
* Covers all piston typed items and blocks including the piston head and moving piston.
@@ -235,10 +256,11 @@ public class MaterialTags {
/**
* Covers all wooden pressure plates and the weighted pressure plates and the stone pressure plate.
*
* @deprecated in favour of {@link Tag#PRESSURE_PLATES}
*/
public static final MaterialSetTag PRESSURE_PLATES = new MaterialSetTag(keyFor("pressure_plates"))
.endsWith("_PRESSURE_PLATE")
.ensureSize("PRESSURE_PLATES", 16).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag PRESSURE_PLATES = replacedBy(Tag.PRESSURE_PLATES);
/**
* Covers the variants of prismarine blocks.
@@ -298,10 +320,11 @@ public class MaterialTags {
/**
* Covers the non-colored and colored shulker boxes.
*
* @deprecated in favour of {@link Tag#SHULKER_BOXES}
*/
public static final MaterialSetTag SHULKER_BOXES = new MaterialSetTag(keyFor("shulker_boxes"))
.endsWith("SHULKER_BOX")
.ensureSize("SHULKER_BOXES", 17).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag SHULKER_BOXES = replacedBy(Tag.SHULKER_BOXES);
/**
* Covers zombie, creeper, skeleton, dragon, and player heads.
@@ -317,7 +340,7 @@ public class MaterialTags {
*/
public static final MaterialSetTag SPAWN_EGGS = new MaterialSetTag(keyFor("spawn_eggs"))
.endsWith("_SPAWN_EGG")
.ensureSize("SPAWN_EGGS", 81).lock();
.ensureSize("SPAWN_EGGS", 83).lock();
/**
* Covers all colors of stained glass.
@@ -335,43 +358,43 @@ public class MaterialTags {
/**
* Covers all variants of trapdoors.
*
* @deprecated in favour of {@link Tag#TRAPDOORS}
*/
public static final MaterialSetTag TRAPDOORS = new MaterialSetTag(keyFor("trapdoors"))
.endsWith("_TRAPDOOR")
.ensureSize("TRAPDOORS", 21).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag TRAPDOORS = replacedBy(Tag.TRAPDOORS);
/**
* Covers all wood variants of doors.
*
* @deprecated in favour of {@link Tag#WOODEN_DOORS}
*/
public static final MaterialSetTag WOODEN_DOORS = new MaterialSetTag(keyFor("wooden_doors"))
.endsWith("_DOOR")
.not(Material.IRON_DOOR)
.notContains("COPPER")
.ensureSize("WOODEN_DOORS", 12).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag WOODEN_DOORS = replacedBy(Tag.WOODEN_DOORS);
/**
* Covers all wood variants of fences.
*
* @deprecated in favour of {@link Tag#WOODEN_FENCES}
*/
public static final MaterialSetTag WOODEN_FENCES = new MaterialSetTag(keyFor("wooden_fences"))
.endsWith("_FENCE")
.not(Material.NETHER_BRICK_FENCE)
.ensureSize("WOODEN_FENCES", 12).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag WOODEN_FENCES = replacedBy(Tag.WOODEN_FENCES);
/**
* Covers all wood variants of trapdoors.
*
* @deprecated in favour of {@link Tag#WOODEN_TRAPDOORS}
*/
public static final MaterialSetTag WOODEN_TRAPDOORS = new MaterialSetTag(keyFor("wooden_trapdoors"))
.endsWith("_TRAPDOOR")
.not(Material.IRON_TRAPDOOR)
.notContains("COPPER")
.ensureSize("WOODEN_TRAPDOORS", 12).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag WOODEN_TRAPDOORS = replacedBy(Tag.WOODEN_TRAPDOORS);
/**
* Covers the wood variants of gates.
*
* @deprecated in favour of {@link Tag#FENCE_GATES}
*/
public static final MaterialSetTag WOODEN_GATES = new MaterialSetTag(keyFor("wooden_gates"))
.endsWith("_GATE")
.ensureSize("WOODEN_GATES", 12).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag WOODEN_GATES = replacedBy(Tag.FENCE_GATES, "wooden_gates");
/**
* Covers the variants of purpur.
@@ -382,10 +405,11 @@ public class MaterialTags {
/**
* Covers the variants of signs.
*
* @deprecated in favour of {@link Tag#ALL_SIGNS}
*/
public static final MaterialSetTag SIGNS = new MaterialSetTag(keyFor("signs"))
.endsWith("_SIGN")
.ensureSize("SIGNS", 48).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag SIGNS = replacedBy(Tag.ALL_SIGNS, "signs");
/**
* Covers the variants of a regular torch.
@@ -408,112 +432,137 @@ public class MaterialTags {
.add(Material.SOUL_TORCH, Material.SOUL_WALL_TORCH)
.ensureSize("SOUL_TORCH", 2).lock();
/**
* Covers the variants of a copper torch.
*/
public static final MaterialSetTag COPPER_TORCH = new MaterialSetTag(keyFor("copper_torch"))
.add(Material.COPPER_TORCH, Material.COPPER_WALL_TORCH)
.ensureSize("COPPER_TORCH", 2).lock();
/**
* Covers the variants of torches.
*/
public static final MaterialSetTag TORCHES = new MaterialSetTag(keyFor("torches"))
.add(TORCH, REDSTONE_TORCH, SOUL_TORCH)
.ensureSize("TORCHES", 6).lock();
.add(TORCH, REDSTONE_TORCH, SOUL_TORCH, COPPER_TORCH)
.ensureSize("TORCHES", 8).lock();
/**
* Covers the variants of lanterns.
*
* @deprecated in favour of {@link Tag#LANTERNS}
*/
public static final MaterialSetTag LANTERNS = new MaterialSetTag(keyFor("lanterns"))
.add(Material.LANTERN, Material.SOUL_LANTERN)
.ensureSize("LANTERNS", 2).lock();
@Deprecated(since = "1.21.9")
public static final MaterialSetTag LANTERNS = replacedBy(Tag.LANTERNS);
/**
* Covers the variants of rails.
*
* @deprecated in favour of {@link Tag#RAILS}
*/
public static final MaterialSetTag RAILS = new MaterialSetTag(keyFor("rails"))
.endsWith("RAIL")
.ensureSize("RAILS", 4).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag RAILS = replacedBy(Tag.RAILS);
/**
* Covers the variants of swords.
*
* @deprecated in favour of {@link Tag#ITEMS_SWORDS}
*/
public static final MaterialSetTag SWORDS = new MaterialSetTag(keyFor("swords"))
.endsWith("_SWORD")
.ensureSize("SWORDS", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag SWORDS = replacedBy(Tag.ITEMS_SWORDS);
/**
* Covers the variants of shovels.
*
* @deprecated in favour of {@link Tag#ITEMS_SHOVELS}
*/
public static final MaterialSetTag SHOVELS = new MaterialSetTag(keyFor("shovels"))
.endsWith("_SHOVEL")
.ensureSize("SHOVELS", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag SHOVELS = replacedBy(Tag.ITEMS_SHOVELS);
/**
* Covers the variants of pickaxes.
*
* @deprecated in favour of {@link Tag#ITEMS_PICKAXES}
*/
public static final MaterialSetTag PICKAXES = new MaterialSetTag(keyFor("pickaxes"))
.endsWith("_PICKAXE")
.ensureSize("PICKAXES", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag PICKAXES = replacedBy(Tag.ITEMS_PICKAXES);
/**
* Covers the variants of axes.
*
* @deprecated in favour of {@link Tag#ITEMS_AXES}
*/
public static final MaterialSetTag AXES = new MaterialSetTag(keyFor("axes"))
.endsWith("_AXE")
.ensureSize("AXES", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag AXES = replacedBy(Tag.ITEMS_AXES);
/**
* Covers the variants of hoes.
*
* @deprecated in favour of {@link Tag#ITEMS_HOES}
*/
public static final MaterialSetTag HOES = new MaterialSetTag(keyFor("hoes"))
.endsWith("_HOE")
.ensureSize("HOES", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag HOES = replacedBy(Tag.ITEMS_HOES);
/**
* Covers the variants of helmets.
*
* @deprecated in favour of {@link Tag#ITEMS_HEAD_ARMOR}
*/
public static final MaterialSetTag HELMETS = new MaterialSetTag(keyFor("helmets"))
.endsWith("_HELMET")
.ensureSize("HELMETS", 7).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag HELMETS = replacedBy(Tag.ITEMS_HEAD_ARMOR, "helmets");
/**
* Covers the variants of items that can be equipped in the helmet slot.
*
* @deprecated any item can be equippable with the right data component set on it
*/
@Deprecated(since = "1.21.8")
@SuppressWarnings("unchecked")
public static final MaterialSetTag HEAD_EQUIPPABLE = new MaterialSetTag(keyFor("head_equippable"))
.endsWith("_HELMET")
.add(SKULLS)
.add(Material.CARVED_PUMPKIN)
.ensureSize("HEAD_EQUIPPABLE", 22).lock();
.add(Tag.ITEMS_HEAD_ARMOR, Tag.ITEMS_SKULLS)
.add(Material.CARVED_PUMPKIN).lock();
/**
* Covers the variants of chestplate.
*
* @deprecated in favour of {@link Tag#ITEMS_CHEST_ARMOR}
*/
public static final MaterialSetTag CHESTPLATES = new MaterialSetTag(keyFor("chestplates"))
.endsWith("_CHESTPLATE")
.ensureSize("CHESTPLATES", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag CHESTPLATES = replacedBy(Tag.ITEMS_CHEST_ARMOR, "chestplates");
/**
* Covers the variants of items that can be equipped in the chest slot.
*
* @deprecated any item can be equippable with the right data component set on it
*/
@Deprecated(since = "1.21.8")
@SuppressWarnings("unchecked")
public static final MaterialSetTag CHEST_EQUIPPABLE = new MaterialSetTag(keyFor("chest_equippable"))
.endsWith("_CHESTPLATE")
.add(Material.ELYTRA)
.ensureSize("CHEST_EQUIPPABLE", 7).lock();
.add(Tag.ITEMS_CHEST_ARMOR)
.add(Material.ELYTRA).lock();
/**
* Covers the variants of leggings.
*
* @deprecated in favour of {@link Tag#ITEMS_LEG_ARMOR}
*/
public static final MaterialSetTag LEGGINGS = new MaterialSetTag(keyFor("leggings"))
.endsWith("_LEGGINGS")
.ensureSize("LEGGINGS", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag LEGGINGS = replacedBy(Tag.ITEMS_LEG_ARMOR, "leggings");
/**
* Covers the variants of boots.
*
* @deprecated in favour of {@link Tag#ITEMS_FOOT_ARMOR}
*/
public static final MaterialSetTag BOOTS = new MaterialSetTag(keyFor("boots"))
.endsWith("_BOOTS")
.ensureSize("BOOTS", 6).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag BOOTS = replacedBy(Tag.ITEMS_FOOT_ARMOR, "boots");
/**
* Covers all variants of armor.
*/
public static final MaterialSetTag ARMOR = new MaterialSetTag(keyFor("armor")).add(HELMETS, CHESTPLATES, LEGGINGS, BOOTS)
.ensureSize("ARMOR", 25).lock();
@SuppressWarnings("unchecked")
public static final MaterialSetTag ARMOR = new MaterialSetTag(keyFor("armor"))
.add(Tag.ITEMS_HEAD_ARMOR, Tag.ITEMS_CHEST_ARMOR, Tag.ITEMS_LEG_ARMOR, Tag.ITEMS_FOOT_ARMOR)
.lock();
/**
* Covers the variants of bows.
@@ -521,21 +570,27 @@ public class MaterialTags {
public static final MaterialSetTag BOWS = new MaterialSetTag(keyFor("bows"))
.add(Material.BOW)
.add(Material.CROSSBOW)
.ensureSize("BOWS", 2).lock();
.lock();
/**
* Covers the variants of player-throwable projectiles (not requiring a bow or any other "assistance").
*/
@SuppressWarnings("unchecked")
public static final MaterialSetTag THROWABLE_PROJECTILES = new MaterialSetTag(keyFor("throwable_projectiles"))
.add(Material.EGG, Material.SNOWBALL, Material.SPLASH_POTION, Material.TRIDENT, Material.ENDER_PEARL, Material.EXPERIENCE_BOTTLE, Material.FIREWORK_ROCKET).lock();
.add(Tag.ITEMS_EGGS)
.add(Material.SNOWBALL, Material.SPLASH_POTION, Material.LINGERING_POTION,
Material.TRIDENT, Material.ENDER_PEARL, Material.EXPERIENCE_BOTTLE, Material.FIREWORK_ROCKET,
Material.WIND_CHARGE)
.lock();
/**
* Covers materials that can be colored, such as wool, shulker boxes, stained glass etc.
* Covers materials that can be colored, such as wool, shulker boxes, stained glasses etc.
*/
@SuppressWarnings("unchecked")
public static final MaterialSetTag COLORABLE = new MaterialSetTag(keyFor("colorable"))
.add(Tag.WOOL, Tag.CARPETS).add(SHULKER_BOXES, STAINED_GLASS, STAINED_GLASS_PANES, CONCRETES, BEDS).lock();
//.ensureSize("COLORABLE", 81).lock(); unit test don't have the vanilla item tags, so counts don't line up for real
.add(Tag.WOOL, Tag.WOOL_CARPETS, Tag.SHULKER_BOXES, Tag.BEDS)
.add(STAINED_GLASS, STAINED_GLASS_PANES, CONCRETES)
.lock();
/**
* Covers the variants of coral.
@@ -561,15 +616,11 @@ public class MaterialTags {
/**
* Covers all items that can be enchanted from the enchantment table or anvil.
*
* @deprecated in favour of {@link Tag#ITEMS_ENCHANTABLE_VANISHING} and other similar enchantable tags
*/
public static final MaterialSetTag ENCHANTABLE = new MaterialSetTag(keyFor("enchantable"))
.add(PICKAXES, SWORDS, SHOVELS, AXES, HOES, HELMETS, CHEST_EQUIPPABLE, LEGGINGS, BOOTS, BOWS)
.add(Material.TRIDENT, Material.SHIELD, Material.FISHING_ROD, Material.SHEARS,
Material.FLINT_AND_STEEL, Material.CARROT_ON_A_STICK, Material.WARPED_FUNGUS_ON_A_STICK,
Material.BRUSH, Material.CARVED_PUMPKIN, Material.COMPASS, Material.SKELETON_SKULL,
Material.WITHER_SKELETON_SKULL, Material.PLAYER_HEAD, Material.ZOMBIE_HEAD,
Material.CREEPER_HEAD, Material.DRAGON_HEAD, Material.PIGLIN_HEAD, Material.MACE)
.ensureSize("ENCHANTABLE", 76).lock();
@Deprecated(since = "1.21.8")
public static final MaterialSetTag ENCHANTABLE = replacedBy(Tag.ITEMS_ENCHANTABLE_VANISHING, "enchantable"); // this tag already cover the others
/**
* Covers the variants of raw ores.
@@ -601,19 +652,19 @@ public class MaterialTags {
* Covers all oxidized copper blocks.
*/
public static final MaterialSetTag OXIDIZED_COPPER_BLOCKS = new MaterialSetTag(keyFor("oxidized_copper_blocks"))
.startsWith("OXIDIZED_").startsWith("WAXED_OXIDIZED_").ensureSize("OXIDIZED_COPPER_BLOCKS", 18).lock();
.startsWith("OXIDIZED_").startsWith("WAXED_OXIDIZED_").ensureSize("OXIDIZED_COPPER_BLOCKS", 30).lock();
/**
* Covers all weathered copper blocks.
*/
public static final MaterialSetTag WEATHERED_COPPER_BLOCKS = new MaterialSetTag(keyFor("weathered_copper_blocks"))
.startsWith("WEATHERED_").startsWith("WAXED_WEATHERED_").ensureSize("WEATHERED_COPPER_BLOCKS", 18).lock();
.startsWith("WEATHERED_").startsWith("WAXED_WEATHERED_").ensureSize("WEATHERED_COPPER_BLOCKS", 30).lock();
/**
* Covers all exposed copper blocks.
*/
public static final MaterialSetTag EXPOSED_COPPER_BLOCKS = new MaterialSetTag(keyFor("exposed_copper_blocks"))
.startsWith("EXPOSED_").startsWith("WAXED_EXPOSED_").ensureSize("EXPOSED_COPPER_BLOCKS", 18).lock();
.startsWith("EXPOSED_").startsWith("WAXED_EXPOSED_").ensureSize("EXPOSED_COPPER_BLOCKS", 30).lock();
/**
* Covers all un-weathered copper blocks.
@@ -622,8 +673,11 @@ public class MaterialTags {
.startsWith("CUT_COPPER").startsWith("WAXED_CUT_COPPER")
.startsWith("WAXED_COPPER_").startsWith("COPPER_")
.add(Material.CHISELED_COPPER, Material.WAXED_CHISELED_COPPER)
.not(Material.COPPER_INGOT, Material.COPPER_ORE)
.ensureSize("UNAFFECTED_COPPER_BLOCKS", 18).lock();
.not(Material.COPPER_INGOT, Material.COPPER_ORE, Material.COPPER_NUGGET)
.not(Material.COPPER_HORSE_ARMOR, Material.COPPER_GOLEM_SPAWN_EGG)
.not(Material.COPPER_HELMET, Material.COPPER_CHESTPLATE, Material.COPPER_LEGGINGS, Material.COPPER_BOOTS)
.not(Material.COPPER_AXE, Material.COPPER_HOE, Material.COPPER_PICKAXE, Material.COPPER_SHOVEL, Material.COPPER_SWORD)
.ensureSize("UNAFFECTED_COPPER_BLOCKS", 30).lock();
/**
* Covers all waxed copper blocks.
@@ -631,7 +685,7 @@ public class MaterialTags {
* Combine with other copper-related tags to filter is-waxed or not.
*/
public static final MaterialSetTag WAXED_COPPER_BLOCKS = new MaterialSetTag(keyFor("waxed_copper_blocks"))
.add(m -> m.name().startsWith("WAXED_") && m.name().contains("COPPER")).ensureSize("WAXED_COPPER_BLOCKS", 36).lock();
.add(m -> m.name().startsWith("WAXED_") && m.name().contains("COPPER")).ensureSize("WAXED_COPPER_BLOCKS", 56).lock();
/**
* Covers all un-waxed copper blocks.
@@ -642,13 +696,14 @@ public class MaterialTags {
.startsWith("EXPOSED_").startsWith("WEATHERED_").startsWith("OXIDIZED_")
.startsWith("CUT_COPPER")
.add(Material.COPPER_BLOCK, Material.CHISELED_COPPER, Material.COPPER_DOOR, Material.COPPER_TRAPDOOR, Material.COPPER_GRATE, Material.COPPER_BULB)
.ensureSize("UNWAXED_COPPER_BLOCKS", 36).lock();
.add(Material.COPPER_BARS, Material.COPPER_TORCH, Material.COPPER_CHEST, Material.COPPER_CHAIN, Material.COPPER_WALL_TORCH, Material.COPPER_LANTERN, Material.COPPER_GOLEM_STATUE)
.ensureSize("UNWAXED_COPPER_BLOCKS", 61).lock();
/**
* Covers all copper block variants.
*/
public static final MaterialSetTag COPPER_BLOCKS = new MaterialSetTag(keyFor("copper_blocks"))
.add(WAXED_COPPER_BLOCKS).add(UNWAXED_COPPER_BLOCKS).ensureSize("COPPER_BLOCKS", 72).lock();
.add(WAXED_COPPER_BLOCKS).add(UNWAXED_COPPER_BLOCKS).ensureSize("COPPER_BLOCKS", 117).lock();
/**
* Covers all weathering/waxed states of the plain copper block.
@@ -693,6 +748,13 @@ public class MaterialTags {
.add(Material.STONE_AXE, Material.STONE_HOE, Material.STONE_PICKAXE, Material.STONE_SHOVEL, Material.STONE_SWORD)
.ensureSize("STONE_TOOLS", 5).lock();
/**
* Covers all copper Tools.
*/
public static final MaterialSetTag COPPER_TOOLS = new MaterialSetTag(keyFor("copper_tools"))
.add(Material.COPPER_AXE, Material.COPPER_HOE, Material.COPPER_PICKAXE, Material.COPPER_SHOVEL, Material.COPPER_SWORD)
.ensureSize("COPPER_TOOLS", 5).lock();
/**
* Covers all Iron Tools.
*/
@@ -1,7 +1,25 @@
package com.destroystokyo.paper;
import io.papermc.paper.InternalAPIBridge;
import org.jetbrains.annotations.Contract;
import org.jspecify.annotations.NullMarked;
/**
* Represents the different parts of a player's skin that can be toggled on or off.
*/
@NullMarked
public interface SkinParts {
/**
* Creates a new instance of {@link SkinParts} with all parts enabled.
*
* @return a new {@link SkinParts} instance
*/
@Contract(value = "-> new", pure = true)
static SkinParts.Mutable allParts() {
return InternalAPIBridge.get().allSkinParts();
}
boolean hasCapeEnabled();
boolean hasJacketEnabled();
@@ -17,4 +35,25 @@ public interface SkinParts {
boolean hasHatsEnabled();
int getRaw();
Mutable mutableCopy();
interface Mutable extends SkinParts {
void setCapeEnabled(boolean enabled);
void setJacketEnabled(boolean enabled);
void setLeftSleeveEnabled(boolean enabled);
void setRightSleeveEnabled(boolean enabled);
void setLeftPantsEnabled(boolean enabled);
void setRightPantsEnabled(boolean enabled);
void setHatsEnabled(boolean enabled);
SkinParts immutableCopy();
}
}
@@ -162,7 +162,7 @@ public final class Title {
/**
* Creates a new title.
*
* <p>It is recommended to the {@link BaseComponent} constrctors.</p>
* <p>It is recommended to use the {@link BaseComponent} constructors.</p>
*
* @param title the main text of the title
* @param subtitle the secondary text of the title
@@ -234,7 +234,7 @@ public final class Title {
}
/**
* Sends the title directly to an player
* Sends the title directly to a player
*
* @param player the receiver of the title
*/
@@ -315,7 +315,7 @@ public final class Title {
/**
* Sets the title to the given text.
*
* <p>It is recommended to the {@link BaseComponent} methods.</p>
* <p>It is recommended to use the {@link BaseComponent} methods.</p>
*
* @param title the title text
* @return this builder instance
@@ -352,7 +352,7 @@ public final class Title {
/**
* Sets the subtitle to the given text.
*
* <p>It is recommended to the {@link BaseComponent} methods.</p>
* <p>It is recommended to use the {@link BaseComponent} methods.</p>
*
* @param subtitle the title text
* @return this builder instance
@@ -52,7 +52,7 @@ public interface Pathfinder {
* The behavior of this PathResult is subject to the games pathfinding rules, and may
* result in the pathfinding automatically updating to follow the target Entity.
* <p>
* However, this behavior is not guaranteed, and is subject to the games behavior.
* However, this behavior is not guaranteed, and is subject to the game's behavior.
*
* @param target the Entity to navigate to
* @return The closest Location the Entity can get to for this navigation, or null if no path could be calculated
@@ -90,7 +90,7 @@ public interface Pathfinder {
* The behavior of this PathResult is subject to the games pathfinding rules, and may
* result in the pathfinding automatically updating to follow the target Entity.
* <p>
* However, this behavior is not guaranteed, and is subject to the games behavior.
* However, this behavior is not guaranteed, and is subject to the game's behavior.
*
* @param target the Entity to navigate to
* @return If the pathfinding was successfully started
@@ -106,7 +106,7 @@ public interface Pathfinder {
* The behavior of this PathResult is subject to the games pathfinding rules, and may
* result in the pathfinding automatically updating to follow the target Entity.
* <p>
* However, this behavior is not guaranteed, and is subject to the games behavior.
* However, this behavior is not guaranteed, and is subject to the game's behavior.
*
* @param target the Entity to navigate to
* @param speed Speed multiplier to navigate at, where 1 is 'normal'
@@ -15,45 +15,46 @@ import org.jspecify.annotations.Nullable;
@NullMarked
public final class GoalKey<T extends Mob> {
private final Class<T> entityClass;
private final NamespacedKey namespacedKey;
private final Class<T> type;
private final NamespacedKey key;
private GoalKey(Class<T> entityClass, NamespacedKey namespacedKey) {
this.entityClass = entityClass;
this.namespacedKey = namespacedKey;
private GoalKey(Class<T> type, NamespacedKey key) {
this.type = type;
this.key = key;
}
public Class<T> getEntityClass() {
return this.entityClass;
return this.type;
}
public NamespacedKey getNamespacedKey() {
return this.namespacedKey;
return this.key;
}
@Override
public boolean equals(@Nullable Object o) {
if (this == o) return true;
if (o == null || this.getClass() != o.getClass()) return false;
GoalKey<?> goalKey = (GoalKey<?>) o;
return Objects.equals(this.entityClass, goalKey.entityClass) &&
Objects.equals(this.namespacedKey, goalKey.namespacedKey);
return Objects.equals(this.type, goalKey.type) &&
Objects.equals(this.key, goalKey.key);
}
@Override
public int hashCode() {
return Objects.hash(this.entityClass, this.namespacedKey);
return Objects.hash(this.type, this.key);
}
@Override
public String toString() {
return new StringJoiner(", ", GoalKey.class.getSimpleName() + "[", "]")
.add("entityClass=" + this.entityClass)
.add("namespacedKey=" + this.namespacedKey)
.add("type=" + this.type)
.add("key=" + this.key)
.toString();
}
public static <A extends Mob> GoalKey<A> of(Class<A> entityClass, NamespacedKey namespacedKey) {
return new GoalKey<>(entityClass, namespacedKey);
public static <A extends Mob> GoalKey<A> of(Class<A> type, NamespacedKey key) {
return new GoalKey<>(type, key);
}
}
@@ -1,6 +1,5 @@
package com.destroystokyo.paper.entity.ai;
import java.util.Collection;
import org.bukkit.entity.Mob;
import org.jspecify.annotations.NullMarked;
@@ -34,6 +34,7 @@ import org.jspecify.annotations.NullMarked;
public class AsyncPlayerSendCommandsEvent<S extends CommandSourceStack> extends PlayerEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final RootCommandNode<S> node;
private final boolean hasFiredAsync;
@@ -18,11 +18,12 @@ import org.jspecify.annotations.NullMarked;
public class AsyncPlayerSendSuggestionsEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private boolean cancelled = false;
private Suggestions suggestions;
private final String buffer;
private boolean cancelled;
@ApiStatus.Internal
public AsyncPlayerSendSuggestionsEvent(final Player player, final Suggestions suggestions, final String buffer) {
super(player, !Bukkit.isPrimaryThread());
@@ -57,9 +58,6 @@ public class AsyncPlayerSendSuggestionsEvent extends PlayerEvent implements Canc
this.suggestions = suggestions;
}
/**
* {@inheritDoc}
*/
@Override
public boolean isCancelled() {
return this.cancelled;
@@ -67,6 +65,7 @@ public class AsyncPlayerSendSuggestionsEvent extends PlayerEvent implements Canc
/**
* Cancels sending suggestions to the client.
* <p>
* {@inheritDoc}
*/
@Override
@@ -9,7 +9,6 @@ import org.bukkit.command.Command;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.server.ServerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
@@ -19,15 +18,14 @@ import org.jetbrains.annotations.NotNull;
* This is done at Plugin Enable time after commands have been registered, but may also
* run at a later point in the server lifetime due to plugins, a server reload, etc.</p>
*
* <p>This is a draft/experimental API and is subject to change.</p>
* @deprecated For removal, use the new brigadier api.
*/
@ApiStatus.Experimental
@Deprecated(since = "1.20.6")
@Warning(reason = "This event has been superseded by the Commands API and will be removed in a future release. Listen to LifecycleEvents.COMMANDS instead.", value = true)
public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource> extends ServerEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private static final HandlerList HANDLER_LIST = new HandlerList();
private final String commandLabel;
private final Command command;
private final com.destroystokyo.paper.brigadier.BukkitBrigadierCommand<S> brigadierCommand;
@@ -35,7 +33,8 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
private final ArgumentCommandNode<S, String> defaultArgs;
private LiteralCommandNode<S> literal;
private boolean rawCommand = false;
private boolean cancelled = false;
private boolean cancelled;
public CommandRegisteredEvent(String commandLabel, com.destroystokyo.paper.brigadier.BukkitBrigadierCommand<S> brigadierCommand, Command command, RootCommandNode<S> root, LiteralCommandNode<S> literal, ArgumentCommandNode<S, String> defaultArgs) {
this.commandLabel = commandLabel;
@@ -140,9 +139,6 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
this.rawCommand = rawCommand;
}
/**
* {@inheritDoc}
*/
@Override
public boolean isCancelled() {
return this.cancelled;
@@ -151,7 +147,7 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
/**
* Cancels registering this command to Brigadier, but will remain in Bukkit Command Map. Can be used to hide a
* command from all players.
*
* <p>
* {@inheritDoc}
*/
@Override
@@ -161,11 +157,11 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
@NotNull
public HandlerList getHandlers() {
return handlers;
return HANDLER_LIST;
}
@NotNull
public static HandlerList getHandlerList() {
return handlers;
return HANDLER_LIST;
}
}
@@ -94,10 +94,10 @@ public class PlayerArmorChangeEvent extends PlayerEvent {
*/
@Deprecated(since = "1.21.4")
public enum SlotType {
HEAD(NETHERITE_HELMET, DIAMOND_HELMET, GOLDEN_HELMET, IRON_HELMET, CHAINMAIL_HELMET, LEATHER_HELMET, CARVED_PUMPKIN, PLAYER_HEAD, SKELETON_SKULL, ZOMBIE_HEAD, CREEPER_HEAD, WITHER_SKELETON_SKULL, TURTLE_HELMET, DRAGON_HEAD, PIGLIN_HEAD),
CHEST(NETHERITE_CHESTPLATE, DIAMOND_CHESTPLATE, GOLDEN_CHESTPLATE, IRON_CHESTPLATE, CHAINMAIL_CHESTPLATE, LEATHER_CHESTPLATE, ELYTRA),
LEGS(NETHERITE_LEGGINGS, DIAMOND_LEGGINGS, GOLDEN_LEGGINGS, IRON_LEGGINGS, CHAINMAIL_LEGGINGS, LEATHER_LEGGINGS),
FEET(NETHERITE_BOOTS, DIAMOND_BOOTS, GOLDEN_BOOTS, IRON_BOOTS, CHAINMAIL_BOOTS, LEATHER_BOOTS);
HEAD(COPPER_HELMET, NETHERITE_HELMET, DIAMOND_HELMET, GOLDEN_HELMET, IRON_HELMET, CHAINMAIL_HELMET, LEATHER_HELMET, CARVED_PUMPKIN, PLAYER_HEAD, SKELETON_SKULL, ZOMBIE_HEAD, CREEPER_HEAD, WITHER_SKELETON_SKULL, TURTLE_HELMET, DRAGON_HEAD, PIGLIN_HEAD),
CHEST(COPPER_CHESTPLATE, NETHERITE_CHESTPLATE, DIAMOND_CHESTPLATE, GOLDEN_CHESTPLATE, IRON_CHESTPLATE, CHAINMAIL_CHESTPLATE, LEATHER_CHESTPLATE, ELYTRA),
LEGS(COPPER_LEGGINGS, NETHERITE_LEGGINGS, DIAMOND_LEGGINGS, GOLDEN_LEGGINGS, IRON_LEGGINGS, CHAINMAIL_LEGGINGS, LEATHER_LEGGINGS),
FEET(COPPER_BOOTS, NETHERITE_BOOTS, DIAMOND_BOOTS, GOLDEN_BOOTS, IRON_BOOTS, CHAINMAIL_BOOTS, LEATHER_BOOTS);
private final Set<Material> types;
@@ -221,12 +221,10 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
}
/**
* Determines if this event is cancelled.
* {@inheritDoc}
* <p>
* When this event is cancelled, custom handshake logic will not
* be processed.
*
* @return {@code true} if this event is cancelled, {@code false} otherwise
*/
@Override
public boolean isCancelled() {
@@ -234,12 +232,10 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
}
/**
* Sets if this event is cancelled.
* {@inheritDoc}
* <p>
* When this event is cancelled, custom handshake logic will not
* be processed.
*
* @param cancel {@code true} if this event is cancelled, {@code false} otherwise
*/
@Override
public void setCancelled(final boolean cancel) {
@@ -40,8 +40,6 @@ public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
* If this event is cancelled, the player will be moved or
* teleported back to the Location as defined by {@link #getFrom()}. This will not
* fire an event
*
* @return {@code true} if this event is cancelled
*/
@Override
public boolean isCancelled() {
@@ -54,8 +52,6 @@ public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
* If this event is cancelled, the player will be moved or
* teleported back to the Location as defined by {@link #getFrom()}. This will not
* fire an event
*
* @param cancel {@code true} if you wish to cancel this event
*/
@Override
public void setCancelled(final boolean cancel) {
@@ -6,6 +6,8 @@ import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import java.util.Objects;
import java.util.UUID;
/**
* Allows a plugin to be notified anytime AFTER a Profile has been looked up from the Mojang API
@@ -28,8 +30,28 @@ public class LookupProfileEvent extends Event {
}
/**
* @return The profile that was recently looked up. This profile can be mutated
* Gets the name of the profile that was looked up.
*
* @return the name of the profile
*/
public String getName() {
return Objects.requireNonNull(this.profile.getName(), "profile name");
}
/**
* Gets the UUID of the profile that was looked up.
*
* @return the UUID of the profile
*/
public UUID getId() {
return Objects.requireNonNull(this.profile.getId(), "profile id");
}
/**
* @return The profile that was recently looked up. This profile can be mutated
* @deprecated This event is only called after UUID lookups, properties set here will be ignored. Use {@link FillProfileEvent} for setting properties.
*/
@Deprecated(forRemoval = true, since = "1.21.9")
public PlayerProfile getPlayerProfile() {
return this.profile;
}
@@ -69,7 +69,9 @@ public class PreLookupProfileEvent extends Event {
/**
* @return The currently pending pre-populated properties.
* Any property in this Set will be automatically prefilled on this Profile
* @deprecated This event is only called for UUID lookups, properties set here will be ignored. Use {@link PreFillProfileEvent} for setting properties.
*/
@Deprecated(forRemoval = true, since = "1.21.9")
public Set<ProfileProperty> getProfileProperties() {
return this.properties;
}
@@ -79,18 +81,22 @@ public class PreLookupProfileEvent extends Event {
* Any property in this Set will be automatically prefilled on this Profile
*
* @param properties The properties to add
* @deprecated This event is only called for UUID lookups, properties set here will be ignored. Use {@link PreFillProfileEvent} for setting properties.
*/
@Deprecated(forRemoval = true, since = "1.21.9")
public void setProfileProperties(final Set<ProfileProperty> properties) {
this.properties = new HashSet<>();
this.properties.addAll(properties);
}
/**
* Adds any properties currently missing to the pre-populated properties set, replacing any that already were set.
* Adds any properties currently missing to the pre-populated properties set, replacing any that already were set. Use {@link PreFillProfileEvent} for setting properties.
* Any property in this Set will be automatically prefilled on this Profile
*
* @param properties The properties to add
* @deprecated This event is only called for UUID lookups, properties set here will be ignored.
*/
@Deprecated(forRemoval = true, since = "1.21.9")
public void addProfileProperties(final Set<ProfileProperty> properties) {
this.properties.addAll(properties);
}
@@ -477,7 +477,7 @@ public class PaperServerListPingEvent extends ServerListPingEvent implements Can
}
@Override
public org.bukkit.profile.@NotNull PlayerProfile clone() {
public @NotNull PlayerProfile clone() {
throw new UnsupportedOperationException();
}
@@ -4,15 +4,18 @@ import java.util.Collection;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import net.kyori.adventure.text.object.PlayerHeadObjectContents;
import org.bukkit.profile.PlayerTextures;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import static net.kyori.adventure.text.object.PlayerHeadObjectContents.property;
/**
* Represents a players profile for the game, such as UUID, Name, and textures.
*/
@NullMarked
public interface PlayerProfile extends org.bukkit.profile.PlayerProfile {
public interface PlayerProfile extends org.bukkit.profile.PlayerProfile, PlayerHeadObjectContents.SkinSource {
/**
* @return The players name, if set
@@ -51,7 +54,7 @@ public interface PlayerProfile extends org.bukkit.profile.PlayerProfile {
* This will build a snapshot of the current texture data once
* requested inside PlayerTextures.
*
* @return the textures, not <code>null</code>
* @return the textures
*/
@Override
PlayerTextures getTextures();
@@ -59,14 +62,14 @@ public interface PlayerProfile extends org.bukkit.profile.PlayerProfile {
/**
* Copies the given textures.
*
* @param textures the textures to copy, or <code>null</code> to clear the
* @param textures the textures to copy, or {@code null} to clear the
* textures
*/
@Override
void setTextures(@Nullable PlayerTextures textures);
/**
* @return A Mutable set of this players properties, such as textures.
* @return A Mutable set of this player's properties, such as textures.
* Values specified here are subject to implementation details.
*/
Set<ProfileProperty> getProperties();
@@ -243,4 +246,27 @@ public interface PlayerProfile extends org.bukkit.profile.PlayerProfile {
default boolean hasTextures() {
return this.hasProperty("textures");
}
/**
* {@inheritDoc}
*
* @return the cloned player profile.
*/
@Override
PlayerProfile clone();
@Override
default void applySkinToPlayerHeadContents(final PlayerHeadObjectContents.Builder builder) {
if (this.getProperties().isEmpty() && (this.getName() != null) != (this.getId() != null)) {
if (this.getId() != null) {
builder.id(this.getId());
} else {
builder.name(this.getName());
}
return;
}
builder.id(this.getId())
.name(this.getName())
.profileProperties(this.getProperties().stream().map(prop -> property(prop.getName(), prop.getValue(), prop.getSignature())).toList());
}
}
@@ -3,6 +3,9 @@ package com.destroystokyo.paper.util;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* @hidden
*/
@ApiStatus.Internal
@NullMarked
public final class SneakyThrow {
@@ -40,6 +40,9 @@ public interface VersionFetcher {
return getVersionMessage();
}
/**
* @hidden
*/
@ApiStatus.Internal
class DummyVersionFetcher implements VersionFetcher {
@@ -1,37 +0,0 @@
package com.destroystokyo.paper.utils;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.LongAdder;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
@NullMarked
@ApiStatus.Internal
public class CachedSizeConcurrentLinkedQueue<E> extends ConcurrentLinkedQueue<E> {
private final LongAdder cachedSize = new LongAdder();
@Override
public boolean add(final E e) {
final boolean result = super.add(e);
if (result) {
this.cachedSize.increment();
}
return result;
}
@Override
public @Nullable E poll() {
final E result = super.poll();
if (result != null) {
this.cachedSize.decrement();
}
return result;
}
@Override
public int size() {
return this.cachedSize.intValue();
}
}
@@ -1,16 +1,23 @@
package io.papermc.paper;
import com.destroystokyo.paper.SkinParts;
import io.papermc.paper.command.brigadier.CommandSourceStack;
import io.papermc.paper.datacomponent.item.ResolvableProfile;
import io.papermc.paper.world.damagesource.CombatEntry;
import io.papermc.paper.world.damagesource.FallLocationType;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.util.Services;
import org.bukkit.block.Biome;
import org.bukkit.damage.DamageEffect;
import org.bukkit.damage.DamageSource;
import org.bukkit.entity.LivingEntity;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import java.util.function.Predicate;
/**
* Static bridge to the server internals.
* <p>
@@ -50,7 +57,7 @@ public interface InternalAPIBridge {
@Deprecated(forRemoval = true, since = "1.21.5")
@ApiStatus.ScheduledForRemoval(inVersion = "1.22")
Biome constructLegacyCustomBiome();
/**
* Creates a new combat entry.
* <p>
@@ -73,5 +80,22 @@ public interface InternalAPIBridge {
* @return combat entry
*/
CombatEntry createCombatEntry(DamageSource damageSource, float damage, @Nullable FallLocationType fallLocationType, float fallDistance);
/**
* Causes this predicate to be considered restricted.
* Applying this to a command node prevents this command from being executed from an
* unattended context, such as click events.
*
* @param predicate wrapped predicate
* @return wrapped predicate
*/
Predicate<CommandSourceStack> restricted(Predicate<CommandSourceStack> predicate);
ResolvableProfile defaultMannequinProfile();
@Contract(value = "-> new", pure = true)
SkinParts.Mutable allSkinParts();
Component defaultMannequinDescription();
}
@@ -1,4 +1,4 @@
package io.papermc.paper.generated;
package io.papermc.paper.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -8,14 +8,12 @@ import java.lang.annotation.Target;
import org.jetbrains.annotations.ApiStatus;
/**
* Used to mark classes which are generated from
* a specific version of minecraft.
* Used to mark classes which are generated.
* Any manual changes will be overwritten.
*/
@ApiStatus.Internal
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface GeneratedFrom {
String value();
public @interface GeneratedClass {
}
@@ -4,15 +4,12 @@ import java.util.Collection;
import java.util.Collections;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Implementing this interface allows for easily creating "Bukkit-style" {@code String[] args} commands.
* The implementation handles converting the command to a representation compatible with Brigadier on registration, usually in the form of {@literal /commandlabel <greedy_string>}.
*/
@ApiStatus.Experimental
@NullMarked
@FunctionalInterface
public interface BasicCommand {
@@ -17,7 +17,8 @@ public enum CommandRegistrationFlag {
@Deprecated(since = "1.21.4")
FLATTEN_ALIASES,
/**
* Prevents this command from being sent to the client.
* @deprecated Removed as it causes a warning to appear on the client now.
*/
@Deprecated(since = "1.21.6", forRemoval = true)
SERVER_ONLY
}
@@ -6,7 +6,6 @@ import org.bukkit.Location;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Entity;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
@@ -21,8 +20,6 @@ import org.jspecify.annotations.Nullable;
* exist yet, or no specific sender is available. Methods on such a {@link CommandSender}
* will either have no effect or throw an {@link UnsupportedOperationException}.</p>
*/
@ApiStatus.Experimental
@NullMarked
@ApiStatus.NonExtendable
public interface CommandSourceStack {
@@ -5,6 +5,7 @@ import com.mojang.brigadier.arguments.ArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import com.mojang.brigadier.builder.RequiredArgumentBuilder;
import com.mojang.brigadier.tree.LiteralCommandNode;
import io.papermc.paper.InternalAPIBridge;
import io.papermc.paper.plugin.bootstrap.BootstrapContext;
import io.papermc.paper.plugin.bootstrap.PluginBootstrap;
import io.papermc.paper.plugin.configuration.PluginMeta;
@@ -13,9 +14,9 @@ import io.papermc.paper.plugin.lifecycle.event.registrar.Registrar;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import java.util.function.Predicate;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Unmodifiable;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
@@ -58,8 +59,6 @@ import org.jspecify.annotations.Nullable;
*
* @see io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents#COMMANDS
*/
@ApiStatus.Experimental
@NullMarked
@ApiStatus.NonExtendable
public interface Commands extends Registrar {
@@ -85,6 +84,22 @@ public interface Commands extends Registrar {
return RequiredArgumentBuilder.argument(name, argumentType);
}
/**
* Creates a restricted {@link Predicate} that wraps the given predicate.
* <p>
* A restricted predicate prevents execution in unattended contexts, such as from
* chat click events. A warning is shown on the client before executing the command.
* <p>
* This is used by vanilla to prevent invocation of sensitive commands (like op) from
* players without their knowledge.
*
* @param predicate the original predicate to wrap
* @return a new predicate with restricted execution behavior
*/
static Predicate<CommandSourceStack> restricted(final Predicate<CommandSourceStack> predicate) {
return InternalAPIBridge.get().restricted(predicate);
}
/**
* Gets the underlying {@link CommandDispatcher}.
*
@@ -1,16 +1,15 @@
package io.papermc.paper.command.brigadier;
import com.mojang.brigadier.Message;
import java.util.Optional;
import java.util.ServiceLoader;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.ComponentSerializer;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* A component serializer for converting between {@link Message} and {@link Component}.
*/
@ApiStatus.Experimental
@NullMarked
@ApiStatus.NonExtendable
public interface MessageComponentSerializer extends ComponentSerializer<Component, Component, Message> {
@@ -20,6 +19,9 @@ public interface MessageComponentSerializer extends ComponentSerializer<Componen
* @return serializer instance
*/
static MessageComponentSerializer message() {
return MessageComponentSerializerHolder.PROVIDER.orElseThrow();
final class Holder {
static final Optional<MessageComponentSerializer> PROVIDER = ServiceLoader.load(MessageComponentSerializer.class, MessageComponentSerializer.class.getClassLoader()).findFirst();
}
return Holder.PROVIDER.orElseThrow();
}
}
@@ -1,12 +0,0 @@
package io.papermc.paper.command.brigadier;
import java.util.Optional;
import java.util.ServiceLoader;
import org.jetbrains.annotations.ApiStatus;
@ApiStatus.Internal
final class MessageComponentSerializerHolder {
static final Optional<MessageComponentSerializer> PROVIDER = ServiceLoader.load(MessageComponentSerializer.class)
.findFirst();
}
@@ -1,10 +1,14 @@
package io.papermc.paper.command.brigadier.argument;
import com.mojang.brigadier.arguments.ArgumentType;
import io.papermc.paper.command.brigadier.argument.predicate.BlockInWorldPredicate;
import io.papermc.paper.command.brigadier.argument.predicate.ItemStackPredicate;
import io.papermc.paper.command.brigadier.argument.range.DoubleRangeProvider;
import io.papermc.paper.command.brigadier.argument.range.IntegerRangeProvider;
import io.papermc.paper.command.brigadier.argument.resolvers.AngleResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.BlockPositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.ColumnBlockPositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.ColumnFinePositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.FinePositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.PlayerProfileListResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.RotationResolver;
@@ -13,11 +17,14 @@ import io.papermc.paper.command.brigadier.argument.resolvers.selector.PlayerSele
import io.papermc.paper.entity.LookAnchor;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import java.util.Set;
import java.util.UUID;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.Style;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Axis;
import org.bukkit.GameMode;
import org.bukkit.HeightMap;
import org.bukkit.NamespacedKey;
@@ -29,7 +36,6 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.scoreboard.Criteria;
import org.bukkit.scoreboard.DisplaySlot;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import static io.papermc.paper.command.brigadier.argument.VanillaArgumentProvider.provider;
@@ -41,8 +47,6 @@ import static io.papermc.paper.command.brigadier.argument.VanillaArgumentProvide
*
* <p>{@link CustomArgumentType} is provided for customizing parsing or result types server-side, while sending the vanilla argument type to the client.</p>
*/
@ApiStatus.Experimental
@NullMarked
public final class ArgumentTypes {
/**
@@ -104,6 +108,26 @@ public final class ArgumentTypes {
return provider().blockPosition();
}
/**
* A column block position argument.
*
* @return column block position argument
*/
@ApiStatus.Experimental
public static ArgumentType<ColumnBlockPositionResolver> columnBlockPosition() {
return provider().columnBlockPosition();
}
/**
* A block predicate argument.
*
* @return block predicate argument
*/
@ApiStatus.Experimental
public static ArgumentType<BlockInWorldPredicate> blockInWorldPredicate() {
return provider().blockInWorldPredicate();
}
/**
* A fine position argument.
*
@@ -124,6 +148,28 @@ public final class ArgumentTypes {
return provider().finePosition(centerIntegers);
}
/**
* A column fine position argument.
*
* @return column fine position argument
* @see #columnFinePosition(boolean) to center whole numbers
*/
@ApiStatus.Experimental
public static ArgumentType<ColumnFinePositionResolver> columnFinePosition() {
return columnFinePosition(false);
}
/**
* A column fine position argument.
*
* @param centerIntegers if whole numbers should be centered (+0.5)
* @return column fine position argument
*/
@ApiStatus.Experimental
public static ArgumentType<ColumnFinePositionResolver> columnFinePosition(final boolean centerIntegers) {
return provider().columnFinePosition(centerIntegers);
}
/**
* A rotation argument.
*
@@ -133,6 +179,27 @@ public final class ArgumentTypes {
return provider().rotation();
}
/**
* An angle argument.
*
* @return angle argument
*/
@ApiStatus.Experimental
public static ArgumentType<AngleResolver> angle() {
return provider().angle();
}
/**
* An argument used to resolve a set of axes.
*
* @return a set of axes.
* @see org.bukkit.Axis
*/
@ApiStatus.Experimental
public static ArgumentType<AxisSet> axes() {
return provider().axes();
}
/**
* A blockstate argument which will provide rich parsing for specifying
* the specific block variant and then the block entity NBT if applicable.
@@ -171,6 +238,15 @@ public final class ArgumentTypes {
return provider().namedColor();
}
/**
* A hex color argument.
*
* @return argument
*/
public static ArgumentType<TextColor> hexColor() {
return provider().hexColor();
}
/**
* A component argument.
*
@@ -0,0 +1,12 @@
package io.papermc.paper.command.brigadier.argument;
import com.mojang.brigadier.context.CommandContext;
import org.bukkit.Axis;
import java.util.Set;
/**
* A set of {@link Axis} intended for use in {@link CommandContext#getArgument(String, Class)} instead of a raw {@link Set}.
*/
public interface AxisSet extends Set<Axis> {
}
@@ -9,7 +9,6 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder;
import java.util.Collection;
import java.util.concurrent.CompletableFuture;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* An argument type that wraps around a native-to-vanilla argument type.
@@ -23,8 +22,6 @@ import org.jspecify.annotations.NullMarked;
* @param <T> custom type
* @param <N> type with an argument native to vanilla Minecraft (from {@link ArgumentTypes})
*/
@ApiStatus.Experimental
@NullMarked
public interface CustomArgumentType<T, N> extends ArgumentType<T> {
/**
@@ -107,7 +104,6 @@ public interface CustomArgumentType<T, N> extends ArgumentType<T> {
* @param <T> custom type
* @param <N> type with an argument native to vanilla Minecraft (from {@link ArgumentTypes})
*/
@ApiStatus.Experimental
interface Converted<T, N> extends CustomArgumentType<T, N> {
@ApiStatus.NonExtendable
@@ -3,12 +3,10 @@ package io.papermc.paper.command.brigadier.argument;
import com.mojang.brigadier.context.CommandContext;
import io.papermc.paper.registry.RegistryKey;
import io.papermc.paper.registry.TypedKey;
import org.jspecify.annotations.NullMarked;
/**
* Utilities for extracting registry-related arguments from a {@link CommandContext}.
*/
@NullMarked
public final class RegistryArgumentExtractor {
/**
@@ -6,15 +6,12 @@ import io.papermc.paper.command.brigadier.CommandSourceStack;
import java.util.concurrent.CompletableFuture;
import net.kyori.adventure.chat.SignedMessage;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* A resolver for a {@link SignedMessage}
*
* @see ArgumentTypes#signedMessage()
*/
@ApiStatus.Experimental
@NullMarked
@ApiStatus.NonExtendable
public interface SignedMessageResolver {
@@ -38,5 +35,4 @@ public interface SignedMessageResolver {
* @throws CommandSyntaxException syntax exception
*/
CompletableFuture<SignedMessage> resolveSignedMessage(String argumentName, CommandContext<CommandSourceStack> context) throws CommandSyntaxException;
}
@@ -1,10 +1,14 @@
package io.papermc.paper.command.brigadier.argument;
import com.mojang.brigadier.arguments.ArgumentType;
import io.papermc.paper.command.brigadier.argument.predicate.BlockInWorldPredicate;
import io.papermc.paper.command.brigadier.argument.predicate.ItemStackPredicate;
import io.papermc.paper.command.brigadier.argument.range.DoubleRangeProvider;
import io.papermc.paper.command.brigadier.argument.range.IntegerRangeProvider;
import io.papermc.paper.command.brigadier.argument.resolvers.AngleResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.BlockPositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.ColumnBlockPositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.ColumnFinePositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.FinePositionResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.PlayerProfileListResolver;
import io.papermc.paper.command.brigadier.argument.resolvers.RotationResolver;
@@ -20,6 +24,7 @@ import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.Style;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.GameMode;
import org.bukkit.HeightMap;
import org.bukkit.NamespacedKey;
@@ -31,14 +36,11 @@ import org.bukkit.inventory.ItemStack;
import org.bukkit.scoreboard.Criteria;
import org.bukkit.scoreboard.DisplaySlot;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
@ApiStatus.Internal
@NullMarked
interface VanillaArgumentProvider {
Optional<VanillaArgumentProvider> PROVIDER = ServiceLoader.load(VanillaArgumentProvider.class)
.findFirst();
Optional<VanillaArgumentProvider> PROVIDER = ServiceLoader.load(VanillaArgumentProvider.class, VanillaArgumentProvider.class.getClassLoader()).findFirst();
static VanillaArgumentProvider provider() {
return PROVIDER.orElseThrow();
@@ -56,18 +58,30 @@ interface VanillaArgumentProvider {
ArgumentType<BlockPositionResolver> blockPosition();
ArgumentType<ColumnBlockPositionResolver> columnBlockPosition();
ArgumentType<FinePositionResolver> finePosition(boolean centerIntegers);
ArgumentType<ColumnFinePositionResolver> columnFinePosition(boolean centerIntegers);
ArgumentType<RotationResolver> rotation();
ArgumentType<AngleResolver> angle();
ArgumentType<AxisSet> axes();
ArgumentType<BlockState> blockState();
ArgumentType<BlockInWorldPredicate> blockInWorldPredicate();
ArgumentType<ItemStack> itemStack();
ArgumentType<ItemStackPredicate> itemStackPredicate();
ArgumentType<NamedTextColor> namedColor();
ArgumentType<TextColor> hexColor();
ArgumentType<Component> component();
ArgumentType<Style> style();
@@ -86,7 +100,7 @@ interface VanillaArgumentProvider {
ArgumentType<DoubleRangeProvider> doubleRange();
ArgumentType<World> world();
ArgumentType<GameMode> gameMode();
ArgumentType<HeightMap> heightMap();
@@ -0,0 +1,7 @@
/**
* Arguments.
*/
@NullMarked
package io.papermc.paper.command.brigadier.argument;
import org.jspecify.annotations.NullMarked;
@@ -0,0 +1,40 @@
package io.papermc.paper.command.brigadier.argument.position;
import io.papermc.paper.math.BlockPosition;
import io.papermc.paper.math.Position;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* A block position, which does not have a y value.
*/
@ApiStatus.Experimental
@NullMarked
public interface ColumnBlockPosition {
/**
* Gets the X-coordinate of the block position.
*
* @return the block's X-coordinate
*/
int blockX();
/**
* Gets the Z-coordinate of the block position.
*
* @return the block's Z-coordinate
*/
int blockZ();
/**
* Converts this column-based position into a full 3D {@link BlockPosition}
* by supplying a Y-coordinate.
*
* @param y the Y-coordinate to include in the new position
* @return a {@link BlockPosition} representing the full 3D position
*/
default BlockPosition toPosition(final int y) {
return Position.block(this.blockX(), y, this.blockZ());
}
}
@@ -0,0 +1,39 @@
package io.papermc.paper.command.brigadier.argument.position;
import io.papermc.paper.math.FinePosition;
import io.papermc.paper.math.Position;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* A fine position, which does not hold a y value.
*/
@ApiStatus.Experimental
@NullMarked
public interface ColumnFinePosition {
/**
* Gets the X-coordinate of this position.
*
* @return the X-coordinate as a double
*/
double x();
/**
* Gets the Z-coordinate of this position.
*
* @return the Z-coordinate as a double
*/
double z();
/**
* Converts this column-based position into a full 3D {@link FinePosition}
* by supplying a Y-coordinate.
*
* @param y the Y-coordinate to include in the new position
* @return a {@link FinePosition} representing the full 3D position
*/
default FinePosition toPosition(final double y) {
return Position.fine(this.x(), y, this.z());
}
}
Loaded 100 of 1626 files, more files were not shown because too many files have changed in this diff. Show more