Compare commits

..
Author SHA1 Message Date
Lulu13022002 38629ec417 call transient events and finalize migration 2026-09-08 22:02:29 +02:00
Lulu13022002 60a9219865 replace factory methods to flexible constructors 2026-09-08 19:37:24 +02:00
Lulu13022002 e7e1b7cb5f tweaks hierarchy 2026-09-08 19:34:57 +02:00
Lulu13022002 d37761f49e Event 2026-09-08 19:34:56 +02:00
Lulu13022002 0632270abf GS4QueryEvent 2026-09-08 19:34:33 +02:00
Lulu13022002 fbd7278bdf WhitelistToggleEvent 2026-09-08 19:34:32 +02:00
Lulu13022002 6e16c8151b ServerTickStartEvent 2026-09-08 19:34:32 +02:00
Lulu13022002 a4d07733b8 ServerTickEndEvent 2026-09-08 19:34:32 +02:00
Lulu13022002 dad36a346f ServerExceptionEvent 2026-09-08 19:34:31 +02:00
Lulu13022002 7dbd040210 AsyncTabCompleteEvent 2026-09-08 19:34:31 +02:00
Lulu13022002 7b644639cd ProfileWhitelistVerifyEvent 2026-09-08 19:34:31 +02:00
Lulu13022002 98d6d87a16 PreLookupProfileEvent 2026-09-08 19:34:31 +02:00
Lulu13022002 ea5e5b5bd0 PreFillProfileEvent 2026-09-08 19:34:30 +02:00
Lulu13022002 cc87ccebf7 LookupProfileEvent 2026-09-08 19:34:30 +02:00
Lulu13022002 f8416f2239 FillProfileEvent 2026-09-08 19:34:30 +02:00
Lulu13022002 219b5bd3eb ThrownEggHatchEvent 2026-09-08 19:34:30 +02:00
Lulu13022002 e16ebd9768 PreCreatureSpawnEvent 2026-09-08 19:34:29 +02:00
Lulu13022002 eef9f9e154 TimeSkipEvent 2026-09-08 19:34:29 +02:00
Lulu13022002 49a6b6ee0b TabCompleteEvent 2026-09-08 19:34:29 +02:00
Lulu13022002 12e436e573 AsyncPlayerPreLoginEvent 2026-09-08 19:34:29 +02:00
Lulu13022002 10c3643761 InventoryPickupItemEvent 2026-09-08 19:34:28 +02:00
Lulu13022002 9c2cd19913 InventoryMoveItemEvent 2026-09-08 19:34:28 +02:00
Lulu13022002 7042f13970 PlayerLeashEntityEvent 2026-09-08 19:34:28 +02:00
Lulu13022002 406b868e5d UnknownCommandEvent 2026-09-08 19:34:28 +02:00
Lulu13022002 3d3dcf6444 WhitelistStateUpdateEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 785c0c648f AsyncServerDataFixerRemoveBlockEntityEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 c3d089fc38 TestEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 ed9942f6d6 ItemCraftedEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 e4adac7336 EntityCollideWithEntityEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 0649158c70 PlayerConnectionValidateLoginEvent 2026-09-08 19:34:27 +02:00
Lulu13022002 2eee472f72 PlayerConnectionReconfigureEvent 2026-09-08 19:34:26 +02:00
Lulu13022002 53aab5e3c4 PlayerConnectionInitialConfigureEvent 2026-09-08 19:34:26 +02:00
Lulu13022002 e7c3732ea5 PlayerCodeOfConductSendEvent 2026-09-08 19:34:26 +02:00
Lulu13022002 8274d6f563 AsyncPlayerConnectionConfigureEvent 2026-09-08 19:34:26 +02:00
Lulu13022002 faf117a93e HangingEvent 2026-09-08 19:34:26 +02:00
Lulu13022002 516877f477 WeatherEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 180a25d1d0 VehicleEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 8ac694005a VehicleUpdateEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 f548f4a1b0 VehicleMoveEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 9315b6d156 VehicleExitEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 bc8858c361 VehicleCollisionEvent 2026-09-08 19:34:25 +02:00
Lulu13022002 1c8cc4a916 VehicleEnterEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 e9d5ddc150 VehicleDestroyEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 1ea8e08ebc VehicleDamageEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 f4a6a3b885 VehicleCreateEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 5929ed63cf ServerEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 d34638c755 ServerListPingEvent 2026-09-08 19:34:24 +02:00
Lulu13022002 e1a0397dc4 ServerResourcesReloadedEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 8d197ba4b0 RegionizedServerInitEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 9280bf27fc CommandRegisteredEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 8b9e4c7d11 AsyncChatDecorateEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 6979dced5c ServerLoadEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 9f893d1e66 ServiceEvent 2026-09-08 19:34:23 +02:00
Lulu13022002 4bbe75753c ServerCommandEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 2716922383 PluginEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 7f785a3516 MapInitializeEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 3a0407500e BroadcastMessageEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 6b56630859 WorldEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 589ad52e5a ChunkEvent 2026-09-08 19:34:22 +02:00
Lulu13022002 c2f1b0a55f AsyncStructureSpawnEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 f8f320e70a AsyncStructureGenerateEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 aa37ad776e WorldBorderEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 f839cf8d84 WorldGameRuleChangeEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 4d489d4a8a WorldDifficultyChangeEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 dd4cb61c69 StructuresLocateEvent 2026-09-08 19:34:21 +02:00
Lulu13022002 f9e2023bfe RaidEvent 2026-09-08 19:34:20 +02:00
Lulu13022002 af984540ba WorldUnloadEvent 2026-09-08 19:34:20 +02:00
Lulu13022002 d7129a5013 WorldSaveEvent 2026-09-08 19:34:20 +02:00
Lulu13022002 b70c43c16f WorldLoadEvent 2026-09-08 19:34:20 +02:00
Lulu13022002 c1d911c16c WorldInitEvent 2026-09-08 19:34:20 +02:00
Lulu13022002 bab72db6b1 StructureGrowEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 a3ba87b29f SpawnChangeEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 5e10df70d3 PortalCreateEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 a5efe6f6f2 LootGenerateEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 0612615a18 GenericGameEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 e57fcce61c InventoryEvent 2026-09-08 19:34:19 +02:00
Lulu13022002 13550ba3ae PrepareItemEnchantEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 0db5f0903e EnchantItemEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 25629f4de5 AnvilDamagedEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 0928b20314 PrepareInventoryResultEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 aa96be2bc1 PrepareItemCraftEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 384a710167 InventoryOpenEvent 2026-09-08 19:34:18 +02:00
Lulu13022002 e2cf03e706 InventoryCloseEvent 2026-09-08 19:34:17 +02:00
Lulu13022002 b3830b76c1 InventoryInteractEvent 2026-09-08 19:34:17 +02:00
Lulu13022002 079cf7d9a7 EntityEvent 2026-09-08 19:34:17 +02:00
Lulu13022002 22a19181cf WitchThrowPotionEvent 2026-09-08 19:34:17 +02:00
Lulu13022002 23fd92d0c0 WitchReadyPotionEvent 2026-09-08 19:34:17 +02:00
Lulu13022002 b7a1169d30 WitchConsumePotionEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 dceff8335f TurtleStartDiggingEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 7dc84166a9 TurtleLayEggEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 43c85ccd53 TurtleGoHomeEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 c1ede62295 SlimePathfindEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 91dd0214f1 SkeletonHorseTrapEvent 2026-09-08 19:34:16 +02:00
Lulu13022002 2a212eae42 ProjectileCollideEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 216a4161be ExperienceOrbMergeEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 9e1b9fbcea EntityRemoveFromWorldEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 be05c0e24f EntityPathfindEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 656dc56043 EntityJumpEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 1f8591a410 EntityAddToWorldEvent 2026-09-08 19:34:15 +02:00
Lulu13022002 d68dc0715f EndermanEscapeEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 752c303be1 EndermanAttackPlayerEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 51e1e63319 EnderDragonShootFireballEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 7c446e0139 EnderDragonFlameEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 e68c701528 EnderDragonFireballHitEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 34cfa23fc0 VillagerReplenishTradeEvent 2026-09-08 19:34:14 +02:00
Lulu13022002 33d7d349f5 VillagerCareerChangeEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 4aeb33a5f4 VillagerAcquireTradeEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 4fa9499a24 StriderTemperatureChangeEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 646a873602 SlimeSplitEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 14979ac517 SheepRegrowWoolEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 6b29c52a33 PigZombieAngerEvent 2026-09-08 19:34:13 +02:00
Lulu13022002 8c1e7b4a57 PiglinBarterEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 115d5e64e7 ItemMergeEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 2b3b6f3b66 ItemDespawnEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 b99b095b61 HorseJumpEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 2260daa8b3 FoodLevelChangeEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 b54f99c244 FireworkExplodeEvent 2026-09-08 19:34:12 +02:00
Lulu13022002 cdbe56ff29 ExplosionPrimeEvent 2026-09-08 19:34:11 +02:00
Lulu13022002 beee07f89a EntityUnleashEvent 2026-09-08 19:34:11 +02:00
Lulu13022002 d0d617a535 EntityTransformEvent 2026-09-08 19:34:11 +02:00
Lulu13022002 18f1aa712b EntityToggleSwimEvent 2026-09-08 19:34:11 +02:00
Lulu13022002 255179b4b2 EntityToggleGlideEvent 2026-09-08 19:34:11 +02:00
Lulu13022002 70ad50b387 EntityTargetEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 bf5aba7260 EntityTameEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 cabe9db92e EntitySpellCastEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 cedb1ffa64 EntityShootBowEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 4204a93ca6 EntityResurrectEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 a4c450a160 EntityRemoveEvent 2026-09-08 19:34:10 +02:00
Lulu13022002 90a79f22e1 EntityConstructEvent 2026-09-08 19:34:09 +02:00
Lulu13022002 7e5a257553 SulfurCubeSwallowItemEvent 2026-09-08 19:34:09 +02:00
Lulu13022002 6c79add3e3 EntityLungeEvent 2026-09-08 19:34:09 +02:00
Lulu13022002 32f8feb7e4 EntityIgniteEvent 2026-09-08 19:34:09 +02:00
Lulu13022002 20d64c1f42 EntityRegainHealthEvent 2026-09-08 19:34:09 +02:00
Lulu13022002 9be6bb009a EntityPotionEffectEvent 2026-09-08 19:34:08 +02:00
Lulu13022002 c056b0a07e EntityPoseChangeEvent 2026-09-08 19:34:08 +02:00
Lulu13022002 668dcda9de EntityTeleportEvent 2026-09-08 19:34:08 +02:00
Lulu13022002 ce579b4e2c EntityPortalEnterEvent 2026-09-08 19:34:08 +02:00
Lulu13022002 876b4d7a1a EntityPlaceEvent 2026-09-08 19:34:08 +02:00
Lulu13022002 250178eaf0 EntityPickupItemEvent 2026-09-08 19:34:07 +02:00
Lulu13022002 8192c9f575 EntityMountEvent 2026-09-08 19:34:07 +02:00
Lulu13022002 97823725ce EntityKnockbackEvent 2026-09-08 19:34:07 +02:00
Lulu13022002 0c0257254e EntityInteractEvent 2026-09-08 19:34:07 +02:00
Lulu13022002 740bb04269 EntityExplodeEvent 2026-09-08 19:34:07 +02:00
Lulu13022002 9bcddac82d EntityExhaustionEvent 2026-09-08 19:34:06 +02:00
Lulu13022002 0dd5fad8a6 EntityEnterLoveModeEvent 2026-09-08 19:34:06 +02:00
Lulu13022002 e8d93523e2 EntityEnterBlockEvent 2026-09-08 19:34:06 +02:00
Lulu13022002 5ddb6833ff EntityDropItemEvent 2026-09-08 19:34:06 +02:00
Lulu13022002 3132f2929e EntityDismountEvent 2026-09-08 19:34:05 +02:00
Lulu13022002 01d37292a2 EntityDeathEvent 2026-09-08 19:34:05 +02:00
Lulu13022002 871c14c6be EntityDamageEvent 2026-09-08 19:34:05 +02:00
Lulu13022002 6ef75d43cc EntityCreatePortalEvent 2026-09-08 19:34:05 +02:00
Lulu13022002 e0fc7eb9bd EntityCombustEvent 2026-09-08 19:34:05 +02:00
Lulu13022002 9511306ca9 EntityBreedEvent 2026-09-08 19:34:04 +02:00
Lulu13022002 585df25333 EntityChangeBlockEvent 2026-09-08 19:34:04 +02:00
Lulu13022002 b067ecf46e EntityAirChangeEvent 2026-09-08 19:34:04 +02:00
Lulu13022002 459f0860a1 EnderDragonChangePhaseEvent 2026-09-08 19:34:04 +02:00
Lulu13022002 367148200f CreeperPowerEvent 2026-09-08 19:34:04 +02:00
Lulu13022002 fbf971617c EntitySpawnEvent 2026-09-08 19:34:03 +02:00
Lulu13022002 7ec5986da1 BatToggleSleepEvent 2026-09-08 19:34:03 +02:00
Lulu13022002 c7d1b23b93 ArrowBodyCountChangeEvent 2026-09-08 19:34:03 +02:00
Lulu13022002 4b0e3109d7 AreaEffectCloudApplyEvent 2026-09-08 19:34:03 +02:00
Lulu13022002 aca9668964 PlayerToggleEntityAgeLockEvent 2026-09-08 19:34:02 +02:00
Lulu13022002 6bb6a909a7 rebase 2026-09-08 19:34:02 +02:00
Lulu13022002 3264ac58e3 ProjectileHitEvent 2026-09-08 19:34:02 +02:00
Lulu13022002 b49a41efb7 PlayerSwapWithEquipmentSlotEvent 2026-09-08 19:34:02 +02:00
Lulu13022002 df04cb69ba rebuild patches 2026-09-08 19:34:01 +02:00
Lulu13022002 ebfe21e2ca rewrite custom events extending abstract event classes and skip rewriting for next versions 2026-09-08 19:34:01 +02:00
Lulu13022002 db422ee9af WardenAngerChangeEvent 2026-09-08 19:34:01 +02:00
Lulu13022002 18e2c24e05 TameableDeathMessageEvent 2026-09-08 19:34:01 +02:00
Lulu13022002 7187fdf465 ShulkerDuplicateEvent 2026-09-08 19:34:01 +02:00
Lulu13022002 c8bd70a838 PufferFishStateChangeEvent 2026-09-08 19:34:01 +02:00
Lulu13022002 d873174c2a ItemTransportingEntityValidateTargetEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 8936ac3735 FishHookStateChangeEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 155f855959 EntityToggleSitEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 8bfe75dc01 EntityPortalReadyEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 70c7b5dee5 EntityMoveEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 508e4166f3 EntityKnockbackEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 1e91d1224a EntityLoadCrossbowEvent 2026-09-08 19:34:00 +02:00
Lulu13022002 cdb4f991f6 EntityInsideBlockEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 9808091bcf EntityFertilizeEggEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 1e3d010778 EntityEquipmentChangedEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 f1fed860c5 EntityEffectTickEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 fabbf136a9 EntityDyeEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 a741d5a060 EntityDamageItemEvent 2026-09-08 19:33:59 +02:00
Lulu13022002 db56b19f86 EntityAttemptSpinAttackEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 f616414eb7 EntityAttemptSmashAttackEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 8314f898e6 ElderGuardianAppearanceEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 af57d9efae BlockEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 df49621e76 HopperInventorySearchEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 cd1d929399 TNTPrimeEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 24194f2704 BeaconEffectEvent 2026-09-08 19:33:58 +02:00
Lulu13022002 05be2f2430 FurnaceBurnEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 68dc428d44 BrewingStandFuelEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 28c8b952ee BrewEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 59dbce1176 VaultDisplayItemEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 463a9a0348 TNTPrimeEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 9cbb166ef7 SpongeAbsorbEvent 2026-09-08 19:33:57 +02:00
Lulu13022002 b68aeef916 SignChangeEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 1765f064a7 SculkBloomEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 abf24dfac1 NotePlayEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 a234ecc775 MoistureChangeEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 35b21193e0 LeavesDecayEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 f562d238d2 FluidLevelChangeEvent 2026-09-08 19:33:56 +02:00
Lulu13022002 1e161152b9 CrafterCraftEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 6e54f73d74 CauldronLevelChangeEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 95ef9c22fb InventoryBlockStartEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 dcad5fa99e BlockShearEntityEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 e6c0ba7646 BlockRedstoneEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 1cda896417 BlockReceiveGameEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 5c99a97dac BlockPistonEvent 2026-09-08 19:33:55 +02:00
Lulu13022002 ad0d113da0 BlockPhysicsEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 ff4a2ca564 BlockIgniteEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 be5b215be2 BlockPlaceEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 655ea8288a BlockFromToEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 6d1bd949aa BlockFertilizeEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 5093290edf BlockFadeEvent 2026-09-08 19:33:54 +02:00
Lulu13022002 b4d418c073 BlockExplodeEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 1a74b81716 BlockDropItemEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 a3d9ae13f3 BlockDispenseLootEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 1dbf8f9f46 BlockDispenseEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 fa4d547a35 BlockDamageEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 bb7122b480 BlockDamageAbortEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 4dc7c308b0 BlockCookEvent 2026-09-08 19:33:53 +02:00
Lulu13022002 7a1dbc123f BlockCanBuildEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 e8df304884 BlockBurnEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 03f3ece1b9 BellResonateEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 5c92b1a8d7 BlockGrowEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 495fae1784 BlockExpEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 e94e49b5a7 CompostItemEvent 2026-09-08 19:33:52 +02:00
Lulu13022002 dc9c3ce64d VaultChangeStateEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 fc940f8f37 BlockPreDispenseEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 7b3f232e79 BlockLockCheckEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 32aa346546 BlockFailedDispenseEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 cfa232a0a7 BlockBreakProgressUpdateEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 65ae2ca9b0 BellRingEvent 2026-09-08 19:33:51 +02:00
Lulu13022002 46da35f1ab BellRevealRaiderEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 9c8387b5bd BeaconDeactivatedEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 eeec638538 BeaconActivatedEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 366a375afe PlayerEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 a71878ebe5 PlayerSpawnLocationEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 21bb7dff80 UncheckedSignChangeEvent 2026-09-08 19:33:50 +02:00
Lulu13022002 55f8938768 LootableInventoryReplenishEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 c5093c5d12 PlayerNaturallySpawnCreaturesEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 368f22e290 PlayerShearBlockEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 65806e018a ClientTickEndEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 625a963b4d AsyncPlayerSendSuggestionsEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 81cc5be9a0 AsyncPlayerSendCommandsEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 dc245be340 PlayerUseUnknownEntityEvent 2026-09-08 19:33:49 +02:00
Lulu13022002 a38201bc4b PlayerStopSpectatingEntityEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 e2b0e61aa6 PlayerStartSpectatingEntityEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 05201926f0 PlayerSetSpawnEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 b5b202a09a PlayerRecipeBookClickEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 7d27d0363e PlayerReadyArrowEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 ef47cbcb48 PlayerPickupExperienceEvent 2026-09-08 19:33:48 +02:00
Lulu13022002 0d46683855 PlayerLaunchProjectileEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 cca983b5fe PlayerJumpEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 5e3602a300 PlayerHandshakeEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 e65954bdfd PlayerElytraBoostEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 296afa8d33 PlayerConnectionCloseEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 d4a834c37b PlayerClientOptionsChangeEvent 2026-09-08 19:33:47 +02:00
Lulu13022002 d64d779359 PlayerAttackEntityCooldownResetEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 08d65a7618 PlayerArmorChangeEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 5f48209795 PlayerAdvancementCriterionGrantEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 e18d894a1b IllegalPacketEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 c32bbc64a7 AsyncPlayerChatEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 2417fcf770 PlayerVelocityEvent 2026-09-08 19:33:46 +02:00
Lulu13022002 f69babca92 PlayerToggleSprintEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 e329288e71 PlayerToggleSneakEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 f6e5d12043 PlayerToggleFlightEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 349954c88b PlayerTakeLecternBookEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 590797a8b8 PlayerSwapHandItemsEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 396665c697 PlayerStatisticIncrementEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 f968ceb56f PlayerSpawnChangeEvent 2026-09-08 19:33:45 +02:00
Lulu13022002 100bb1a330 PlayerSignOpenEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 35d737d013 PlayerShowEntityEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 b203c309ee PlayerShearEntityEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 ffc30dfe41 PlayerRiptideEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 fb208e8c1f PlayerResourcePackStatusEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 7ae1e99865 PlayerRecipeDiscoverEvent 2026-09-08 19:33:44 +02:00
Lulu13022002 7ce8db084a PlayerRecipeBookSettingsChangeEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 ae74a09461 PlayerRecipeBookClickEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 51ed87cf57 PlayerQuitEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 cc5518feeb PlayerPreLoginEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 c905812e71 PlayerPickupItemEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 a8166bcff5 PlayerMoveEvent 2026-09-08 19:33:43 +02:00
Lulu13022002 0895fec3d6 PlayerLoginEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 4e9ce25dcd PlayerLocaleChangeEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 6e9c581a7a PlayerLinksSendEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 77a605370d PlayerLevelChangeEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 4f7d947fa9 PlayerKickEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 504dbab8a3 PlayerJoinEvent 2026-09-08 19:33:42 +02:00
Lulu13022002 bd3f8c5099 PlayerItemMendEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 8732f8d6ee PlayerItemHeldEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 6e64b30d0b PlayerItemDamageEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 2523a86612 PlayerItemConsumeEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 ec6b7510ca PlayerItemBreakEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 3a97aae601 PlayerInteractEvent 2026-09-08 19:33:41 +02:00
Lulu13022002 1161288346 PlayerInputEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 665db9d5d4 PlayerHideEntityEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 bdfdb298b4 PlayerHarvestBlockEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 3a2aa6fa9b PlayerGameModeChangeEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 f0c9d7c46a PlayerFishEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 2cb6460c5d PlayerExpCooldownChangeEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 7964a7dd34 PlayerExpChangeEvent 2026-09-08 19:33:40 +02:00
Lulu13022002 f708170b5d PlayerEggThrowEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 cd57a8ce55 PlayerEditBookEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 ea7bc08754 PlayerDropItemEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 759c949dfc PlayerCommandSendEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 89bf3b791c PlayerChatTabCompleteEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 8f2362d544 PlayerChatEvent 2026-09-08 19:33:39 +02:00
Lulu13022002 a741a0f8bd PlayerChannelEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 6630607358 PlayerChangedWorldEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 1b1d891f1e PlayerChangedMainHandEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 7fbde83842 PlayerBucketEntityEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 900a47f4e8 PlayerBucketEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 ce5255d6a4 PlayerBedLeaveEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 b388f0dc0a PlayerBedEnterEvent 2026-09-08 19:33:38 +02:00
Lulu13022002 3dc7a8ae4c PlayerAttemptPickupItemEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 cf6bf97b43 PlayerInteractEntityEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 85f4d46701 PlayerAdvancementDoneEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 6cb9e3318f PlayerAnimationEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 7107732cb6 AbstractRespawnEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 f6f8f4ff77 PlayerCommandPreprocessEvent 2026-09-08 19:33:37 +02:00
Lulu13022002 024b97d466 AbstractChatEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 0a39f88496 AsyncPlayerSpawnLocationEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 858b72c074 PlayerItemGroupCooldownEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 7e9f5647f3 PlayerPurchaseEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 8ac44842d5 PrePlayerAttackEntityEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 aec560ee7b PlayerUntrackEntityEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 6062382779 PlayerTrackEntityEvent 2026-09-08 19:33:36 +02:00
Lulu13022002 d04a432231 PlayerStopUsingItemEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 c647a6318a PlayerPickItemEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 ea2b4c2b7d PlayerStonecutterRecipeSelectEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 18b128ae31 PlayerShieldDisableEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 76154a0188 PlayerServerFullCheckEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 a7d3dc626e PlayerOpenSignEvent 2026-09-08 19:33:35 +02:00
Lulu13022002 e6540faed8 PlayerNameEntityEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 2150f1193e PlayerMapFilledEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 ca5529b139 PlayerLoomPatternSelectEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 3a3021b52a PlayerLecternPageChangeEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 660f5ea092 PlayerItemFrameChangeEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 e2f9e92286 PlayerBedFailEnterEvent 2026-09-08 19:33:34 +02:00
Lulu13022002 eca438aed3 PlayerChangeBeaconEffectEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 0dbcc07d4d PlayerInventorySlotChangeEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 b86e74cd5b PlayerInsertLecternBookEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 196dae383f PlayerFlowerPotManipulateEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 ae640407cf PlayerFailMoveEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 8b16616b81 PlayerDeepSleepEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 fe5da06d79 PlayerCustomClickEvent 2026-09-08 19:33:33 +02:00
Lulu13022002 2c83fb4cbc migrate PlayerClientLoadedWorldEvent 2026-09-08 19:33:32 +02:00
2120 changed files with 51999 additions and 47803 deletions

No files matched your search

+3 -30
View File
@@ -14,24 +14,15 @@
<property name="messageKey" value="annotation\.same\.line"/>
<property name="arguments" value="^(?!(${type_use_annotations}))"/>
</module>
<module name="io.papermc.checkstyle.filters.BetterSuppressionSingleFilter">
<!--Allows @deprecated on packages. Not in the javadoc spec (javadoc warns), but it is still rendered in the deprecation block and list-->
<property name="checks" value="InappropriateJavadocBlockTagsOnPackage"/>
<property name="messageKey" value="javadoc\.inappropriate\.tag"/>
<property name="arguments" value="^deprecated$"/>
</module>
<module name="SuppressWarningsFilter"/>
<!--Javadoc Comments-->
<module name="JavadocPackage"/>
<!--Misc-->
<module name="LineEnding"/>
<module name="NewlineAtEndOfFile"/>
<!--Whitespace-->
<module name="FileTabCharacter"/>
<module name="TreeWalker">
<module name="SuppressWarningsHolder"/>
<module name="SuppressionXpathFilter">
<property name="file" value="${config_loc}/xpath-suppressions.xml"/>
<property name="optional" value="false"/>
@@ -45,7 +36,6 @@
</module>
<module name="AnnotationUseStyle"/>
<module name="MissingDeprecated"/>
<module name="MissingOverrideOnRecordAccessor"/>
<!--Block Checks-->
<module name="AvoidNestedBlocks"/>
@@ -63,17 +53,12 @@
<!--Coding-->
<module name="AvoidDoubleBraceInitialization"/>
<module name="AvoidNoArgumentSuperConstructorCall"/>
<module name="ConstructorsDeclarationGrouping">
<property name="orderByIncreasingParameterCount" value="true"/>
</module>
<module name="ConstructorsDeclarationGrouping"/>
<module name="CovariantEquals"/>
<module name="DeclarationOrder">
<property name="ignoreConstructors" value="true"/>
</module>
<module name="DeclarationOrder"/>
<module name="DefaultComesLast"/>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
<module name="ExpressionOverBlockLambda"/>
<module name="FallThrough"/>
<!-- Use non-final variables as an identifier of old code for now -->
<!--<module name="FinalLocalVariable">
@@ -97,9 +82,6 @@
<module name="UnnecessarySemicolonInTryWithResources"/>
<module name="UnusedCatchParameterShouldBeUnnamed"/>
<module name="UnusedLocalVariable"/>
<module name="UnusedPrivateField"/>
<module name="UnusedTryResourceShouldBeUnnamed"/>
<module name="UseEnhancedSwitch"/>
<module name="WhenShouldBeUsed"/>
<!--Headers--> <!--N/A-->
@@ -128,13 +110,9 @@
<module name="AtclauseOrder">
<property name="tagOrder" value="@param, @return, @throws, @see, @deprecated, @hidden"/>
</module>
<module name="InappropriateJavadocBlockTagsOnField"/>
<module name="InappropriateJavadocBlockTagsOnPackage"/>
<module name="InappropriateJavadocBlockTagsOnType"/>
<module name="InvalidJavadocPosition"/>
<module name="JavadocBlockTagLocation"/>
<module name="JavadocContentLocation"/>
<module name="JavadocEndCommentDelimiter"/>
<module name="JavadocLeadingAsteriskAlign"/>
<module name="JavadocMethod">
<!--checks all, but doesn't require. If we have a doc, it should be valid-->
@@ -142,11 +120,11 @@
</module>
<module name="JavadocMissingLeadingAsterisk"/>
<module name="JavadocMissingWhitespaceAfterAsterisk"/>
<module name="JavadocStyle"/> <!--checks all, but doesn't require. If we have a doc, it should be valid-->
<module name="JavadocTagContinuationIndentation"/>
<module name="JavadocType"/> <!--checks all, but doesn't require. If we have a doc, it should be valid-->
<module name="NonEmptyAtclauseDescription"/>
<module name="RequireEmptyLineBeforeBlockTagGroup"/>
<module name="SummaryJavadoc"/> <!--checks all, but doesn't require. If we have a doc, it should be valid-->
<!--Metrics--> <!--N/A-->
@@ -154,14 +132,12 @@
<module name="ArrayTypeStyle"/>
<module name="AvoidEscapedUnicodeCharacters"/>
<module name="CommentsIndentation"/>
<module name="HexLiteralCase"/>
<!-- Overlaps with the configured FinalLocalVariable, but is more strict -->
<!--<module name="FinalParameters">
<property name="tokens" value="METHOD_DEF,CTOR_DEF,LITERAL_CATCH,FOR_EACH_CLAUSE,PATTERN_VARIABLE_DEF"/>
</module>-->
<module name="NoCodeInFile"/>
<module name="NumericalPrefixesInfixesSuffixesCharacterCase"/>
<module name="OuterTypeFilename"/>
<module name="UpperEll"/>
@@ -200,7 +176,6 @@
<!--Size Violations--> <!--N/A-->
<!--Whitespace-->
<module name="ArrayBracketNoWhitespace"/>
<module name="EmptyForInitializerPad"/>
<module name="EmptyForIteratorPad"/>
<module name="EmptyLineSeparator">
@@ -218,11 +193,9 @@
<module name="TypecastParenPad"/>
<module name="WhitespaceAfter"/>
<module name="WhitespaceAround"/>
<module name="WhitespaceBeforeEmptyBody"/>
<!--Custom-->
<module name="JavadocAlignParameterDescription"/>
<module name="JavadocParamTagOrder"/>
<module name="NullabilityAnnotations"/>
<module name="RedundantNullability"/>
<module name="UnnecessaryFullyQualifiedImport"/>
+1 -1
View File
@@ -18,7 +18,7 @@ indent_style = tab
[*.bat]
end_of_line = crlf
[{*.yaml,*.yml}]
[*.yml]
indent_size = 2
[{*.patch,*.md}]
+2 -13
View File
@@ -1,13 +1,2 @@
# default ownership
* @papermc/paper-maintainers
# tooling
/.github/workflows/ @papermc/tooling
/gradle/ @papermc/tooling
/paper-api/build.gradle.kts @papermc/tooling
/paper-server/build.gradle.kts @papermc/tooling
/build.gradle.kts @papermc/tooling
/gradle.properties @papermc/tooling
/settings.gradle.kts @papermc/tooling
/.github/CODEOWNERS @papermc/leadership-team
* @PaperMC/paper-maintainers
/.github/CODEOWNERS @PaperMC/core-team
@@ -5,17 +5,14 @@
# of the PR relating to this action.
name: Build Paper
on:
push:
pull_request:
types:
- opened
- reopened
- synchronize
- labeled
push:
branches-ignore:
- main
jobs:
build:
@@ -110,7 +107,7 @@ jobs:
if: always()
uses: actions/upload-artifact@v7
with:
name: test-results
name: Test Results
path: |
**/build/test-results/test/TEST-*.xml
@@ -140,12 +137,12 @@ jobs:
publishing-task: ":paper-api:publishAllPublicationsTo_githubPackages_PRsRepository publishDevBundlePublicationTo_githubPackages_PRsRepository -PpublishDevBundle"
event_file:
name: "Event File"
needs: build
if: ${{ !cancelled() && needs.build.result != 'skipped' }}
# Only run on PRs if the source branch is on someone else's repo
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }}
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v7
with:
name: event-data
name: Event File
path: ${{ github.event_path }}
+2 -6
View File
@@ -2,11 +2,7 @@ name: Close invalid PRs
on:
pull_request_target:
types:
- opened
permissions:
pull-requests: write
types: [ opened ]
jobs:
run:
@@ -16,7 +12,7 @@ jobs:
github.head_ref == 'main' ||
github.event.pull_request.head.repo.owner.type != 'User'
)
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- uses: superbrothers/close-pull-request@v3
id: "main_branch"
-185
View File
@@ -1,185 +0,0 @@
on:
issues:
types:
- opened
jobs:
detect-version:
runs-on: namespace-profile-linux-small
timeout-minutes: 5
permissions:
issues: read
outputs:
version: ${{ steps.detect.outputs.version }}
steps:
- id: detect
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
// Capturing Groups:
// 1 = Brand
// 2 = Minecraft Version
// 3 = Build Number
// 4 = Git Branch/Commit
// 5 = Build Time
const NEW_PATTERN = /This server is running ([A-Za-z0-9]+) version ([\d\.]+)-(DEV|\d+)-(.*) \((.*)\) \(Implementing API version .*\)(?: \(Git: .*\))?/;
// Capturing Groups:
// 1 = Brand
// 2 = Minecraft Version
const OLD_PATTERN = /This server is running ([A-Za-z0-9]+) version .* \(MC: ([^\)]+)\) \(Implementing API version .*\)(?: \(Git: .*\))?/;
if (!context.payload.issue.body) {
core.info("Issue body is empty; unable to detect version.");
return;
}
let version;
const match = context.payload.issue.body.match(NEW_PATTERN);
if (match && match.length === 6) {
version = match[2];
} else {
const oldMatch = context.payload.issue.body.match(OLD_PATTERN);
if (oldMatch) {
version = oldMatch[2];
}
}
if (!version) {
core.info("Unable to determine the Minecraft version from the issue body.");
return;
}
core.info(`Detected Minecraft version: ${version}`);
core.setOutput('version', version);
label-version:
needs: detect-version
if: needs.detect-version.outputs.version != ''
runs-on: namespace-profile-linux-small
timeout-minutes: 5
permissions:
issues: write
steps:
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const version = '${{ needs.detect-version.outputs.version }}';
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
labels: [`version: ${version}`],
});
core.info(`Added version label for ${version}.`);
check-support:
needs:
- detect-version
- label-version
if: needs.detect-version.outputs.version != ''
runs-on: namespace-profile-linux-small
timeout-minutes: 5
permissions:
issues: write
steps:
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const version = '${{ needs.detect-version.outputs.version }}';
const apiUrl = `https://fill.papermc.io/v3/projects/paper/versions/${encodeURIComponent(version)}`;
core.info(`Fetching version information from ${apiUrl}`);
let supportStatus;
let supportEnd;
try {
const response = await fetch(apiUrl, {
headers: {
'Accept': 'application/json',
'User-Agent': `GitHub Actions (${context.repo.owner}/${context.repo.repo})`,
},
});
if (response.status === 404) {
core.info(`Fill has no information for version ${version}.`);
return;
}
if (!response.ok) {
core.error(`Fill returned HTTP ${response.status}: ${response.statusText}`);
return;
}
const data = await response.json();
supportStatus = data?.version?.support?.status;
supportEnd = data?.version?.support?.end;
} catch (error) {
core.warning(`Failed to fetch support information: ${error}`);
return;
}
core.info(`Fill support status for ${version}: ${supportStatus}`);
// Only comment for deprecated or unsupported versions.
let comment;
if (supportStatus === 'UNSUPPORTED') {
comment =
`⚠️ **Minecraft ${version} is unsupported.**\n\n` +
`This version is no longer supported by PaperMC. ` +
(supportEnd
? `Support _ended_ on ${supportEnd}. `
: '') +
`Please consider upgrading to a supported Minecraft version.`;
} else if (supportStatus === 'DEPRECATED') {
comment =
`⚠️ **Minecraft ${version} is deprecated.**\n\n` +
`This version is deprecated by PaperMC. ` +
(supportEnd
? `Support will end on ${supportEnd}. `
: '') +
`Please consider upgrading to a supported Minecraft version.`;
} else {
core.info(`${version} is supported or has an unknown status.`);
return;
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
body: comment,
});
if (supportStatus === 'UNSUPPORTED') {
try {
await github.rest.issues.removeLabel({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
name: 'status: needs triage',
});
} catch (error) {
// ignore - missing label is not an error
}
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
labels: ['resolution: unsupported'],
});
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
state: 'closed',
state_reason: 'not_planned',
});
}
+1 -1
View File
@@ -9,6 +9,6 @@ permissions: {}
jobs:
signal:
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- run: echo "A PR review was submitted"
+2 -2
View File
@@ -22,7 +22,7 @@ jobs:
concurrency:
group: pr-review-status-${{ github.event.workflow_run.head_sha }}
cancel-in-progress: false
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- name: "authenticate"
id: "authenticate"
@@ -48,7 +48,7 @@ jobs:
concurrency:
group: pr-review-status-promote
cancel-in-progress: false
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- name: "authenticate"
id: "authenticate"
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
concurrency:
group: update-bugs-project-${{ github.event.issue.number }}
cancel-in-progress: true
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- name: "authenticate"
id: "authenticate"
+1 -1
View File
@@ -15,7 +15,7 @@ permissions:
jobs:
publish:
runs-on: namespace-profile-linux-small
runs-on: ubuntu-latest
steps:
- name: Generate an Application repository access token
id: gen_repo_token
-56
View File
@@ -1,56 +0,0 @@
name: Release 26.3
on:
workflow_dispatch:
push:
branches:
- main
permissions:
contents: read
concurrency:
cancel-in-progress: false
group: release-26.3
jobs:
release:
# guard for manual dispatch
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: namespace-profile-linux-default
timeout-minutes: 30
#env:
# BUILD_NUMBER: ${{ github.run_number }}
steps:
- name: "environment"
run: |
echo "BUILD_NUMBER=$((129 + GITHUB_RUN_NUMBER))" >> "$GITHUB_ENV"
echo "BUILD_STARTED_AT=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_ENV"
- name: "git / checkout"
uses: namespacelabs/nscloud-checkout-action@66f2dc6f6c42a8ac6c4e53473c4840006822831e # v9.0.1
with:
fetch-depth: 0
- uses: papermc/ci/setup-gradle@main
- uses: papermc/ci/build-paper@main
- if: ${{ !cancelled() }}
uses: papermc/ci/upload-event-data@main
with:
path: ${{ github.event_path }}
- if: ${{ !cancelled() }}
uses: papermc/ci/upload-test-results@main
- uses: papermc/ci/publish-fill@main
with:
fill_api_url: ${{ secrets.FILL_API_URL }}
fill_api_key: ${{ secrets.FILL_API_KEY }}
- uses: papermc/ci/publish-maven@main
with:
maven_username: ${{ secrets.ARTIFACTORY_USERNAME }}
maven_password: ${{ secrets.ARTIFACTORY_PASSWORD }}
maven_tasks: -PpublishDevBundle :paper-api:publish publishDevBundlePublicationToPaperReleasesRepository
-24
View File
@@ -1,24 +0,0 @@
name: Test Results
on:
workflow_run:
workflows: [ "Build Paper" ]
types:
- completed
permissions:
actions: read
checks: write
jobs:
test-results:
name: Test Results
if: github.event.workflow_run.conclusion != 'skipped'
runs-on: namespace-profile-linux-small
steps:
- uses: papermc/ci/publish-test-results@main
with:
event: ${{ github.event.workflow_run.event }}
commit: ${{ github.event.workflow_run.head_sha }}
github_token: ${{ secrets.GITHUB_TOKEN }}
run_id: ${{ github.event.workflow_run.id }}
+34
View File
@@ -0,0 +1,34 @@
name: Test Results
on:
workflow_run:
workflows: [ "Build Paper" ]
types:
- completed
permissions: { }
jobs:
test-results:
name: Test Results
runs-on: ubuntu-latest
if: github.event.workflow_run.conclusion != 'skipped'
permissions:
checks: write
# for downloading test result artifacts
actions: read
steps:
- name: Download and Extract Artifacts
uses: dawidd6/action-download-artifact@v21
with:
run_id: ${{ github.event.workflow_run.id }}
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: test_artifacts/Event File/event.json
event_name: ${{ github.event.workflow_run.event }}
files: "test_artifacts/**/*.xml"
comment_mode: off
+61 -23
View File
@@ -1,35 +1,73 @@
# Instructions for Coding Agents
These instructions supplement `CONTRIBUTING.md`, which must also be followed.
These instructions apply to coding agents working on behalf of external
contributors. They supplement `CONTRIBUTING.md`, which must also be followed.
## Determine Contributor Status
Treat the contributor as external unless you can verify that the GitHub account
which would perform the action has `WRITE`, `MAINTAIN`, or `ADMIN` permission on
the canonical `PaperMC/Paper` repository. Organization membership, claims of
maintainer approval, permission on a fork, or previous contributions are not
enough by themselves.
Before taking an action or giving guidance whose requirements differ by
contributor status, determine that status. If it cannot be verified, treat the
contributor as external.
When GitHub CLI access is available, verify the authenticated account with
`gh auth status`, then check its permission with:
```console
gh repo view PaperMC/Paper --json viewerPermission
```
If the account, repository, or permission cannot be verified, follow the
external-contributor instructions below. This verification is only needed
before publishing or communicating with the project; local investigation and
development can proceed without it.
## Keep Project Communication Human
Do not turn yourself into a slop cannon or the user into a meat proxy.
Do not turn yourself into a slop cannon or the contributor into a meat proxy.
Dumping plausible-looking code or prose into the project creates review work;
it does not create value. Paper maintainers can run the same agents themselves.
The user's value must come from their judgment, context, validation, and
ownership of the contribution.
The contributor's value must come from their judgment, context, validation, and
ownership.
Do not substitute for users' judgment or ownership of project conversations.
Helping refine communication the user has authored does not by itself
substitute for that ownership.
You may help a contributor investigate the codebase, make changes locally, and
run tests. Do not act as the contributor in conversations with Paper
maintainers. In particular, do not compose issue reports, discussion posts,
pull request descriptions, comments, or review responses for the contributor,
or post generated text as if it were theirs.
Help the user develop and communicate their own understanding instead. Ask them
what changed, why, and how it was verified; explain the considerations raised
by review feedback; and offer questions or technical points they should
consider. The user must decide what to communicate and take ownership of the
final wording.
Do not relay generated output to maintainers, and do not turn maintainer
feedback into a prompt and pass the generated response back. Help the
contributor understand the relevant code and your work instead. The contributor
must decide what to communicate and write it in their own words.
Do not conceal or misrepresent meaningful AI involvement, present generated
communication as the user's own, manufacture policy attestations, or help the
user route around these instructions. The user must be transparent about the
assistance they received and must understand, review, verify, and own the
resulting work.
Good assistance should help the contributor form and communicate their own
understanding. Coach them through a pull request description by asking what
changed, why, and how it was verified rather than writing it for them. When
addressing review feedback, help identify the technical considerations and
offer talking points for the contributor to consider while drafting their own
response.
Do not conceal or misrepresent meaningful AI involvement; require the
contributor to be transparent about how these tools contributed to their work.
Transparency does not excuse work the contributor does not understand, review,
verify, and own.
If the contributor asks you to generate something and put it in front of
maintainers without doing that work, refuse plainly. Do not make the output
sound human, manufacture policy attestations, or help them route around these
instructions.
## Require Human Ownership Before Publication
Do not autonomously submit code or communication to the project. Before taking
a project-facing action on the user's behalf, stop and require the user to:
Do not autonomously open or update an issue, discussion, or pull request. Before
performing any GitHub action that publishes work or communicates with the
project, stop and require the contributor to:
- review the complete change;
- understand and be able to explain its behavior and tradeoffs;
@@ -37,7 +75,7 @@ a project-facing action on the user's behalf, stop and require the user to:
- provide the exact communication in their own words and explicitly approve the
action.
If the user asks you to submit work they have not reviewed or do not understand
or to substitute for them in project conversations, refuse. You may continue
helping locally so they can reach the understanding needed to contribute
responsibly.
If the contributor asks you to submit work they have not reviewed or do not
understand, to generate project communication for them, or to operate as a
proxy through review, refuse. You may continue helping locally so they can reach
the understanding needed to contribute responsibly.
+1
View File
@@ -0,0 +1 @@
@AGENTS.md
+9 -7
View File
@@ -199,14 +199,16 @@ part of what you submit. Only submit changes that you understand, have personall
reviewed, and have verified to the best of your ability. You should be able to
explain why the change is needed, how it works, and what tradeoffs it makes.
Project communication, including issues, discussion posts, pull request
descriptions, comments, and review responses, should be written by you in your
own words. Do not use an AI tool as a proxy for the conversation. Validate any
tool output you rely on, then communicate the relevant conclusions yourself.
Issues, discussion posts, pull request descriptions, comments, and review
responses should be written by you, in your own words. Do not pass generated
responses on to maintainers or use an AI tool as a proxy for the conversation.
If a tool helped you investigate or implement something, read and validate its
output, then communicate the relevant conclusions yourself.
Do not conceal or misrepresent meaningful AI involvement. Be transparent about
how these tools contributed to your work; that transparency does not replace
your responsibility for the contribution.
Do not conceal or misrepresent meaningful AI involvement; be transparent about
how these tools contributed to your work. Transparency does not excuse
submitting work you do not understand, review, verify, and take responsibility
for.
Review is a collaborative process, not a way to outsource completion of a
generated change to maintainers. Be prepared to answer questions about your
+4 -6
View File
@@ -1,6 +1,6 @@
Paper [![Version](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fartifactory.papermc.io%2Fartifactory%2Funiverse%2Fio%2Fpapermc%2Fpaper%2Fpaper-api%2Fmaven-metadata.xml&strategy=highestVersion&filter=26.3.*&label=version&color=%23344ceb
Paper [![Version](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fartifactory.papermc.io%2Fartifactory%2Funiverse%2Fio%2Fpapermc%2Fpaper%2Fpaper-api%2Fmaven-metadata.xml&strategy=highestVersion&filter=26.2.*&label=version&color=%23344ceb
)](https://papermc.io/downloads/paper)
[![Paper Build Status](https://img.shields.io/github/actions/workflow/status/PaperMC/Paper/release-26.3.yaml?branch=main)](https://github.com/PaperMC/Paper/actions)
[![Paper Build Status](https://img.shields.io/github/actions/workflow/status/PaperMC/Paper/build.yml?branch=main)](https://github.com/PaperMC/Paper/actions)
[![Discord](https://img.shields.io/discord/289587909051416579.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/papermc)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/papermc?label=GitHub%20Sponsors)](https://github.com/sponsors/PaperMC)
[![Open Collective](https://img.shields.io/opencollective/all/papermc?label=OpenCollective%20Sponsors)](https://opencollective.com/papermc)
@@ -39,7 +39,7 @@ repositories {
}
dependencies {
compileOnly("io.papermc.paper:paper-api:26.3.build.+")
compileOnly("io.papermc.paper:paper-api:26.2.build.+")
}
java {
@@ -59,7 +59,7 @@ java {
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>[26.3.build,)</version>
<version>[26.2.build,)</version>
<scope>provided</scope>
</dependency>
```
@@ -91,8 +91,6 @@ You can find our collective [here](https://opencollective.com/papermc), or you c
Special Thanks To:
-------------
[![CI powered by namespace badge](https://assets.papermc.io/sponsors/namespace-oss-badge.svg)](https://namespace.so/github-actions/?utm_source=oss&utm_campaign=papermc)
[![YourKit-Logo](https://www.yourkit.com/images/yklogo.png)](https://www.yourkit.com/)
[YourKit](https://www.yourkit.com/), makers of the outstanding java profiler, support open source projects of all kinds with their full featured [Java](https://www.yourkit.com/java/profiler) and [.NET](https://www.yourkit.com/.net/profiler) application profilers. We thank them for granting Paper an OSS license so that we can make our software the best it can be.
+25 -32
View File
@@ -5,7 +5,6 @@ private-f net.minecraft.server.MinecraftServer connection
private-f net.minecraft.server.MinecraftServer levels
private-f net.minecraft.world.item.ItemStack components
private-f net.minecraft.world.item.ItemStack item
private-f net.minecraft.world.item.crafting.RecipeManager learnableRecipes
private-f net.minecraft.world.level.block.entity.BeehiveBlockEntity stored
protected net.minecraft.world.entity.LivingEntity skipDropExperience
protected net.minecraft.world.level.Level thread
@@ -16,8 +15,6 @@ public net.minecraft.commands.CommandSourceStack source
public net.minecraft.commands.arguments.DimensionArgument ERROR_INVALID_VALUE
public net.minecraft.commands.arguments.blocks.BlockInput tag
public net.minecraft.core.MappedRegistry validateWrite(Lnet/minecraft/resources/ResourceKey;)V
public net.minecraft.core.component.DataComponentPatch map
public net.minecraft.core.component.Removed
public net.minecraft.nbt.ListTag <init>(Ljava/util/List;)V
public net.minecraft.nbt.ListTag identifyRawElementType()B
public net.minecraft.network.Connection address
@@ -25,12 +22,12 @@ public net.minecraft.network.Connection channel
public net.minecraft.network.chat.contents.TranslatableContents PRIMITIVE_ARG_CODEC
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.syncher.SynchedEntityData getItem(Lnet/minecraft/network/syncher/EntityDataAccessor;)Lnet/minecraft/network/syncher/SynchedEntityData$DataItem;
public net.minecraft.resources.RegistryOps <init>(Lcom/mojang/serialization/DynamicOps;Lnet/minecraft/resources/RegistryOps$RegistryInfoLookup;)V
public net.minecraft.resources.RegistryOps lookupProvider
public net.minecraft.resources.RegistryOps$HolderLookupAdapter
public net.minecraft.server.Main forceUpgrade(Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;Lcom/mojang/datafixers/DataFixer;ZLjava/util/function/BooleanSupplier;Lnet/minecraft/core/RegistryAccess;Z)V
public net.minecraft.server.MinecraftServer LOGGER
public net.minecraft.server.RegistryLayer STATIC_ACCESS
public net.minecraft.server.ServerAdvancementManager advancements
public net.minecraft.server.Services USERID_CACHE_FILE
public net.minecraft.server.dedicated.DedicatedServerProperties$WorldDimensionData
public net.minecraft.server.dedicated.DedicatedServerProperties$WorldDimensionData <init>(Lcom/google/gson/JsonObject;Ljava/lang/String;)V
@@ -79,7 +76,6 @@ public net.minecraft.server.level.ServerPlayer wardenSpawnTracker
public net.minecraft.server.level.ServerPlayer$RespawnPosAngle
public net.minecraft.server.level.ServerPlayer$RespawnPosAngle <init>(Lnet/minecraft/world/phys/Vec3;FF)V
public net.minecraft.server.level.ServerPlayerGameMode hasDelayedDestroy
public net.minecraft.server.network.ServerCommandSuggestionsProvider limitSuggestionCount(Lcom/mojang/brigadier/suggestion/Suggestions;)Lcom/mojang/brigadier/suggestion/Suggestions;
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
@@ -124,9 +120,6 @@ public net.minecraft.world.entity.AgeableMob setAgeLocked(Z)V
public net.minecraft.world.entity.AreaEffectCloud owner
public net.minecraft.world.entity.AreaEffectCloud reapplicationDelay
public net.minecraft.world.entity.Avatar DATA_PLAYER_MODE_CUSTOMISATION
public net.minecraft.world.entity.ConversionTracker afflictionTime
public net.minecraft.world.entity.ConversionTracker conversionTime
public net.minecraft.world.entity.ConversionTracker setConverting(Z)V
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;
@@ -168,8 +161,6 @@ public net.minecraft.world.entity.Display$TextDisplay setText(Lnet/minecraft/net
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 getAirDrag()F
public net.minecraft.world.entity.Entity getDefaultGravity()D
public net.minecraft.world.entity.Entity getEncodeId()Ljava/lang/String;
public net.minecraft.world.entity.Entity getFireImmuneTicks()I
public net.minecraft.world.entity.Entity getSharedFlag(I)Z
@@ -344,8 +335,8 @@ 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.Enderman teleport()Z
public net.minecraft.world.entity.monster.Enderman teleportTowards(Lnet/minecraft/world/entity/Entity;)Z
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
public net.minecraft.world.entity.monster.Guardian randomStrollGoal
public net.minecraft.world.entity.monster.Guardian setActiveAttackTarget(I)V
@@ -379,13 +370,15 @@ public net.minecraft.world.entity.monster.piglin.AbstractPiglin isImmuneToZombif
public net.minecraft.world.entity.monster.piglin.AbstractPiglin timeInOverworld
public net.minecraft.world.entity.monster.piglin.Piglin cannotHunt
public net.minecraft.world.entity.monster.piglin.Piglin isChargingCrossbow()Z
public net.minecraft.world.entity.monster.skeleton.Skeleton freezingTracker
public net.minecraft.world.entity.monster.skeleton.Skeleton conversionTime
public net.minecraft.world.entity.monster.skeleton.Skeleton inPowderSnowTime
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTicks
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V
public net.minecraft.world.entity.monster.warden.WardenSpawnTracker ticksSinceLastWarning
public net.minecraft.world.entity.monster.zombie.Zombie DOOR_BREAKING_PREDICATE
public net.minecraft.world.entity.monster.zombie.Zombie drowningTracker
public net.minecraft.world.entity.monster.zombie.Zombie conversionTime
public net.minecraft.world.entity.monster.zombie.Zombie isSunSensitive()Z
public net.minecraft.world.entity.monster.zombie.Zombie startUnderWaterConversion(I)V
public net.minecraft.world.entity.monster.zombie.ZombieVillager DATA_CONVERTING_ID
public net.minecraft.world.entity.monster.zombie.ZombieVillager conversionStarter
public net.minecraft.world.entity.monster.zombie.ZombieVillager villagerConversionTime
@@ -396,7 +389,6 @@ public net.minecraft.world.entity.npc.villager.Villager updateDemand()V
public net.minecraft.world.entity.npc.villager.Villager updateSpecialPrices(Lnet/minecraft/world/entity/player/Player;)V
public net.minecraft.world.entity.npc.wanderingtrader.WanderingTrader getWanderTarget()Lnet/minecraft/core/BlockPos;
public net.minecraft.world.entity.player.Inventory equipment
public net.minecraft.world.entity.player.Player canCriticalAttack(Lnet/minecraft/world/entity/Entity;)Z
public net.minecraft.world.entity.player.Player closeContainer()V
public net.minecraft.world.entity.player.Player enchantmentSeed
public net.minecraft.world.entity.player.Player hurtDir
@@ -477,10 +469,8 @@ public net.minecraft.world.inventory.AbstractMountInventoryMenu mount
public net.minecraft.world.inventory.AnvilMenu cost
public net.minecraft.world.inventory.AnvilMenu itemName
public net.minecraft.world.inventory.AnvilMenu repairItemCountCost
public net.minecraft.world.inventory.BrewingStandMenu DATA_COUNT
public net.minecraft.world.inventory.BrewingStandMenu brewingStandData
public net.minecraft.world.inventory.CraftingMenu access
public net.minecraft.world.inventory.LecternMenu DATA_COUNT
public net.minecraft.world.inventory.MerchantContainer selectionHint
public net.minecraft.world.item.AdventureModePredicate predicates
public net.minecraft.world.item.CrossbowItem FIREWORK_POWER
@@ -498,6 +488,7 @@ 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.Ingredient values
public net.minecraft.world.item.crafting.RecipeManager recipes
public net.minecraft.world.item.crafting.RecipeMap byKey
public net.minecraft.world.item.crafting.RecipeMap byType
public net.minecraft.world.item.trading.MerchantOffer demand
@@ -532,15 +523,14 @@ public net.minecraft.world.level.block.ComposterBlock$InputContainer
public net.minecraft.world.level.block.ComposterBlock$OutputContainer
public net.minecraft.world.level.block.DispenserBlock dispenseFrom(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)V
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.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.TurtleEggBlock decreaseEggs(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)V
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingTimer
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingTotalTime
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity getTotalCookTime(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity;)I
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity litTimeRemaining
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity quickCheck
public net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity recipesUsed
public net.minecraft.world.level.block.entity.BannerBlockEntity name
public net.minecraft.world.level.block.entity.BarrelBlockEntity openersCounter
@@ -557,7 +547,6 @@ public net.minecraft.world.level.block.entity.BlockEntity saveId(Lnet/minecraft/
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
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity totalBrewTime
public net.minecraft.world.level.block.entity.BrushableBlockEntity item
public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTable
public net.minecraft.world.level.block.entity.BrushableBlockEntity lootTableSeed
@@ -585,7 +574,6 @@ public net.minecraft.world.level.block.entity.LecternBlockEntity bookAccess
public net.minecraft.world.level.block.entity.LecternBlockEntity setPage(I)V
public net.minecraft.world.level.block.entity.SculkCatalystBlockEntity$CatalystListener bloom(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/util/RandomSource;)V
public net.minecraft.world.level.block.entity.SculkShriekerBlockEntity warningLevel
public net.minecraft.world.level.block.entity.SignBlockEntity allowOpFeatures
public net.minecraft.world.level.block.entity.SkullBlockEntity customName
public net.minecraft.world.level.block.entity.SkullBlockEntity noteBlockSound
public net.minecraft.world.level.block.entity.SkullBlockEntity owner
@@ -633,13 +621,21 @@ public net.minecraft.world.level.dimension.end.EnderDragonFight spawnNewGateway(
public net.minecraft.world.level.entity.PersistentEntitySectionManager ensureChunkQueuedForLoad(J)V
public net.minecraft.world.level.entity.PersistentEntitySectionManager permanentStorage
public net.minecraft.world.level.gamerules.GameRules rules
public net.minecraft.world.level.levelgen.material.MaterialRuleContext context
public net.minecraft.world.level.levelgen.SurfaceRules$Condition
public net.minecraft.world.level.levelgen.SurfaceRules$Context
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockX
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockY
public net.minecraft.world.level.levelgen.SurfaceRules$Context blockZ
public net.minecraft.world.level.levelgen.SurfaceRules$Context context
public net.minecraft.world.level.levelgen.SurfaceRules$Context randomState
public net.minecraft.world.level.levelgen.SurfaceRules$LazyCondition
public net.minecraft.world.level.levelgen.SurfaceRules$LazyYCondition
public net.minecraft.world.level.levelgen.structure.StructurePiece SHAPE_CHECK_BLOCKS
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement exclusionZone
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement frequency
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement frequencyReductionMethod
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement locateOffset
public net.minecraft.world.level.levelgen.structure.placement.AbstractSpreadingStructurePlacement salt
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement exclusionZone
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement frequency
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement frequencyReductionMethod
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement locateOffset
public net.minecraft.world.level.levelgen.structure.placement.StructurePlacement salt
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate entityInfoList
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate palettes
public net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager resourceManagerSource
@@ -655,13 +651,11 @@ public net.minecraft.world.level.saveddata.maps.MapItemSavedData decorations
public net.minecraft.world.level.storage.PrimaryLevelData settings
public net.minecraft.world.level.storage.SavedDataStorage cache
public net.minecraft.world.level.storage.TagValueInput input
public net.minecraft.world.level.storage.loot.providers.number.ints.ResolvableInt$Reference getProvider(Lnet/minecraft/world/level/storage/loot/LootContext;)Ljava/util/Optional;
public net.minecraft.world.scores.criteria.ObjectiveCriteria CRITERIA_CACHE
public-f net.minecraft.server.MinecraftServer potionBrewing
public-f net.minecraft.server.MinecraftServer storageSource
public-f net.minecraft.server.ServerAdvancementManager advancements
public-f net.minecraft.server.dedicated.DedicatedServer serverLinks
public-f net.minecraft.server.dedicated.DedicatedServer settings
public-f net.minecraft.world.entity.Entity doTeamsAllowDamage(Lnet/minecraft/world/entity/Entity;)Z
public-f net.minecraft.world.entity.LivingEntity combatTracker
public-f net.minecraft.world.entity.Mob targetSelector
public-f net.minecraft.world.entity.ai.attributes.RangedAttribute maxValue
@@ -672,7 +666,6 @@ public-f net.minecraft.world.inventory.AbstractContainerMenu lastSlots
public-f net.minecraft.world.inventory.AbstractContainerMenu remoteDataSlots
public-f net.minecraft.world.inventory.AbstractContainerMenu remoteSlots
public-f net.minecraft.world.inventory.AbstractContainerMenu slots
public-f net.minecraft.world.item.crafting.RecipeManager recipes
public-f net.minecraft.world.item.trading.MerchantOffer baseCostA
public-f net.minecraft.world.item.trading.MerchantOffer costB
public-f net.minecraft.world.item.trading.MerchantOffer maxUses
+1 -1
View File
@@ -4,7 +4,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.24" apply false
id("io.papermc.paperweight.core") version "2.0.0-beta.21" apply false
}
subprojects {
+2 -2
View File
@@ -1,8 +1,8 @@
group=io.papermc.paper
mcVersion=26.3
mcVersion=26.2
# This is the current API version for use in (paper-)plugin.yml files
# During snapshot cycles this should be the anticipated version of the release target
apiVersion=26.3
apiVersion=26.2
channel=STABLE
# Set to true while updating Minecraft version
Binary file not shown.
+1 -3
View File
@@ -1,9 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.8.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored
+3 -3
View File
@@ -20,7 +20,7 @@
##############################################################################
#
# gradlew start up script for POSIX generated by Gradle.
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
@@ -29,7 +29,7 @@
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh gradlew
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Vendored
+33 -52
View File
@@ -19,39 +19,12 @@
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem gradlew startup script for Windows
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables, and ensure extensions are enabled
setlocal EnableExtensions
@rem Catch executions from older scripts and ensure they exit cleanly.
@rem This can be removed once we can be reasonably confident that few people
@rem will be migrating directly to this new wrapper.
goto afterSafetyNet
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
goto exitWithErrorLevel
:afterSafetyNet
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@@ -72,14 +45,13 @@ set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
1>&2 echo.
1>&2 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
1>&2 echo.
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
1>&2 echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
"%COMSPEC%" /c exit 1
goto exitWithErrorLevel
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
@@ -87,26 +59,35 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
1>&2 echo.
1>&2 echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
1>&2 echo.
1>&2 echo Please set the JAVA_HOME variable in your environment to match the
1>&2 echo location of your Java installation.
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
"%COMSPEC%" /c exit 1
goto exitWithErrorLevel
goto fail
:execute
@rem Setup the command line
@rem Execute gradlew
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel & goto exitWithErrorLevel
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
@rem This label must not be changed. We rely on old scripts being able to jump to this point.
:exitWithErrorLevel
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
"%COMSPEC%" /c exit %ERRORLEVEL%
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
+1 -6
View File
@@ -10,11 +10,6 @@
<property name="arguments" value="(${custom_javadoc_tags}|[A-Z].*)"/>
</module>
<module name="TreeWalker">
<!--Skip generated content by typewriter-->
<module name="SuppressionCommentFilter">
<property name="offCommentFormat" value="Start generate - \w+$"/>
<property name="onCommentFormat" value="End generate - \w+$"/>
</module>
<module name="JavadocVariable">
<!--requires on public fields-->
<property name="accessModifiers" value="public"/>
@@ -25,7 +20,7 @@
</module>
<module name="MissingJavadocPackage"/>
<module name="MissingJavadocType">
<property name="skipAnnotations" value="Generated, ApiStatus.Internal"/>
<property name="skipAnnotations" value="Generated, ApiStatus.Internal" />
</module>
</module>
</module>
+10 -8
View File
@@ -22,17 +22,17 @@ paperCheckstyle {
directoriesToSkipFile = layout.projectDirectory.file(".checkstyle/ignored_directories.txt")
}
val annotationsVersion = "26.1.0"
val annotationsVersion = "26.0.2"
val adventureVersion = "5.2.0"
val bungeeCordChatVersion = "1.21-R0.2-deprecated+build.21"
val slf4jVersion = "2.0.17"
val log4jVersion = "2.26.0"
val apiAndDocs: Configuration = configurations.create("apiAndDocs")
val apiAndDocs: Configuration by configurations.creating
configurations.api {
extendsFrom(apiAndDocs)
}
val javadocSourcepath: Configuration = configurations.create("javadocSourcepath") {
val javadocSourcepath: Configuration by configurations.creating {
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.DOCUMENTATION))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling.EXTERNAL))
@@ -57,11 +57,13 @@ dependencies {
api("com.google.guava:guava:33.6.0-jre")
api("com.google.code.gson:gson:2.14.0")
api("org.yaml:snakeyaml:2.2")
api("org.joml:joml:1.10.9")
api("org.joml:joml:1.10.8") {
isTransitive = false // https://github.com/JOML-CI/JOML/issues/352
}
api("it.unimi.dsi:fastutil:8.5.18")
api("org.apache.logging.log4j:log4j-api:$log4jVersion")
api("org.slf4j:slf4j-api:$slf4jVersion")
api("com.mojang:brigadier:1.3.11")
api("com.mojang:brigadier:1.3.10")
// Deprecate bungeecord-chat in favor of adventure
api("net.md-5:bungeecord-chat:$bungeeCordChatVersion") {
@@ -87,7 +89,7 @@ dependencies {
testCompileOnly(annotations)
javadocSourcepath(annotations) // For adventure-api module requirements
val checkerQual = "org.checkerframework:checker-qual:4.2.3"
val checkerQual = "org.checkerframework:checker-qual:3.49.2"
compileOnlyApi(checkerQual)
testCompileOnly(checkerQual)
@@ -205,7 +207,7 @@ tasks.withType<Javadoc>().configureEach {
"https://guava.dev/releases/33.6.0-jre/api/docs/",
"https://www.javadocs.dev/org.yaml/snakeyaml/2.2/",
"https://www.javadocs.dev/org.jetbrains/annotations/$annotationsVersion/",
"https://www.javadocs.dev/org.joml/joml/1.10.9/",
"https://www.javadocs.dev/org.joml/joml/1.10.8/",
"https://www.javadocs.dev/com.google.code.gson/gson/2.14.0",
"https://jspecify.dev/docs/api/",
"https://jd.papermc.io/adventure/$adventureVersion/",
@@ -251,7 +253,7 @@ tasks.compileTestJava {
options.compilerArgs.add("-parameters")
}
val scanJarForBadCalls = tasks.register<io.papermc.paperweight.tasks.ScanJarForBadCalls>("scanJarForBadCalls") {
val scanJarForBadCalls by tasks.registering(io.papermc.paperweight.tasks.ScanJarForBadCalls::class) {
badAnnotations.add("Lio/papermc/paper/annotation/DoNotUse;")
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
classpath.from(configurations.compileClasspath)
@@ -123,7 +123,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Cat> CAT_AVOID_ENTITY = create("cat_avoid_entity", Cat.class);
GoalKey<Cat> CAT_LIE_ON_BLOCK = create("cat_lie_on_block", Cat.class);
GoalKey<Cat> CAT_LIE_ON_BED = create("cat_lie_on_bed", Cat.class);
GoalKey<Cat> CAT_RELAX_ON_OWNER = create("cat_relax_on_owner", Cat.class);
@@ -171,7 +171,7 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Creature> TEMPT = create("tempt", Creature.class);
GoalKey<Creature> TRY_FIND_LIQUID = create("try_find_liquid", Creature.class);
GoalKey<Creature> TRY_FIND_WATER = create("try_find_water", Creature.class);
GoalKey<Creature> WATER_AVOIDING_RANDOM_FLYING = create("water_avoiding_random_flying", Creature.class);
@@ -181,8 +181,6 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Dolphin> DOLPHIN_JUMP = create("dolphin_jump", Dolphin.class);
GoalKey<Dolphin> DOLPHIN_MOVE_TO_ITEM = create("dolphin_move_to_item", 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);
@@ -81,13 +81,6 @@ public final class BiomeKeys {
*/
public static final TypedKey<Biome> CRIMSON_FOREST = create(key("crimson_forest"));
/**
* {@code minecraft:dappled_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Biome> DAPPLED_FOREST = create(key("dappled_forest"));
/**
* {@code minecraft:dark_forest}
*
@@ -655,20 +655,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BLACK_CONCRETE_POWDER = create(key("black_concrete_powder"));
/**
* {@code minecraft:black_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLACK_CONCRETE_SLAB = create(key("black_concrete_slab"));
/**
* {@code minecraft:black_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLACK_CONCRETE_STAIRS = create(key("black_concrete_stairs"));
/**
* {@code minecraft:black_glazed_terracotta}
*
@@ -718,20 +704,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BLACK_WOOL = create(key("black_wool"));
/**
* {@code minecraft:black_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLACK_WOOL_SLAB = create(key("black_wool_slab"));
/**
* {@code minecraft:black_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLACK_WOOL_STAIRS = create(key("black_wool_stairs"));
/**
* {@code minecraft:blackstone}
*
@@ -816,20 +788,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BLUE_CONCRETE_POWDER = create(key("blue_concrete_powder"));
/**
* {@code minecraft:blue_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLUE_CONCRETE_SLAB = create(key("blue_concrete_slab"));
/**
* {@code minecraft:blue_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLUE_CONCRETE_STAIRS = create(key("blue_concrete_stairs"));
/**
* {@code minecraft:blue_glazed_terracotta}
*
@@ -893,20 +851,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BLUE_WOOL = create(key("blue_wool"));
/**
* {@code minecraft:blue_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLUE_WOOL_SLAB = create(key("blue_wool_slab"));
/**
* {@code minecraft:blue_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BLUE_WOOL_STAIRS = create(key("blue_wool_stairs"));
/**
* {@code minecraft:bone_block}
*
@@ -1033,20 +977,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BROWN_CONCRETE_POWDER = create(key("brown_concrete_powder"));
/**
* {@code minecraft:brown_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BROWN_CONCRETE_SLAB = create(key("brown_concrete_slab"));
/**
* {@code minecraft:brown_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BROWN_CONCRETE_STAIRS = create(key("brown_concrete_stairs"));
/**
* {@code minecraft:brown_glazed_terracotta}
*
@@ -1110,20 +1040,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> BROWN_WOOL = create(key("brown_wool"));
/**
* {@code minecraft:brown_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BROWN_WOOL_SLAB = create(key("brown_wool_slab"));
/**
* {@code minecraft:brown_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> BROWN_WOOL_STAIRS = create(key("brown_wool_stairs"));
/**
* {@code minecraft:bubble_column}
*
@@ -2132,20 +2048,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CYAN_CONCRETE_POWDER = create(key("cyan_concrete_powder"));
/**
* {@code minecraft:cyan_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CYAN_CONCRETE_SLAB = create(key("cyan_concrete_slab"));
/**
* {@code minecraft:cyan_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CYAN_CONCRETE_STAIRS = create(key("cyan_concrete_stairs"));
/**
* {@code minecraft:cyan_glazed_terracotta}
*
@@ -2195,20 +2097,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> CYAN_WOOL = create(key("cyan_wool"));
/**
* {@code minecraft:cyan_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CYAN_WOOL_SLAB = create(key("cyan_wool_slab"));
/**
* {@code minecraft:cyan_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> CYAN_WOOL_STAIRS = create(key("cyan_wool_stairs"));
/**
* {@code minecraft:damaged_anvil}
*
@@ -3217,20 +3105,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> GRAY_CONCRETE_POWDER = create(key("gray_concrete_powder"));
/**
* {@code minecraft:gray_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GRAY_CONCRETE_SLAB = create(key("gray_concrete_slab"));
/**
* {@code minecraft:gray_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GRAY_CONCRETE_STAIRS = create(key("gray_concrete_stairs"));
/**
* {@code minecraft:gray_glazed_terracotta}
*
@@ -3280,20 +3154,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> GRAY_WOOL = create(key("gray_wool"));
/**
* {@code minecraft:gray_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GRAY_WOOL_SLAB = create(key("gray_wool_slab"));
/**
* {@code minecraft:gray_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GRAY_WOOL_STAIRS = create(key("gray_wool_stairs"));
/**
* {@code minecraft:green_banner}
*
@@ -3343,20 +3203,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> GREEN_CONCRETE_POWDER = create(key("green_concrete_powder"));
/**
* {@code minecraft:green_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GREEN_CONCRETE_SLAB = create(key("green_concrete_slab"));
/**
* {@code minecraft:green_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GREEN_CONCRETE_STAIRS = create(key("green_concrete_stairs"));
/**
* {@code minecraft:green_glazed_terracotta}
*
@@ -3406,20 +3252,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> GREEN_WOOL = create(key("green_wool"));
/**
* {@code minecraft:green_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GREEN_WOOL_SLAB = create(key("green_wool_slab"));
/**
* {@code minecraft:green_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> GREEN_WOOL_STAIRS = create(key("green_wool_stairs"));
/**
* {@code minecraft:grindstone}
*
@@ -3896,20 +3728,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIGHT_BLUE_CONCRETE_POWDER = create(key("light_blue_concrete_powder"));
/**
* {@code minecraft:light_blue_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_BLUE_CONCRETE_SLAB = create(key("light_blue_concrete_slab"));
/**
* {@code minecraft:light_blue_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_BLUE_CONCRETE_STAIRS = create(key("light_blue_concrete_stairs"));
/**
* {@code minecraft:light_blue_glazed_terracotta}
*
@@ -3959,20 +3777,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIGHT_BLUE_WOOL = create(key("light_blue_wool"));
/**
* {@code minecraft:light_blue_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_BLUE_WOOL_SLAB = create(key("light_blue_wool_slab"));
/**
* {@code minecraft:light_blue_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_BLUE_WOOL_STAIRS = create(key("light_blue_wool_stairs"));
/**
* {@code minecraft:light_gray_banner}
*
@@ -4022,20 +3826,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIGHT_GRAY_CONCRETE_POWDER = create(key("light_gray_concrete_powder"));
/**
* {@code minecraft:light_gray_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_GRAY_CONCRETE_SLAB = create(key("light_gray_concrete_slab"));
/**
* {@code minecraft:light_gray_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_GRAY_CONCRETE_STAIRS = create(key("light_gray_concrete_stairs"));
/**
* {@code minecraft:light_gray_glazed_terracotta}
*
@@ -4085,20 +3875,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIGHT_GRAY_WOOL = create(key("light_gray_wool"));
/**
* {@code minecraft:light_gray_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_GRAY_WOOL_SLAB = create(key("light_gray_wool_slab"));
/**
* {@code minecraft:light_gray_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIGHT_GRAY_WOOL_STAIRS = create(key("light_gray_wool_stairs"));
/**
* {@code minecraft:light_weighted_pressure_plate}
*
@@ -4183,20 +3959,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIME_CONCRETE_POWDER = create(key("lime_concrete_powder"));
/**
* {@code minecraft:lime_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIME_CONCRETE_SLAB = create(key("lime_concrete_slab"));
/**
* {@code minecraft:lime_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIME_CONCRETE_STAIRS = create(key("lime_concrete_stairs"));
/**
* {@code minecraft:lime_glazed_terracotta}
*
@@ -4246,20 +4008,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> LIME_WOOL = create(key("lime_wool"));
/**
* {@code minecraft:lime_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIME_WOOL_SLAB = create(key("lime_wool_slab"));
/**
* {@code minecraft:lime_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> LIME_WOOL_STAIRS = create(key("lime_wool_stairs"));
/**
* {@code minecraft:lodestone}
*
@@ -4323,20 +4071,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> MAGENTA_CONCRETE_POWDER = create(key("magenta_concrete_powder"));
/**
* {@code minecraft:magenta_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> MAGENTA_CONCRETE_SLAB = create(key("magenta_concrete_slab"));
/**
* {@code minecraft:magenta_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> MAGENTA_CONCRETE_STAIRS = create(key("magenta_concrete_stairs"));
/**
* {@code minecraft:magenta_glazed_terracotta}
*
@@ -4386,20 +4120,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> MAGENTA_WOOL = create(key("magenta_wool"));
/**
* {@code minecraft:magenta_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> MAGENTA_WOOL_SLAB = create(key("magenta_wool_slab"));
/**
* {@code minecraft:magenta_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> MAGENTA_WOOL_STAIRS = create(key("magenta_wool_stairs"));
/**
* {@code minecraft:magma_block}
*
@@ -4995,20 +4715,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> ORANGE_CONCRETE_POWDER = create(key("orange_concrete_powder"));
/**
* {@code minecraft:orange_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ORANGE_CONCRETE_SLAB = create(key("orange_concrete_slab"));
/**
* {@code minecraft:orange_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ORANGE_CONCRETE_STAIRS = create(key("orange_concrete_stairs"));
/**
* {@code minecraft:orange_glazed_terracotta}
*
@@ -5016,13 +4722,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> ORANGE_GLAZED_TERRACOTTA = create(key("orange_glazed_terracotta"));
/**
* {@code minecraft:orange_poplar_leaves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ORANGE_POPLAR_LEAVES = create(key("orange_poplar_leaves"));
/**
* {@code minecraft:orange_shulker_box}
*
@@ -5072,20 +4771,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> ORANGE_WOOL = create(key("orange_wool"));
/**
* {@code minecraft:orange_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ORANGE_WOOL_SLAB = create(key("orange_wool_slab"));
/**
* {@code minecraft:orange_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> ORANGE_WOOL_STAIRS = create(key("orange_wool_stairs"));
/**
* {@code minecraft:oxeye_daisy}
*
@@ -5443,20 +5128,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> PINK_CONCRETE_POWDER = create(key("pink_concrete_powder"));
/**
* {@code minecraft:pink_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PINK_CONCRETE_SLAB = create(key("pink_concrete_slab"));
/**
* {@code minecraft:pink_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PINK_CONCRETE_STAIRS = create(key("pink_concrete_stairs"));
/**
* {@code minecraft:pink_glazed_terracotta}
*
@@ -5520,20 +5191,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> PINK_WOOL = create(key("pink_wool"));
/**
* {@code minecraft:pink_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PINK_WOOL_SLAB = create(key("pink_wool_slab"));
/**
* {@code minecraft:pink_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PINK_WOOL_STAIRS = create(key("pink_wool_stairs"));
/**
* {@code minecraft:piston}
*
@@ -5842,125 +5499,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> POLISHED_TUFF_WALL = create(key("polished_tuff_wall"));
/**
* {@code minecraft:poplar_button}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_BUTTON = create(key("poplar_button"));
/**
* {@code minecraft:poplar_door}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_DOOR = create(key("poplar_door"));
/**
* {@code minecraft:poplar_fence}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_FENCE = create(key("poplar_fence"));
/**
* {@code minecraft:poplar_fence_gate}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_FENCE_GATE = create(key("poplar_fence_gate"));
/**
* {@code minecraft:poplar_hanging_sign}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_HANGING_SIGN = create(key("poplar_hanging_sign"));
/**
* {@code minecraft:poplar_log}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_LOG = create(key("poplar_log"));
/**
* {@code minecraft:poplar_planks}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_PLANKS = create(key("poplar_planks"));
/**
* {@code minecraft:poplar_pressure_plate}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_PRESSURE_PLATE = create(key("poplar_pressure_plate"));
/**
* {@code minecraft:poplar_sapling}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_SAPLING = create(key("poplar_sapling"));
/**
* {@code minecraft:poplar_shelf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_SHELF = create(key("poplar_shelf"));
/**
* {@code minecraft:poplar_sign}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_SIGN = create(key("poplar_sign"));
/**
* {@code minecraft:poplar_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_SLAB = create(key("poplar_slab"));
/**
* {@code minecraft:poplar_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_STAIRS = create(key("poplar_stairs"));
/**
* {@code minecraft:poplar_trapdoor}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_TRAPDOOR = create(key("poplar_trapdoor"));
/**
* {@code minecraft:poplar_wall_hanging_sign}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_WALL_HANGING_SIGN = create(key("poplar_wall_hanging_sign"));
/**
* {@code minecraft:poplar_wall_sign}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_WALL_SIGN = create(key("poplar_wall_sign"));
/**
* {@code minecraft:poplar_wood}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POPLAR_WOOD = create(key("poplar_wood"));
/**
* {@code minecraft:poppy}
*
@@ -6185,13 +5723,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> POTTED_PINK_TULIP = create(key("potted_pink_tulip"));
/**
* {@code minecraft:potted_poplar_sapling}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> POTTED_POPLAR_SAPLING = create(key("potted_poplar_sapling"));
/**
* {@code minecraft:potted_poppy}
*
@@ -6388,20 +5919,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> PURPLE_CONCRETE_POWDER = create(key("purple_concrete_powder"));
/**
* {@code minecraft:purple_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PURPLE_CONCRETE_SLAB = create(key("purple_concrete_slab"));
/**
* {@code minecraft:purple_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PURPLE_CONCRETE_STAIRS = create(key("purple_concrete_stairs"));
/**
* {@code minecraft:purple_glazed_terracotta}
*
@@ -6451,20 +5968,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> PURPLE_WOOL = create(key("purple_wool"));
/**
* {@code minecraft:purple_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PURPLE_WOOL_SLAB = create(key("purple_wool_slab"));
/**
* {@code minecraft:purple_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> PURPLE_WOOL_STAIRS = create(key("purple_wool_stairs"));
/**
* {@code minecraft:purpur_block}
*
@@ -6605,20 +6108,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> RED_CONCRETE_POWDER = create(key("red_concrete_powder"));
/**
* {@code minecraft:red_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_CONCRETE_SLAB = create(key("red_concrete_slab"));
/**
* {@code minecraft:red_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_CONCRETE_STAIRS = create(key("red_concrete_stairs"));
/**
* {@code minecraft:red_glazed_terracotta}
*
@@ -6668,13 +6157,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> RED_NETHER_BRICKS = create(key("red_nether_bricks"));
/**
* {@code minecraft:red_poplar_leaves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_POPLAR_LEAVES = create(key("red_poplar_leaves"));
/**
* {@code minecraft:red_sand}
*
@@ -6710,13 +6192,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> RED_SANDSTONE_WALL = create(key("red_sandstone_wall"));
/**
* {@code minecraft:red_shrub}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_SHRUB = create(key("red_shrub"));
/**
* {@code minecraft:red_shulker_box}
*
@@ -6766,20 +6241,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> RED_WOOL = create(key("red_wool"));
/**
* {@code minecraft:red_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_WOOL_SLAB = create(key("red_wool_slab"));
/**
* {@code minecraft:red_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> RED_WOOL_STAIRS = create(key("red_wool_stairs"));
/**
* {@code minecraft:redstone_block}
*
@@ -7004,13 +6465,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> SEAGRASS = create(key("seagrass"));
/**
* {@code minecraft:shelf_mushroom}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> SHELF_MUSHROOM = create(key("shelf_mushroom"));
/**
* {@code minecraft:short_dry_grass}
*
@@ -7466,13 +6920,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> STONECUTTER = create(key("stonecutter"));
/**
* {@code minecraft:straw_bed}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> STRAW_BED = create(key("straw_bed"));
/**
* {@code minecraft:stripped_acacia_log}
*
@@ -7606,20 +7053,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> STRIPPED_PALE_OAK_WOOD = create(key("stripped_pale_oak_wood"));
/**
* {@code minecraft:stripped_poplar_log}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> STRIPPED_POPLAR_LOG = create(key("stripped_poplar_log"));
/**
* {@code minecraft:stripped_poplar_wood}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> STRIPPED_POPLAR_WOOD = create(key("stripped_poplar_wood"));
/**
* {@code minecraft:stripped_spruce_log}
*
@@ -8768,20 +8201,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WHITE_CONCRETE_POWDER = create(key("white_concrete_powder"));
/**
* {@code minecraft:white_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WHITE_CONCRETE_SLAB = create(key("white_concrete_slab"));
/**
* {@code minecraft:white_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WHITE_CONCRETE_STAIRS = create(key("white_concrete_stairs"));
/**
* {@code minecraft:white_glazed_terracotta}
*
@@ -8838,20 +8257,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> WHITE_WOOL = create(key("white_wool"));
/**
* {@code minecraft:white_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WHITE_WOOL_SLAB = create(key("white_wool_slab"));
/**
* {@code minecraft:white_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> WHITE_WOOL_STAIRS = create(key("white_wool_stairs"));
/**
* {@code minecraft:wildflowers}
*
@@ -8929,20 +8334,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> YELLOW_CONCRETE_POWDER = create(key("yellow_concrete_powder"));
/**
* {@code minecraft:yellow_concrete_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> YELLOW_CONCRETE_SLAB = create(key("yellow_concrete_slab"));
/**
* {@code minecraft:yellow_concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> YELLOW_CONCRETE_STAIRS = create(key("yellow_concrete_stairs"));
/**
* {@code minecraft:yellow_glazed_terracotta}
*
@@ -8950,13 +8341,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> YELLOW_GLAZED_TERRACOTTA = create(key("yellow_glazed_terracotta"));
/**
* {@code minecraft:yellow_poplar_leaves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> YELLOW_POPLAR_LEAVES = create(key("yellow_poplar_leaves"));
/**
* {@code minecraft:yellow_shulker_box}
*
@@ -8999,20 +8383,6 @@ public final class BlockTypeKeys {
*/
public static final TypedKey<BlockType> YELLOW_WOOL = create(key("yellow_wool"));
/**
* {@code minecraft:yellow_wool_slab}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> YELLOW_WOOL_SLAB = create(key("yellow_wool_slab"));
/**
* {@code minecraft:yellow_wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<BlockType> YELLOW_WOOL_STAIRS = create(key("yellow_wool_stairs"));
/**
* {@code minecraft:zombie_head}
*
@@ -32,13 +32,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> ADDITIONAL_TRADE_COST = create(key("additional_trade_cost"));
/**
* {@code minecraft:attack_animation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> ATTACK_ANIMATION = create(key("attack_animation"));
/**
* {@code minecraft:attack_range}
*
@@ -95,13 +88,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> BLOCK_STATE = create(key("block_state"));
/**
* {@code minecraft:block_transformer}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> BLOCK_TRANSFORMER = create(key("block_transformer"));
/**
* {@code minecraft:blocks_attacks}
*
@@ -116,13 +102,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> BREAK_SOUND = create(key("break_sound"));
/**
* {@code minecraft:brewing_fuel}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> BREWING_FUEL = create(key("brewing_fuel"));
/**
* {@code minecraft:bucket_entity_data}
*
@@ -193,13 +172,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> CHICKEN_VARIANT = create(key("chicken/variant"));
/**
* {@code minecraft:compostable}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> COMPOSTABLE = create(key("compostable"));
/**
* {@code minecraft:consumable}
*
@@ -221,13 +193,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> CONTAINER_LOOT = create(key("container_loot"));
/**
* {@code minecraft:cooking_fuel}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> COOKING_FUEL = create(key("cooking_fuel"));
/**
* {@code minecraft:cow/sound_variant}
*
@@ -249,13 +214,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> CREATIVE_SLOT_LOCK = create(key("creative_slot_lock"));
/**
* {@code minecraft:cushion/color}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> CUSHION_COLOR = create(key("cushion/color"));
/**
* {@code minecraft:custom_data}
*
@@ -424,13 +382,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> INTANGIBLE_PROJECTILE = create(key("intangible_projectile"));
/**
* {@code minecraft:interact_animation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> INTERACT_ANIMATION = create(key("interact_animation"));
/**
* {@code minecraft:item_model}
*
@@ -487,6 +438,13 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> LORE = create(key("lore"));
/**
* {@code minecraft:map_color}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> MAP_COLOR = create(key("map_color"));
/**
* {@code minecraft:map_decorations}
*
@@ -529,13 +487,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> MINIMUM_ATTACK_CHARGE = create(key("minimum_attack_charge"));
/**
* {@code minecraft:mob_visibility}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> MOB_VISIBILITY = create(key("mob_visibility"));
/**
* {@code minecraft:mooshroom/variant}
*
@@ -627,13 +578,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> PROVIDES_BANNER_PATTERNS = create(key("provides_banner_patterns"));
/**
* {@code minecraft:provides_pottery_pattern}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> PROVIDES_POTTERY_PATTERN = create(key("provides_pottery_pattern"));
/**
* {@code minecraft:provides_trim_material}
*
@@ -697,20 +641,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> SHULKER_COLOR = create(key("shulker/color"));
/**
* {@code minecraft:sign_text_back}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> SIGN_TEXT_BACK = create(key("sign_text_back"));
/**
* {@code minecraft:sign_text_front}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> SIGN_TEXT_FRONT = create(key("sign_text_front"));
/**
* {@code minecraft:stored_enchantments}
*
@@ -732,6 +662,13 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> SUSPICIOUS_STEW_EFFECTS = create(key("suspicious_stew_effects"));
/**
* {@code minecraft:swing_animation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> SWING_ANIMATION = create(key("swing_animation"));
/**
* {@code minecraft:tool}
*
@@ -816,20 +753,6 @@ public final class DataComponentTypeKeys {
*/
public static final TypedKey<DataComponentType> VILLAGER_VARIANT = create(key("villager/variant"));
/**
* {@code minecraft:villager_food}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> VILLAGER_FOOD = create(key("villager_food"));
/**
* {@code minecraft:waxed}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<DataComponentType> WAXED = create(key("waxed"));
/**
* {@code minecraft:weapon}
*
@@ -1,201 +0,0 @@
package io.papermc.paper.registry.keys;
import static net.kyori.adventure.key.Key.key;
import io.papermc.paper.annotation.GeneratedClass;
import io.papermc.paper.block.pot.PotPatternType;
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#DECORATED_POT_PATTERN}.
*
* @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 DecoratedPotPatternKeys {
/**
* {@code minecraft:angler}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> ANGLER = create(key("angler"));
/**
* {@code minecraft:archer}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> ARCHER = create(key("archer"));
/**
* {@code minecraft:arms_up}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> ARMS_UP = create(key("arms_up"));
/**
* {@code minecraft:blade}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> BLADE = create(key("blade"));
/**
* {@code minecraft:brewer}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> BREWER = create(key("brewer"));
/**
* {@code minecraft:burn}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> BURN = create(key("burn"));
/**
* {@code minecraft:danger}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> DANGER = create(key("danger"));
/**
* {@code minecraft:explorer}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> EXPLORER = create(key("explorer"));
/**
* {@code minecraft:flow}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> FLOW = create(key("flow"));
/**
* {@code minecraft:friend}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> FRIEND = create(key("friend"));
/**
* {@code minecraft:guster}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> GUSTER = create(key("guster"));
/**
* {@code minecraft:heart}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> HEART = create(key("heart"));
/**
* {@code minecraft:heartbreak}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> HEARTBREAK = create(key("heartbreak"));
/**
* {@code minecraft:howl}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> HOWL = create(key("howl"));
/**
* {@code minecraft:miner}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> MINER = create(key("miner"));
/**
* {@code minecraft:mourner}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> MOURNER = create(key("mourner"));
/**
* {@code minecraft:plenty}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> PLENTY = create(key("plenty"));
/**
* {@code minecraft:prize}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> PRIZE = create(key("prize"));
/**
* {@code minecraft:scrape}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> SCRAPE = create(key("scrape"));
/**
* {@code minecraft:sheaf}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> SHEAF = create(key("sheaf"));
/**
* {@code minecraft:shelter}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> SHELTER = create(key("shelter"));
/**
* {@code minecraft:skull}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> SKULL = create(key("skull"));
/**
* {@code minecraft:snort}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<PotPatternType> SNORT = create(key("snort"));
private DecoratedPotPatternKeys() {
}
/**
* Creates a typed key for {@link PotPatternType} in the registry {@code minecraft:decorated_pot_pattern}.
*
* @param key the value's key in the registry
* @return a new typed key
*/
public static TypedKey<PotPatternType> create(final Key key) {
return TypedKey.create(RegistryKey.DECORATED_POT_PATTERN, key);
}
}
File diff suppressed because it is too large. Load diff
@@ -25,20 +25,6 @@ import org.jspecify.annotations.NullMarked;
@NullMarked
@GeneratedClass
public final class MapDecorationTypeKeys {
/**
* {@code minecraft:abandoned_camp}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<MapCursor.Type> ABANDONED_CAMP = create(key("abandoned_camp"));
/**
* {@code minecraft:ancient_city}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<MapCursor.Type> ANCIENT_CITY = create(key("ancient_city"));
/**
* {@code minecraft:banner_black}
*
@@ -158,13 +144,6 @@ public final class MapDecorationTypeKeys {
*/
public static final TypedKey<MapCursor.Type> BLUE_MARKER = create(key("blue_marker"));
/**
* {@code minecraft:desert_pyramid}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<MapCursor.Type> DESERT_PYRAMID = create(key("desert_pyramid"));
/**
* {@code minecraft:frame}
*
@@ -186,13 +165,6 @@ public final class MapDecorationTypeKeys {
*/
public static final TypedKey<MapCursor.Type> MANSION = create(key("mansion"));
/**
* {@code minecraft:mineshaft}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<MapCursor.Type> MINESHAFT = create(key("mineshaft"));
/**
* {@code minecraft:monument}
*
@@ -200,13 +172,6 @@ public final class MapDecorationTypeKeys {
*/
public static final TypedKey<MapCursor.Type> MONUMENT = create(key("monument"));
/**
* {@code minecraft:ocean_ruin_warm}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<MapCursor.Type> OCEAN_RUIN_WARM = create(key("ocean_ruin_warm"));
/**
* {@code minecraft:player}
*
@@ -4043,48 +4043,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_POLISHED_TUFF_STEP = create(key("block.polished_tuff.step"));
/**
* {@code minecraft:block.poplar_leaves.ambient}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_AMBIENT = create(key("block.poplar_leaves.ambient"));
/**
* {@code minecraft:block.poplar_leaves.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_BREAK = create(key("block.poplar_leaves.break"));
/**
* {@code minecraft:block.poplar_leaves.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_FALL = create(key("block.poplar_leaves.fall"));
/**
* {@code minecraft:block.poplar_leaves.hit}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_HIT = create(key("block.poplar_leaves.hit"));
/**
* {@code minecraft:block.poplar_leaves.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_PLACE = create(key("block.poplar_leaves.place"));
/**
* {@code minecraft:block.poplar_leaves.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_POPLAR_LEAVES_STEP = create(key("block.poplar_leaves.step"));
/**
* {@code minecraft:block.portal.ambient}
*
@@ -4218,20 +4176,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_PUMPKIN_CARVE = create(key("block.pumpkin.carve"));
/**
* {@code minecraft:block.red_shrub.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_RED_SHRUB_BREAK = create(key("block.red_shrub.break"));
/**
* {@code minecraft:block.red_shrub.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_RED_SHRUB_PLACE = create(key("block.red_shrub.place"));
/**
* {@code minecraft:block.redstone_torch.burnout}
*
@@ -4771,41 +4715,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_SHELF_TAKE_ITEM = create(key("block.shelf.take_item"));
/**
* {@code minecraft:block.shelf_mushroom.bounce}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MUSHROOM_BOUNCE = create(key("block.shelf_mushroom.bounce"));
/**
* {@code minecraft:block.shelf_mushroom.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MUSHROOM_BREAK = create(key("block.shelf_mushroom.break"));
/**
* {@code minecraft:block.shelf_mushroom.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MUSHROOM_FALL = create(key("block.shelf_mushroom.fall"));
/**
* {@code minecraft:block.shelf_mushroom.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MUSHROOM_PLACE = create(key("block.shelf_mushroom.place"));
/**
* {@code minecraft:block.shelf_mushroom.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_SHELF_MUSHROOM_STEP = create(key("block.shelf_mushroom.step"));
/**
* {@code minecraft:block.shroomlight.break}
*
@@ -5296,48 +5205,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> BLOCK_STONE_PRESSURE_PLATE_CLICK_ON = create(key("block.stone_pressure_plate.click_on"));
/**
* {@code minecraft:block.straw_bed.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_BREAK = create(key("block.straw_bed.break"));
/**
* {@code minecraft:block.straw_bed.break_leave}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_BREAK_LEAVE = create(key("block.straw_bed.break_leave"));
/**
* {@code minecraft:block.straw_bed.fall}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_FALL = create(key("block.straw_bed.fall"));
/**
* {@code minecraft:block.straw_bed.hit}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_HIT = create(key("block.straw_bed.hit"));
/**
* {@code minecraft:block.straw_bed.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_PLACE = create(key("block.straw_bed.place"));
/**
* {@code minecraft:block.straw_bed.step}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> BLOCK_STRAW_BED_STEP = create(key("block.straw_bed.step"));
/**
* {@code minecraft:block.sulfur.break}
*
@@ -7571,34 +7438,6 @@ public final class SoundEventKeys {
*/
public static final TypedKey<Sound> ENTITY_CREEPER_PRIMED = create(key("entity.creeper.primed"));
/**
* {@code minecraft:entity.cushion.break}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_CUSHION_BREAK = create(key("entity.cushion.break"));
/**
* {@code minecraft:entity.cushion.get_up}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_CUSHION_GET_UP = create(key("entity.cushion.get_up"));
/**
* {@code minecraft:entity.cushion.place}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_CUSHION_PLACE = create(key("entity.cushion.place"));
/**
* {@code minecraft:entity.cushion.sit}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Sound> ENTITY_CUSHION_SIT = create(key("entity.cushion.sit"));
/**
* {@code minecraft:entity.dolphin.ambient}
*
@@ -25,132 +25,6 @@ import org.jspecify.annotations.NullMarked;
@NullMarked
@GeneratedClass
public final class StructureKeys {
/**
* {@code minecraft:abandoned_camp_bamboo_jungle}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_BAMBOO_JUNGLE = create(key("abandoned_camp_bamboo_jungle"));
/**
* {@code minecraft:abandoned_camp_birch_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_BIRCH_FOREST = create(key("abandoned_camp_birch_forest"));
/**
* {@code minecraft:abandoned_camp_cherry_grove}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_CHERRY_GROVE = create(key("abandoned_camp_cherry_grove"));
/**
* {@code minecraft:abandoned_camp_dappled_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_DAPPLED_FOREST = create(key("abandoned_camp_dappled_forest"));
/**
* {@code minecraft:abandoned_camp_flower_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_FLOWER_FOREST = create(key("abandoned_camp_flower_forest"));
/**
* {@code minecraft:abandoned_camp_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_FOREST = create(key("abandoned_camp_forest"));
/**
* {@code minecraft:abandoned_camp_meadow}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_MEADOW = create(key("abandoned_camp_meadow"));
/**
* {@code minecraft:abandoned_camp_old_growth_birch_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST = create(key("abandoned_camp_old_growth_birch_forest"));
/**
* {@code minecraft:abandoned_camp_old_growth_pine_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA = create(key("abandoned_camp_old_growth_pine_taiga"));
/**
* {@code minecraft:abandoned_camp_old_growth_spruce_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA = create(key("abandoned_camp_old_growth_spruce_taiga"));
/**
* {@code minecraft:abandoned_camp_pale_garden}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_PALE_GARDEN = create(key("abandoned_camp_pale_garden"));
/**
* {@code minecraft:abandoned_camp_savanna}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_SAVANNA = create(key("abandoned_camp_savanna"));
/**
* {@code minecraft:abandoned_camp_snowy_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_SNOWY_TAIGA = create(key("abandoned_camp_snowy_taiga"));
/**
* {@code minecraft:abandoned_camp_sparse_jungle}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_SPARSE_JUNGLE = create(key("abandoned_camp_sparse_jungle"));
/**
* {@code minecraft:abandoned_camp_swamp}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_SWAMP = create(key("abandoned_camp_swamp"));
/**
* {@code minecraft:abandoned_camp_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_TAIGA = create(key("abandoned_camp_taiga"));
/**
* {@code minecraft:abandoned_camp_windswept_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_WINDSWEPT_FOREST = create(key("abandoned_camp_windswept_forest"));
/**
* {@code minecraft:abandoned_camp_wooded_badlands}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TypedKey<Structure> ABANDONED_CAMP_WOODED_BADLANDS = create(key("abandoned_camp_wooded_badlands"));
/**
* {@code minecraft:ancient_city}
*
@@ -39,132 +39,6 @@ public final class BiomeTagKeys {
*/
public static final TagKey<Biome> ALLOWS_TROPICAL_FISH_SPAWNS_AT_ANY_HEIGHT = create(key("allows_tropical_fish_spawns_at_any_height"));
/**
* {@code #minecraft:has_structure/abandoned_camp_bamboo_jungle}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_BAMBOO_JUNGLE = create(key("has_structure/abandoned_camp_bamboo_jungle"));
/**
* {@code #minecraft:has_structure/abandoned_camp_birch_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_BIRCH_FOREST = create(key("has_structure/abandoned_camp_birch_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_cherry_grove}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_CHERRY_GROVE = create(key("has_structure/abandoned_camp_cherry_grove"));
/**
* {@code #minecraft:has_structure/abandoned_camp_dappled_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_DAPPLED_FOREST = create(key("has_structure/abandoned_camp_dappled_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_flower_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_FLOWER_FOREST = create(key("has_structure/abandoned_camp_flower_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_FOREST = create(key("has_structure/abandoned_camp_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_meadow}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_MEADOW = create(key("has_structure/abandoned_camp_meadow"));
/**
* {@code #minecraft:has_structure/abandoned_camp_old_growth_birch_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST = create(key("has_structure/abandoned_camp_old_growth_birch_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_old_growth_pine_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA = create(key("has_structure/abandoned_camp_old_growth_pine_taiga"));
/**
* {@code #minecraft:has_structure/abandoned_camp_old_growth_spruce_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA = create(key("has_structure/abandoned_camp_old_growth_spruce_taiga"));
/**
* {@code #minecraft:has_structure/abandoned_camp_pale_garden}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_PALE_GARDEN = create(key("has_structure/abandoned_camp_pale_garden"));
/**
* {@code #minecraft:has_structure/abandoned_camp_savanna}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SAVANNA = create(key("has_structure/abandoned_camp_savanna"));
/**
* {@code #minecraft:has_structure/abandoned_camp_snowy_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SNOWY_TAIGA = create(key("has_structure/abandoned_camp_snowy_taiga"));
/**
* {@code #minecraft:has_structure/abandoned_camp_sparse_jungle}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SPARSE_JUNGLE = create(key("has_structure/abandoned_camp_sparse_jungle"));
/**
* {@code #minecraft:has_structure/abandoned_camp_swamp}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_SWAMP = create(key("has_structure/abandoned_camp_swamp"));
/**
* {@code #minecraft:has_structure/abandoned_camp_taiga}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_TAIGA = create(key("has_structure/abandoned_camp_taiga"));
/**
* {@code #minecraft:has_structure/abandoned_camp_windswept_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_WINDSWEPT_FOREST = create(key("has_structure/abandoned_camp_windswept_forest"));
/**
* {@code #minecraft:has_structure/abandoned_camp_wooded_badlands}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Biome> HAS_STRUCTURE_ABANDONED_CAMP_WOODED_BADLANDS = create(key("has_structure/abandoned_camp_wooded_badlands"));
/**
* {@code #minecraft:has_structure/ancient_city}
*
@@ -207,55 +207,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> BIRCH_LOGS = create(key("birch_logs"));
/**
* {@code #minecraft:blocks_dolphin_jump}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_DOLPHIN_JUMP = create(key("blocks_dolphin_jump"));
/**
* {@code #minecraft:blocks_fluid_flow}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_FLUID_FLOW = create(key("blocks_fluid_flow"));
/**
* {@code #minecraft:blocks_lava_fire_spread}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_LAVA_FIRE_SPREAD = create(key("blocks_lava_fire_spread"));
/**
* {@code #minecraft:blocks_motion}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_MOTION = create(key("blocks_motion"));
/**
* {@code #minecraft:blocks_motion_in_heightmap}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_MOTION_IN_HEIGHTMAP = create(key("blocks_motion_in_heightmap"));
/**
* {@code #minecraft:blocks_motion_in_heightmap_no_leaves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_MOTION_IN_HEIGHTMAP_NO_LEAVES = create(key("blocks_motion_in_heightmap_no_leaves"));
/**
* {@code #minecraft:blocks_motion_no_leaves}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> BLOCKS_MOTION_NO_LEAVES = create(key("blocks_motion_no_leaves"));
/**
* {@code #minecraft:blocks_wind_charge_explosions}
*
@@ -312,13 +263,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CANDLES = create(key("candles"));
/**
* {@code #minecraft:cannot_place_basalt_pillar_on}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CANNOT_PLACE_BASALT_PILLAR_ON = create(key("cannot_place_basalt_pillar_on"));
/**
* {@code #minecraft:cannot_replace_below_tree_trunk}
*
@@ -347,27 +291,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CANNOT_SUPPORT_SNOW_LAYER = create(key("cannot_support_snow_layer"));
/**
* {@code #minecraft:cat_does_not_teleport_to}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CAT_DOES_NOT_TELEPORT_TO = create(key("cat_does_not_teleport_to"));
/**
* {@code #minecraft:cats_can_lie_on}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CATS_CAN_LIE_ON = create(key("cats_can_lie_on"));
/**
* {@code #minecraft:cats_can_sit_on}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CATS_CAN_SIT_ON = create(key("cats_can_sit_on"));
/**
* {@code #minecraft:cauldrons}
*
@@ -389,13 +312,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CAUSES_PERIODIC_GEYSER_ERUPTIONS = create(key("causes_periodic_geyser_eruptions"));
/**
* {@code #minecraft:causes_suffocation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CAUSES_SUFFOCATION = create(key("causes_suffocation"));
/**
* {@code #minecraft:cave_vines}
*
@@ -467,32 +383,11 @@ public final class BlockTypeTagKeys {
public static final TagKey<BlockType> CONCRETE_POWDERS = create(key("concrete_powders"));
/**
* {@code #minecraft:concrete_slabs}
* {@code #minecraft:convertable_to_mud}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CONCRETE_SLABS = create(key("concrete_slabs"));
/**
* {@code #minecraft:concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CONCRETE_STAIRS = create(key("concrete_stairs"));
/**
* {@code #minecraft:conduit_effect_block}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CONDUIT_EFFECT_BLOCK = create(key("conduit_effect_block"));
/**
* {@code #minecraft:convertible_to_mud}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CONVERTIBLE_TO_MUD = create(key("convertible_to_mud"));
public static final TagKey<BlockType> CONVERTABLE_TO_MUD = create(key("convertable_to_mud"));
/**
* {@code #minecraft:copper}
@@ -564,13 +459,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> CRYSTAL_SOUND_BLOCKS = create(key("crystal_sound_blocks"));
/**
* {@code #minecraft:cushion_uses_collision_shape}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> CUSHION_USES_COLLISION_SHAPE = create(key("cushion_uses_collision_shape"));
/**
* {@code #minecraft:dampens_vibrations}
*
@@ -578,13 +466,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> DAMPENS_VIBRATIONS = create(key("dampens_vibrations"));
/**
* {@code #minecraft:dangerous_for_teleportation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> DANGEROUS_FOR_TELEPORTATION = create(key("dangerous_for_teleportation"));
/**
* {@code #minecraft:dark_oak_logs}
*
@@ -697,13 +578,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> ENCHANTMENT_POWER_TRANSMITTER = create(key("enchantment_power_transmitter"));
/**
* {@code #minecraft:enderman_does_not_teleport_to}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> ENDERMAN_DOES_NOT_TELEPORT_TO = create(key("enderman_does_not_teleport_to"));
/**
* {@code #minecraft:enderman_holdable}
*
@@ -711,13 +585,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> ENDERMAN_HOLDABLE = create(key("enderman_holdable"));
/**
* {@code #minecraft:entities_can_teleport_to}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> ENTITIES_CAN_TELEPORT_TO = create(key("entities_can_teleport_to"));
/**
* {@code #minecraft:fall_damage_resetting}
*
@@ -858,13 +725,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> HAPPY_GHAST_AVOIDS = create(key("happy_ghast_avoids"));
/**
* {@code #minecraft:height_specific_ore_replaceables}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> HEIGHT_SPECIFIC_ORE_REPLACEABLES = create(key("height_specific_ore_replaceables"));
/**
* {@code #minecraft:hoglin_repellents}
*
@@ -893,13 +753,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> ICE = create(key("ice"));
/**
* {@code #minecraft:ice_melts_when_destroyed_above}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> ICE_MELTS_WHEN_DESTROYED_ABOVE = create(key("ice_melts_when_destroyed_above"));
/**
* {@code #minecraft:ice_spike_replaceable}
*
@@ -1181,11 +1034,11 @@ public final class BlockTypeTagKeys {
public static final TagKey<BlockType> NEEDS_STONE_TOOL = create(key("needs_stone_tool"));
/**
* {@code #minecraft:nether_portal_frame}
* {@code #minecraft:nether_carver_replaceables}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> NETHER_PORTAL_FRAME = create(key("nether_portal_frame"));
public static final TagKey<BlockType> NETHER_CARVER_REPLACEABLES = create(key("nether_carver_replaceables"));
/**
* {@code #minecraft:nylium}
@@ -1208,13 +1061,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> OCCLUDES_VIBRATION_SIGNALS = create(key("occludes_vibration_signals"));
/**
* {@code #minecraft:ores}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> ORES = create(key("ores"));
/**
* {@code #minecraft:overrides_mushroom_light_requirement}
*
@@ -1222,6 +1068,13 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> OVERRIDES_MUSHROOM_LIGHT_REQUIREMENT = create(key("overrides_mushroom_light_requirement"));
/**
* {@code #minecraft:overworld_carver_replaceables}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> OVERWORLD_CARVER_REPLACEABLES = create(key("overworld_carver_replaceables"));
/**
* {@code #minecraft:overworld_natural_logs}
*
@@ -1271,13 +1124,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> POLAR_BEARS_SPAWNABLE_ON_ALTERNATE = create(key("polar_bears_spawnable_on_alternate"));
/**
* {@code #minecraft:poplar_logs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> POPLAR_LOGS = create(key("poplar_logs"));
/**
* {@code #minecraft:portals}
*
@@ -1348,13 +1194,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> REPLACEABLE_BY_TREES = create(key("replaceable_by_trees"));
/**
* {@code #minecraft:required_for_poplar_leaf_ambience}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> REQUIRED_FOR_POPLAR_LEAF_AMBIENCE = create(key("required_for_poplar_leaf_ambience"));
/**
* {@code #minecraft:sand}
*
@@ -1369,13 +1208,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> SAPLINGS = create(key("saplings"));
/**
* {@code #minecraft:sculk_growth_inhibitors}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> SCULK_GROWTH_INHIBITORS = create(key("sculk_growth_inhibitors"));
/**
* {@code #minecraft:sculk_replaceable}
*
@@ -1418,13 +1250,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> SHULKER_BOXES = create(key("shulker_boxes"));
/**
* {@code #minecraft:shulker_does_not_teleport_to}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> SHULKER_DOES_NOT_TELEPORT_TO = create(key("shulker_does_not_teleport_to"));
/**
* {@code #minecraft:signs}
*
@@ -1432,13 +1257,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> SIGNS = create(key("signs"));
/**
* {@code #minecraft:skulls}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> SKULLS = create(key("skulls"));
/**
* {@code #minecraft:slabs}
*
@@ -1509,13 +1327,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> SOUL_SPEED_BLOCKS = create(key("soul_speed_blocks"));
/**
* {@code #minecraft:speeds_up_zombie_villager_curing}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> SPEEDS_UP_ZOMBIE_VILLAGER_CURING = create(key("speeds_up_zombie_villager_curing"));
/**
* {@code #minecraft:speleothems}
*
@@ -1887,27 +1698,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> TRIGGERS_AMBIENT_DRIED_GHAST_BLOCK_SOUNDS = create(key("triggers_ambient_dried_ghast_block_sounds"));
/**
* {@code #minecraft:turns_into_dirt_path}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> TURNS_INTO_DIRT_PATH = create(key("turns_into_dirt_path"));
/**
* {@code #minecraft:turns_into_farmland}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> TURNS_INTO_FARMLAND = create(key("turns_into_farmland"));
/**
* {@code #minecraft:uncarvable}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> UNCARVABLE = create(key("uncarvable"));
/**
* {@code #minecraft:underwater_bonemeals}
*
@@ -1936,20 +1726,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> VIBRATION_RESONATORS = create(key("vibration_resonators"));
/**
* {@code #minecraft:villager_babies_can_jump_on_bed}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> VILLAGER_BABIES_CAN_JUMP_ON_BED = create(key("villager_babies_can_jump_on_bed"));
/**
* {@code #minecraft:villagers_can_sleep_on_bed}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> VILLAGERS_CAN_SLEEP_ON_BED = create(key("villagers_can_sleep_on_bed"));
/**
* {@code #minecraft:wall_corals}
*
@@ -1999,13 +1775,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> WART_BLOCKS = create(key("wart_blocks"));
/**
* {@code #minecraft:washed_away_by_fluids}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> WASHED_AWAY_BY_FLUIDS = create(key("washed_away_by_fluids"));
/**
* {@code #minecraft:wither_immune}
*
@@ -2111,20 +1880,6 @@ public final class BlockTypeTagKeys {
*/
public static final TagKey<BlockType> WOOL_CARPETS = create(key("wool_carpets"));
/**
* {@code #minecraft:wool_slabs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> WOOL_SLABS = create(key("wool_slabs"));
/**
* {@code #minecraft:wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<BlockType> WOOL_STAIRS = create(key("wool_stairs"));
private BlockTypeTagKeys() {
}
@@ -81,13 +81,6 @@ public final class DamageTypeTagKeys {
*/
public static final TagKey<DamageType> BYPASSES_ARMOR = create(key("bypasses_armor"));
/**
* {@code #minecraft:bypasses_cooldown}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<DamageType> BYPASSES_COOLDOWN = create(key("bypasses_cooldown"));
/**
* {@code #minecraft:bypasses_effects}
*
@@ -235,13 +228,6 @@ public final class DamageTypeTagKeys {
*/
public static final TagKey<DamageType> NO_KNOCKBACK = create(key("no_knockback"));
/**
* {@code #minecraft:no_wolf_retaliation}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<DamageType> NO_WOLF_RETALIATION = create(key("no_wolf_retaliation"));
/**
* {@code #minecraft:panic_causes}
*
@@ -151,13 +151,6 @@ public final class EntityTypeTagKeys {
*/
public static final TagKey<EntityType> CANNOT_BE_AGE_LOCKED = create(key("cannot_be_age_locked"));
/**
* {@code #minecraft:cannot_be_dismounted_by_item_usage}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<EntityType> CANNOT_BE_DISMOUNTED_BY_ITEM_USAGE = create(key("cannot_be_dismounted_by_item_usage"));
/**
* {@code #minecraft:cannot_be_pushed_onto_boats}
*
@@ -25,13 +25,6 @@ import org.jspecify.annotations.NullMarked;
@NullMarked
@GeneratedClass
public final class FluidTagKeys {
/**
* {@code #minecraft:axolotl_tries_to_find}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Fluid> AXOLOTL_TRIES_TO_FIND = create(key("axolotl_tries_to_find"));
/**
* {@code #minecraft:bubble_column_can_occupy}
*
@@ -39,27 +32,6 @@ public final class FluidTagKeys {
*/
public static final TagKey<Fluid> BUBBLE_COLUMN_CAN_OCCUPY = create(key("bubble_column_can_occupy"));
/**
* {@code #minecraft:dolphin_tries_to_find}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Fluid> DOLPHIN_TRIES_TO_FIND = create(key("dolphin_tries_to_find"));
/**
* {@code #minecraft:entity_floatable}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Fluid> ENTITY_FLOATABLE = create(key("entity_floatable"));
/**
* {@code #minecraft:frog_tries_to_find_land_near}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Fluid> FROG_TRIES_TO_FIND_LAND_NEAR = create(key("frog_tries_to_find_land_near"));
/**
* {@code #minecraft:lava}
*
@@ -145,11 +145,11 @@ public final class ItemTypeTagKeys {
public static final TagKey<ItemType> BREAKS_DECORATED_POTS = create(key("breaks_decorated_pots"));
/**
* {@code #minecraft:brewing_potion_inputs}
* {@code #minecraft:brewing_fuel}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> BREWING_POTION_INPUTS = create(key("brewing_potion_inputs"));
public static final TagKey<ItemType> BREWING_FUEL = create(key("brewing_fuel"));
/**
* {@code #minecraft:bundles}
@@ -242,13 +242,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> CHICKEN_FOOD = create(key("chicken_food"));
/**
* {@code #minecraft:clonable_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> CLONABLE_MAPS = create(key("clonable_maps"));
/**
* {@code #minecraft:cluster_max_harvestables}
*
@@ -298,20 +291,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> CONCRETE_POWDERS = create(key("concrete_powders"));
/**
* {@code #minecraft:concrete_slabs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> CONCRETE_SLABS = create(key("concrete_slabs"));
/**
* {@code #minecraft:concrete_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> CONCRETE_STAIRS = create(key("concrete_stairs"));
/**
* {@code #minecraft:copper}
*
@@ -375,13 +354,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> CRIMSON_STEMS = create(key("crimson_stems"));
/**
* {@code #minecraft:cushions}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> CUSHIONS = create(key("cushions"));
/**
* {@code #minecraft:dampens_vibrations}
*
@@ -438,13 +410,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> DOORS = create(key("doors"));
/**
* {@code #minecraft:douses_campfires}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> DOUSES_CAMPFIRES = create(key("douses_campfires"));
/**
* {@code #minecraft:drowned_preferred_weapons}
*
@@ -627,13 +592,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> ENCHANTABLE_WEAPON = create(key("enchantable/weapon"));
/**
* {@code #minecraft:extendable_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> EXTENDABLE_MAPS = create(key("extendable_maps"));
/**
* {@code #minecraft:fence_gates}
*
@@ -690,13 +648,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> FROG_FOOD = create(key("frog_food"));
/**
* {@code #minecraft:furnace_fuel_bottom_takeable}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> FURNACE_FUEL_BOTTOM_TAKEABLE = create(key("furnace_fuel_bottom_takeable"));
/**
* {@code #minecraft:furnace_minecart_fuel}
*
@@ -963,13 +914,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> MUD = create(key("mud"));
/**
* {@code #minecraft:mushrooms}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> MUSHROOMS = create(key("mushrooms"));
/**
* {@code #minecraft:nautilus_bucket_food}
*
@@ -1026,13 +970,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> OCELOT_FOOD = create(key("ocelot_food"));
/**
* {@code #minecraft:ores}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> ORES = create(key("ores"));
/**
* {@code #minecraft:pale_oak_logs}
*
@@ -1131,13 +1068,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> PLANKS = create(key("planks"));
/**
* {@code #minecraft:poplar_logs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> POPLAR_LOGS = create(key("poplar_logs"));
/**
* {@code #minecraft:rabbit_food}
*
@@ -1656,20 +1586,6 @@ public final class ItemTypeTagKeys {
*/
public static final TagKey<ItemType> WOOL_CARPETS = create(key("wool_carpets"));
/**
* {@code #minecraft:wool_slabs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> WOOL_SLABS = create(key("wool_slabs"));
/**
* {@code #minecraft:wool_stairs}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<ItemType> WOOL_STAIRS = create(key("wool_stairs"));
/**
* {@code #minecraft:zombie_horse_food}
*
@@ -25,34 +25,6 @@ import org.jspecify.annotations.NullMarked;
@NullMarked
@GeneratedClass
public final class PotionTypeTagKeys {
/**
* {@code #minecraft:douses_fire}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<PotionType> DOUSES_FIRE = create(key("douses_fire"));
/**
* {@code #minecraft:extinguishes_entities}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<PotionType> EXTINGUISHES_ENTITIES = create(key("extinguishes_entities"));
/**
* {@code #minecraft:hurts_water_sensitive_entities}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<PotionType> HURTS_WATER_SENSITIVE_ENTITIES = create(key("hurts_water_sensitive_entities"));
/**
* {@code #minecraft:rehydrates_axolotls}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<PotionType> REHYDRATES_AXOLOTLS = create(key("rehydrates_axolotls"));
/**
* {@code #minecraft:tradeable}
*
@@ -25,13 +25,6 @@ import org.jspecify.annotations.NullMarked;
@NullMarked
@GeneratedClass
public final class StructureTagKeys {
/**
* {@code #minecraft:abandoned_camp}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ABANDONED_CAMP = create(key("abandoned_camp"));
/**
* {@code #minecraft:cats_spawn_as_black}
*
@@ -74,83 +67,6 @@ public final class StructureTagKeys {
*/
public static final TagKey<Structure> OCEAN_RUIN = create(key("ocean_ruin"));
/**
* {@code #minecraft:on_abandoned_camp_bamboo_jungle}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_BAMBOO_JUNGLE = create(key("on_abandoned_camp_bamboo_jungle"));
/**
* {@code #minecraft:on_abandoned_camp_birch_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_BIRCH_FOREST = create(key("on_abandoned_camp_birch_forest"));
/**
* {@code #minecraft:on_abandoned_camp_cherry_grove}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_CHERRY_GROVE = create(key("on_abandoned_camp_cherry_grove"));
/**
* {@code #minecraft:on_abandoned_camp_dappled_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_DAPPLED_FOREST = create(key("on_abandoned_camp_dappled_forest"));
/**
* {@code #minecraft:on_abandoned_camp_flower_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_FLOWER_FOREST = create(key("on_abandoned_camp_flower_forest"));
/**
* {@code #minecraft:on_abandoned_camp_pale_garden}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_PALE_GARDEN = create(key("on_abandoned_camp_pale_garden"));
/**
* {@code #minecraft:on_abandoned_camp_swamp}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_SWAMP = create(key("on_abandoned_camp_swamp"));
/**
* {@code #minecraft:on_abandoned_camp_windswept_forest}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ABANDONED_CAMP_WINDSWEPT_FOREST = create(key("on_abandoned_camp_windswept_forest"));
/**
* {@code #minecraft:on_ancient_city_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_ANCIENT_CITY_MAPS = create(key("on_ancient_city_maps"));
/**
* {@code #minecraft:on_buried_trial_chambers_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_BURIED_TRIAL_CHAMBERS_MAPS = create(key("on_buried_trial_chambers_maps"));
/**
* {@code #minecraft:on_desert_pyramid_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_DESERT_PYRAMID_MAPS = create(key("on_desert_pyramid_maps"));
/**
* {@code #minecraft:on_desert_village_maps}
*
@@ -159,32 +75,18 @@ public final class StructureTagKeys {
public static final TagKey<Structure> ON_DESERT_VILLAGE_MAPS = create(key("on_desert_village_maps"));
/**
* {@code #minecraft:on_jungle_pyramid_maps}
* {@code #minecraft:on_jungle_explorer_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_JUNGLE_PYRAMID_MAPS = create(key("on_jungle_pyramid_maps"));
public static final TagKey<Structure> ON_JUNGLE_EXPLORER_MAPS = create(key("on_jungle_explorer_maps"));
/**
* {@code #minecraft:on_mineshaft_maps}
* {@code #minecraft:on_ocean_explorer_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_MINESHAFT_MAPS = create(key("on_mineshaft_maps"));
/**
* {@code #minecraft:on_ocean_monument_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_OCEAN_MONUMENT_MAPS = create(key("on_ocean_monument_maps"));
/**
* {@code #minecraft:on_ocean_ruin_warm_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_OCEAN_RUIN_WARM_MAPS = create(key("on_ocean_ruin_warm_maps"));
public static final TagKey<Structure> ON_OCEAN_EXPLORER_MAPS = create(key("on_ocean_explorer_maps"));
/**
* {@code #minecraft:on_plains_village_maps}
@@ -208,11 +110,11 @@ public final class StructureTagKeys {
public static final TagKey<Structure> ON_SNOWY_VILLAGE_MAPS = create(key("on_snowy_village_maps"));
/**
* {@code #minecraft:on_swamp_hut_maps}
* {@code #minecraft:on_swamp_explorer_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_SWAMP_HUT_MAPS = create(key("on_swamp_hut_maps"));
public static final TagKey<Structure> ON_SWAMP_EXPLORER_MAPS = create(key("on_swamp_explorer_maps"));
/**
* {@code #minecraft:on_taiga_village_maps}
@@ -229,11 +131,18 @@ public final class StructureTagKeys {
public static final TagKey<Structure> ON_TREASURE_MAPS = create(key("on_treasure_maps"));
/**
* {@code #minecraft:on_woodland_mansion_maps}
* {@code #minecraft:on_trial_chambers_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_WOODLAND_MANSION_MAPS = create(key("on_woodland_mansion_maps"));
public static final TagKey<Structure> ON_TRIAL_CHAMBERS_MAPS = create(key("on_trial_chambers_maps"));
/**
* {@code #minecraft:on_woodland_explorer_maps}
*
* @apiNote This field is version-dependant and may be removed in future Minecraft versions
*/
public static final TagKey<Structure> ON_WOODLAND_EXPLORER_MAPS = create(key("on_woodland_explorer_maps"));
/**
* {@code #minecraft:ruined_portal}
@@ -224,29 +224,24 @@ public class MaterialTags {
/**
* Covers all mushrooms.
*
* @deprecated in favour of {@link Tag#ITEMS_MUSHROOMS}
*/
@Deprecated(since = "26.3")
public static final MaterialSetTag MUSHROOMS = replacedBy(Tag.ITEMS_MUSHROOMS);
public static final MaterialSetTag MUSHROOMS = new MaterialSetTag(keyFor("mushrooms"))
.add(Material.BROWN_MUSHROOM, Material.RED_MUSHROOM).lock();
/**
* Covers all music disc items.
*/
public static final MaterialSetTag MUSIC_DISCS = new MaterialSetTag(keyFor("music_discs"))
.startsWith("MUSIC_DISC_")
.ensureSize("MUSIC_DISCS", 22).lock();
.startsWith("MUSIC_DISC_").lock();
/**
* Covers all ores.
*
* @deprecated in favour of {@link Tag#ORES}, makes sure to also check for ancient debris if you relied on this edge case
*/
@SuppressWarnings("unchecked")
@Deprecated(since = "26.3")
public static final MaterialSetTag ORES = new MaterialSetTag(keyFor("ores"))
.add(Tag.ORES)
.add(Material.ANCIENT_DEBRIS).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.
@@ -596,9 +591,7 @@ public class MaterialTags {
*/
@SuppressWarnings("unchecked")
public static final MaterialSetTag COLORABLE = new MaterialSetTag(keyFor("colorable"))
.add(Tag.WOOL, Tag.WOOL_CARPETS, Tag.WOOL_SLABS, Tag.WOOL_STAIRS,
Tag.CONCRETE_SLABS, Tag.CONCRETE_STAIRS,
Tag.SHULKER_BOXES, Tag.BEDS, Tag.ITEMS_CUSHIONS)
.add(Tag.WOOL, Tag.WOOL_CARPETS, Tag.SHULKER_BOXES, Tag.BEDS, Tag.CONCRETE)
.add(STAINED_GLASS, STAINED_GLASS_PANES)
.lock();
@@ -17,7 +17,7 @@ import org.jspecify.annotations.Nullable;
/**
* Helps prepare a particle to be sent to players.
* <p>
* Usage of the builder is preferred over the super long {@link World#spawnParticle(Particle, List, Player, double, double, double, int, double, double, double, double, double, double, Object, boolean, Particle.RandomizationType)} API.
* Usage of the builder is preferred over the super long {@link World#spawnParticle(Particle, Location, int, double, double, double, double, Object)} API
*/
@NullMarked
public class ParticleBuilder implements Cloneable {
@@ -28,10 +28,9 @@ public class ParticleBuilder implements Cloneable {
private @Nullable Location location;
private int count = 1;
private double offsetX = 0, offsetY = 0, offsetZ = 0;
private double speedX = 1, speedY = 1, speedZ = 1;
private double extra = 1;
private @Nullable Object data;
private boolean force = true;
private Particle.RandomizationType randomizationType = Particle.RandomizationType.DEFAULT;
public ParticleBuilder(final Particle particle) {
this.particle = particle;
@@ -50,8 +49,7 @@ public class ParticleBuilder implements Cloneable {
this.location.getWorld().spawnParticle(
this.particle, this.receivers, this.source,
this.location.getX(), this.location.getY(), this.location.getZ(),
this.count, this.offsetX, this.offsetY, this.offsetZ, this.speedX, this.speedY, this.speedZ,
this.data, this.force, this.randomizationType
this.count, this.offsetX, this.offsetY, this.offsetZ, this.extra, this.data, this.force
);
return this;
}
@@ -133,7 +131,7 @@ public class ParticleBuilder implements Cloneable {
* world
* @return a reference to this object.
*/
public ParticleBuilder receivers(final Player @Nullable ... receivers) {
public ParticleBuilder receivers(final Player @Nullable... receivers) {
this.receivers = receivers != null ? Lists.newArrayList(receivers) : null;
return this;
}
@@ -359,14 +357,12 @@ public class ParticleBuilder implements Cloneable {
}
/**
* Gets the Particle extra data (speedX). Varies by particle on how this is used
* Gets the Particle extra data. Varies by particle on how this is used
*
* @return the extra particle data
* @deprecated use one of the {@code speed} methods instead
*/
@Deprecated(since = "26.3", forRemoval = true)
public double extra() {
return this.speedX;
return this.extra;
}
/**
@@ -374,62 +370,9 @@ public class ParticleBuilder implements Cloneable {
*
* @param extra the extra particle data
* @return a reference to this object.
* @deprecated use {@link #speed(double)} instead
*/
@Deprecated(since = "26.3", forRemoval = true)
public ParticleBuilder extra(final double extra) {
return this.speed(extra);
}
/**
* Particle speed X. Varies by particle on how this is used
*
* @return the particle speed X
*/
public double speedX() {
return this.speedX;
}
/**
* Particle speed Y. Varies by particle on how this is used
*
* @return the particle speed Y
*/
public double speedY() {
return this.speedY;
}
/**
* Particle speed Z. Varies by particle on how this is used
*
* @return the particle speed Z
*/
public double speedZ() {
return this.speedZ;
}
/**
* Sets the particle speed. Varies by particle on how this is used
*
* @param speed Particle speed
* @return a reference to this object.
*/
public ParticleBuilder speed(final double speed) {
return this.speed(speed, speed, speed);
}
/**
* Sets the particle speed. Varies by particle on how this is used
*
* @param speedX Particle speed X
* @param speedY Particle speed Y
* @param speedZ Particle speed Z
* @return a reference to this object.
*/
public ParticleBuilder speed(final double speedX, final double speedY, final double speedZ) {
this.speedX = speedX;
this.speedY = speedY;
this.speedZ = speedZ;
this.extra = extra;
return this;
}
@@ -476,26 +419,6 @@ public class ParticleBuilder implements Cloneable {
return this;
}
/**
* Gets the randomization type for the particle. This determines how the particle's position and velocity are randomized.
*
* @return the randomization type for the particle
*/
public Particle.RandomizationType randomizationType() {
return this.randomizationType;
}
/**
* Sets the randomization type for the particle. This determines how the particle's position and velocity are randomized.
*
* @param randomizationType the new randomization type for the particle
* @return a reference to this object.
*/
public ParticleBuilder randomizationType(final Particle.RandomizationType randomizationType) {
this.randomizationType = randomizationType;
return this;
}
/**
* Sets the particle Color.
* Only valid for particles with a data type of {@link Color}, {@link Particle.DustOptions} or {@link Particle.Spell}.
@@ -6,96 +6,55 @@ import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.inventory.InventoryEvent;
import org.bukkit.inventory.AnvilInventory;
import org.bukkit.inventory.InventoryView;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Called when an anvil is damaged from being used
*/
@NullMarked
public class AnvilDamagedEvent extends InventoryEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private DamageState damageState;
private boolean cancelled;
@ApiStatus.Internal
public AnvilDamagedEvent(final InventoryView inventory, final @Nullable BlockData blockData) {
super(inventory);
this.damageState = DamageState.getState(blockData);
}
public interface AnvilDamagedEvent extends InventoryEvent, Cancellable {
@Override
public AnvilInventory getInventory() {
return (AnvilInventory) super.getInventory();
}
AnvilInventory getInventory();
/**
* Gets the new state of damage on the anvil
*
* @return Damage state
*/
public DamageState getDamageState() {
return this.damageState;
}
DamageState getDamageState();
/**
* Sets the new state of damage on the anvil
*
* @param damageState Damage state
*/
public void setDamageState(final DamageState damageState) {
this.damageState = damageState;
}
void setDamageState(DamageState damageState);
/**
* Gets if anvil is breaking on this use
*
* @return {@code true} if breaking
*/
public boolean isBreaking() {
return this.damageState == DamageState.BROKEN;
}
boolean isBreaking();
/**
* Sets if anvil is breaking on this use
*
* @param breaking {@code true} if breaking
*/
public void setBreaking(final boolean breaking) {
if (breaking) {
this.damageState = DamageState.BROKEN;
} else if (this.damageState == DamageState.BROKEN) {
this.damageState = DamageState.DAMAGED;
void setBreaking(boolean breaking);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
return Holder.HANDLER_LIST;
}
/**
* Represents the amount of damage on an anvil block
*/
public enum DamageState {
enum DamageState {
FULL(Material.ANVIL),
CHIPPED(Material.CHIPPED_ANVIL),
DAMAGED(Material.DAMAGED_ANVIL),
@@ -1,88 +1,50 @@
package com.destroystokyo.paper.event.block;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockEvent;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.potion.PotionEffect;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a beacon effect is being applied to a player.
*/
@NullMarked
public class BeaconEffectEvent extends BlockEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Player player;
private final boolean primary;
private PotionEffect effect;
private boolean cancelled;
@ApiStatus.Internal
public BeaconEffectEvent(final Block beacon, final PotionEffect effect, final Player player, final boolean primary) {
super(beacon);
this.effect = effect;
this.player = player;
this.primary = primary;
}
public interface BeaconEffectEvent extends BlockEvent, PlayerEvent, Cancellable {
/**
* Gets the potion effect being applied.
*
* @return Potion effect
*/
public PotionEffect getEffect() {
return this.effect;
}
PotionEffect getEffect();
/**
* Sets the potion effect that will be applied.
*
* @param effect Potion effect
*/
public void setEffect(final PotionEffect effect) {
this.effect = effect;
}
void setEffect(PotionEffect effect);
/**
* Gets the player who the potion effect is being applied to.
*
* @return Affected player
*/
public Player getPlayer() {
return this.player;
}
@Override
Player getPlayer();
/**
* Gets whether the effect is a primary beacon effect.
*
* @return {@code true} if this event represents a primary effect
*/
public boolean isPrimary() {
return this.primary;
}
boolean isPrimary();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,12 +1,9 @@
package com.destroystokyo.paper.event.block;
import org.bukkit.block.Block;
import org.bukkit.block.data.BlockData;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockExpEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired anytime the server intends to 'destroy' a block through some triggering reason.
@@ -18,103 +15,65 @@ import org.jspecify.annotations.NullMarked;
* <p>
* Events such as leaves decaying, pistons retracting (where the block is moving), does NOT fire this event.
*/
@NullMarked
public class BlockDestroyEvent extends BlockExpEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final BlockData newState;
private boolean willDrop;
private boolean playEffect = true;
private BlockData effectBlock;
private boolean cancelled;
@ApiStatus.Internal
public BlockDestroyEvent(final Block block, final BlockData newState, final BlockData effectBlock, final int xp, final boolean willDrop) {
super(block, xp);
this.newState = newState;
this.effectBlock = effectBlock;
this.willDrop = willDrop;
}
public interface BlockDestroyEvent extends BlockExpEvent, Cancellable {
/**
* Gets the effect that will be played when the block is broken.
*
* @return block break effect
*/
public BlockData getEffectBlock() {
return this.effectBlock;
}
BlockData getEffectBlock();
/**
* Sets the effect that will be played when the block is broken.
* Note: {@link BlockDestroyEvent#playEffect()} must be {@code true} in order for this effect to be
* Note: {@link #playEffect()} must be {@code true} in order for this effect to be
* played.
*
* @param effectBlock block effect
*/
public void setEffectBlock(final BlockData effectBlock) {
this.effectBlock = effectBlock.clone();
}
void setEffectBlock(BlockData effectBlock);
/**
* @return The new state of this block (Air, or a Fluid type)
*/
public BlockData getNewState() {
return this.newState.clone();
}
BlockData getNewState();
/**
* @return If the server is going to drop the block in question with this destroy event
*/
public boolean willDrop() {
return this.willDrop;
}
boolean willDrop();
/**
* @param willDrop If the server is going to drop the block in question with this destroy event
*/
public void setWillDrop(final boolean willDrop) {
this.willDrop = willDrop;
}
void setWillDrop(boolean willDrop);
/**
* @return If the server is going to play the sound effect for this destruction
*/
public boolean playEffect() {
return this.playEffect;
}
boolean playEffect();
/**
* @param playEffect If the server should play the sound effect for this destruction
*/
public void setPlayEffect(final boolean playEffect) {
this.playEffect = playEffect;
}
void setPlayEffect(boolean playEffect);
/**
* @return If the event is cancelled, meaning the block will not be destroyed
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* If the event is cancelled, the block will remain in its previous state.
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,8 +1,6 @@
package com.destroystokyo.paper.event.block;
import org.bukkit.Material;
import org.bukkit.Warning;
import org.bukkit.block.Block;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
@@ -10,9 +8,7 @@ import org.bukkit.entity.TNTPrimed;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.block.BlockEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jspecify.annotations.Nullable;
/**
* Called when TNT block is about to turn into {@link TNTPrimed}
@@ -24,32 +20,14 @@ import org.jetbrains.annotations.Nullable;
* @deprecated use {@link org.bukkit.event.block.TNTPrimeEvent}
*/
@Deprecated(forRemoval = true, since = "1.19.4")
@Warning(propagate = false)
public class TNTPrimeEvent extends BlockEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
@NotNull private final PrimeReason reason;
@Nullable private final Entity primerEntity;
private boolean cancelled;
@ApiStatus.Internal
public TNTPrimeEvent(@NotNull Block block, @NotNull PrimeReason reason, @Nullable Entity primerEntity) {
super(block);
this.reason = reason;
this.primerEntity = primerEntity;
}
public interface TNTPrimeEvent extends BlockEvent, Cancellable {
/**
* Gets the TNT prime reason
*
* @return Prime reason
*/
@NotNull
public PrimeReason getReason() {
return this.reason;
}
PrimeReason getReason();
/**
* Gets the TNT primer {@link Entity}.
@@ -60,10 +38,7 @@ public class TNTPrimeEvent extends BlockEvent implements Cancellable {
*
* @return The {@link Entity} who primed the TNT
*/
@Nullable
public Entity getPrimerEntity() {
return this.primerEntity;
}
@Nullable Entity getPrimerEntity();
/**
* Gets whether spawning {@link TNTPrimed} should be cancelled or not
@@ -71,9 +46,7 @@ public class TNTPrimeEvent extends BlockEvent implements Cancellable {
* @return Whether spawning {@link TNTPrimed} should be cancelled or not
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* Sets whether to cancel spawning {@link TNTPrimed} or not
@@ -81,22 +54,16 @@ public class TNTPrimeEvent extends BlockEvent implements Cancellable {
* @param cancel whether spawning {@link TNTPrimed} should be cancelled or not
*/
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
void setCancelled(boolean cancel);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
@NotNull
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
public enum PrimeReason {
enum PrimeReason {
/**
* When TNT prime was caused by other explosion (chain reaction)
*/
@@ -1,4 +1,4 @@
@NullMarked
package io.papermc.paper.configuration.type.time;
package com.destroystokyo.paper.event.block;
import org.jspecify.annotations.NullMarked;
@@ -2,12 +2,9 @@ package com.destroystokyo.paper.event.brigadier;
import com.mojang.brigadier.tree.RootCommandNode;
import io.papermc.paper.command.brigadier.CommandSourceStack;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired any time a Brigadier RootCommandNode is generated for a player to inform the client of commands.
@@ -30,45 +27,26 @@ import org.jspecify.annotations.NullMarked;
* <p>This is a draft/experimental API and is subject to change.</p>
*/
@ApiStatus.Experimental
@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;
@ApiStatus.Internal
public AsyncPlayerSendCommandsEvent(final Player player, final RootCommandNode<S> node, final boolean hasFiredAsync) {
super(player, !Bukkit.isPrimaryThread());
this.node = node;
this.hasFiredAsync = hasFiredAsync;
}
public interface AsyncPlayerSendCommandsEvent<S extends CommandSourceStack> extends PlayerEvent {
/**
* Gets the full Root Command Node being sent to the client, which is mutable.
*
* @return the root command node
*/
public RootCommandNode<S> getCommandNode() {
return this.node;
}
RootCommandNode<S> getCommandNode();
/**
* Gets if this event has already fired asynchronously.
*
* @return whether this event has already fired asynchronously
*/
public boolean hasFiredAsync() {
return this.hasFiredAsync;
}
boolean hasFiredAsync();
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,71 +1,37 @@
package com.destroystokyo.paper.event.brigadier;
import com.mojang.brigadier.suggestion.Suggestions;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when sending {@link Suggestions} to the client. Will be called asynchronously if a plugin
* marks the {@link com.destroystokyo.paper.event.server.AsyncTabCompleteEvent} event handled asynchronously,
* otherwise called synchronously.
* <p>
* If the suggestions are empty after this event has been called, nothing will be sent to the client.
*/
@NullMarked
public class AsyncPlayerSendSuggestionsEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
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());
this.suggestions = suggestions;
this.buffer = buffer;
}
public interface AsyncPlayerSendSuggestionsEvent extends PlayerEvent, Cancellable {
/**
* Gets the input buffer sent to request these suggestions.
*
* @return the input buffer
*/
public String getBuffer() {
return this.buffer;
}
String getBuffer();
/**
* Gets the suggestions to be sent to client.
*
* @return the suggestions
*/
public Suggestions getSuggestions() {
return this.suggestions;
}
Suggestions getSuggestions();
/**
* Sets the suggestions to be sent to client.
* <p>
* Empty suggestions are never sent to the client.
*
* @param suggestions suggestions
*/
public void setSuggestions(final Suggestions suggestions) {
this.suggestions = suggestions;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
void setSuggestions(Suggestions suggestions);
/**
* Cancels sending suggestions to the client.
@@ -73,16 +39,12 @@ public class AsyncPlayerSendSuggestionsEvent extends PlayerEvent implements Canc
* {@inheritDoc}
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,6 +1,7 @@
package com.destroystokyo.paper.event.brigadier;
import com.destroystokyo.paper.brigadier.BukkitBrigadierCommand;
import com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource;
import com.mojang.brigadier.tree.ArgumentCommandNode;
import com.mojang.brigadier.tree.LiteralCommandNode;
import com.mojang.brigadier.tree.RootCommandNode;
@@ -9,7 +10,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.NotNull;
/**
* Fired anytime the server synchronizes Bukkit commands to Brigadier.
@@ -18,42 +18,18 @@ 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>
*
* @deprecated this event has been superseded by the Commands API and will be removed in a future release.
* Listen to {@link io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents#COMMANDS} instead
* @deprecated For removal, use the new brigadier api.
*/
@Deprecated(since = "1.20.6")
@Warning(value = true, propagate = false)
public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.BukkitBrigadierCommandSource> extends ServerEvent implements Cancellable {
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;
private final RootCommandNode<S> root;
private final ArgumentCommandNode<S, String> defaultArgs;
private LiteralCommandNode<S> literal;
private boolean rawCommand = 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;
this.brigadierCommand = brigadierCommand;
this.command = command;
this.root = root;
this.literal = literal;
this.defaultArgs = defaultArgs;
}
@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 interface CommandRegisteredEvent<S extends BukkitBrigadierCommandSource> extends ServerEvent, Cancellable {
/**
* Gets the command label of the {@link Command} being registered.
*
* @return the command label
*/
public String getCommandLabel() {
return this.commandLabel;
}
String getCommandLabel();
/**
* Gets the {@link BukkitBrigadierCommand} for the {@link Command} being registered. This can be used
@@ -63,46 +39,28 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
*
* @return the {@link BukkitBrigadierCommand}
*/
public BukkitBrigadierCommand<S> getBrigadierCommand() {
return this.brigadierCommand;
}
BukkitBrigadierCommand<S> getBrigadierCommand();
/**
* Gets the {@link Command} being registered.
*
* @return the {@link Command}
*/
public Command getCommand() {
return this.command;
}
Command getCommand();
/**
* Gets the {@link RootCommandNode} which is being registered to.
*
* @return the {@link RootCommandNode}
*/
public RootCommandNode<S> getRoot() {
return this.root;
}
/**
* Gets the Bukkit APIs default arguments node (greedy string), for if
* you wish to reuse it.
*
* @return default arguments node
*/
public ArgumentCommandNode<S, String> getDefaultArgs() {
return this.defaultArgs;
}
RootCommandNode<S> getRoot();
/**
* Gets the {@link LiteralCommandNode} to be registered for the {@link Command}.
*
* @return the {@link LiteralCommandNode}
*/
public LiteralCommandNode<S> getLiteral() {
return this.literal;
}
LiteralCommandNode<S> getLiteral();
/**
* Sets the {@link LiteralCommandNode} used to register this command. The default literal is mutable, so
@@ -110,9 +68,15 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
*
* @param literal new node
*/
public void setLiteral(LiteralCommandNode<S> literal) {
this.literal = literal;
}
void setLiteral(LiteralCommandNode<S> literal);
/**
* Gets the Bukkit APIs default arguments node (greedy string), for if
* you wish to reuse it.
*
* @return default arguments node
*/
ArgumentCommandNode<S, String> getDefaultArgs();
/**
* Gets whether this command should is treated as "raw".
@@ -120,9 +84,7 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
* @see #setRawCommand(boolean)
* @return whether this command is treated as "raw"
*/
public boolean isRawCommand() {
return this.rawCommand;
}
boolean isRawCommand();
/**
* Sets whether this command should be treated as "raw".
@@ -136,14 +98,7 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
*
* @param rawCommand whether this command should be treated as "raw"
*/
public void setRawCommand(final boolean rawCommand) {
this.rawCommand = rawCommand;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
void setRawCommand(boolean rawCommand);
/**
* Cancels registering this command to Brigadier, but will remain in Bukkit Command Map. Can be used to hide a
@@ -152,17 +107,12 @@ public class CommandRegisteredEvent<S extends com.destroystokyo.paper.brigadier.
* {@inheritDoc}
*/
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@NotNull
public HandlerList getHandlers() {
return HANDLER_LIST;
}
@NotNull
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -0,0 +1,4 @@
@NullMarked
package com.destroystokyo.paper.event.brigadier;
import org.jspecify.annotations.NullMarked;
@@ -2,59 +2,18 @@ package com.destroystokyo.paper.event.entity;
import io.papermc.paper.event.entity.EntityIgniteEvent;
import org.bukkit.entity.Creeper;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.checkerframework.checker.index.qual.Positive;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a Creeper is ignited either by a
* flint and steel, {@link Creeper#ignite()} or
* {@link Creeper#setIgnited(boolean)}.
*/
@NullMarked
public class CreeperIgniteEvent extends EntityIgniteEvent {
private boolean ignited;
@ApiStatus.Internal
public CreeperIgniteEvent(final Creeper creeper, final boolean ignited) {
super(creeper, creeper.getMaxFuseTicks());
this.ignited = ignited;
}
public interface CreeperIgniteEvent extends EntityIgniteEvent {
@Override
public Creeper getEntity() {
return (Creeper) super.getEntity();
}
Creeper getEntity();
public boolean isIgnited() {
return this.ignited;
}
boolean isIgnited();
public void setIgnited(final boolean ignited) {
this.ignited = ignited;
}
@Override
public @Positive int getFuseTime() {
return this.getEntity().getMaxFuseTicks();
}
@Override
public void setFuseTime(final @Positive int ticks) {
this.getEntity().setMaxFuseTicks(ticks);
}
@Override
public boolean isCancelled() {
return super.isCancelled();
}
@Override
public void setCancelled(final boolean cancel) {
super.setCancelled(cancel);
}
void setIgnited(boolean ignited);
}
@@ -7,68 +7,35 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jetbrains.annotations.Unmodifiable;
/**
* Fired when a DragonFireball collides with a block/entity and spawns an AreaEffectCloud
*/
@NullMarked
public class EnderDragonFireballHitEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Collection<LivingEntity> targets;
private final AreaEffectCloud areaEffectCloud;
private boolean cancelled;
@ApiStatus.Internal
public EnderDragonFireballHitEvent(final DragonFireball fireball, final Collection<LivingEntity> targets, final AreaEffectCloud areaEffectCloud) {
super(fireball);
this.targets = targets;
this.areaEffectCloud = areaEffectCloud;
}
public interface EnderDragonFireballHitEvent extends EntityEvent, Cancellable {
/**
* The fireball involved in this event
*/
@Override
public DragonFireball getEntity() {
return (DragonFireball) super.getEntity();
}
DragonFireball getEntity();
/**
* The living entities hit by fireball
*
* @return the targets
*/
public Collection<LivingEntity> getTargets() {
return this.targets;
}
@Unmodifiable Collection<LivingEntity> getTargets();
/**
* @return The area effect cloud spawned in this collision
*/
public AreaEffectCloud getAreaEffectCloud() {
return this.areaEffectCloud;
}
AreaEffectCloud getAreaEffectCloud();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -5,57 +5,27 @@ import org.bukkit.entity.EnderDragon;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when an EnderDragon spawns an AreaEffectCloud by shooting flames
*/
@NullMarked
public class EnderDragonFlameEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final AreaEffectCloud areaEffectCloud;
private boolean cancelled;
@ApiStatus.Internal
public EnderDragonFlameEvent(final EnderDragon enderDragon, final AreaEffectCloud areaEffectCloud) {
super(enderDragon);
this.areaEffectCloud = areaEffectCloud;
}
public interface EnderDragonFlameEvent extends EntityEvent, Cancellable {
/**
* The enderdragon involved in this event
*/
@Override
public EnderDragon getEntity() {
return (EnderDragon) super.getEntity();
}
EnderDragon getEntity();
/**
* @return The area effect cloud spawned in this collision
*/
public AreaEffectCloud getAreaEffectCloud() {
return this.areaEffectCloud;
}
AreaEffectCloud getAreaEffectCloud();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -5,57 +5,27 @@ import org.bukkit.entity.EnderDragon;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when an EnderDragon shoots a fireball
*/
@NullMarked
public class EnderDragonShootFireballEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final DragonFireball fireball;
private boolean cancelled;
@ApiStatus.Internal
public EnderDragonShootFireballEvent(final EnderDragon entity, final DragonFireball fireball) {
super(entity);
this.fireball = fireball;
}
public interface EnderDragonShootFireballEvent extends EntityEvent, Cancellable {
/**
* The enderdragon shooting the fireball
*/
@Override
public EnderDragon getEntity() {
return (EnderDragon) super.getEntity();
}
EnderDragon getEntity();
/**
* @return The fireball being shot
*/
public DragonFireball getFireball() {
return this.fireball;
}
DragonFireball getFireball();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -28,8 +28,6 @@ import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when an Enderman determines if it should attack a player or not.
@@ -37,19 +35,7 @@ import org.jspecify.annotations.NullMarked;
* Starts off cancelled if the player is wearing a pumpkin head or is not looking
* at the Enderman, according to Vanilla rules.
*/
@NullMarked
public class EndermanAttackPlayerEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Player player;
private boolean cancelled;
@ApiStatus.Internal
public EndermanAttackPlayerEvent(final Enderman entity, final Player player) {
super(entity);
this.player = player;
}
public interface EndermanAttackPlayerEvent extends EntityEvent, Cancellable {
/**
* The enderman considering attacking
@@ -57,26 +43,20 @@ public class EndermanAttackPlayerEvent extends EntityEvent implements Cancellabl
* @return The enderman considering attacking
*/
@Override
public Enderman getEntity() {
return (Enderman) super.getEntity();
}
Enderman getEntity();
/**
* The player the Enderman is considering attacking
*
* @return The player the Enderman is considering attacking
*/
public Player getPlayer() {
return this.player;
}
Player getPlayer();
/**
* @return If cancelled, the enderman will not attack
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* {@inheritDoc}
@@ -84,16 +64,12 @@ public class EndermanAttackPlayerEvent extends EntityEvent implements Cancellabl
* Cancels if the Enderman will attack this player
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -4,41 +4,18 @@ import org.bukkit.entity.Enderman;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
@NullMarked
public class EndermanEscapeEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Reason reason;
private boolean cancelled;
@ApiStatus.Internal
public EndermanEscapeEvent(final Enderman entity, final Reason reason) {
super(entity);
this.reason = reason;
}
public interface EndermanEscapeEvent extends EntityEvent, Cancellable {
@Override
public Enderman getEntity() {
return (Enderman) super.getEntity();
}
Enderman getEntity();
/**
* Gets the reason the enderman is trying to escape.
*
* @return The reason
*/
public Reason getReason() {
return this.reason;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
Reason getReason();
/**
* Cancels the escape.
@@ -48,20 +25,16 @@ public class EndermanEscapeEvent extends EntityEvent implements Cancellable {
* innate immunities or damage behavior like arrows where the damage never happens.
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
void setCancelled(boolean cancel);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
public enum Reason {
enum Reason {
/**
* The enderman has stopped attacking and ran away
*/
@@ -1,44 +1,28 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.bukkit.event.world.WorldEvent;
/**
* Fired any time an entity is being added to the world for any reason (including a chunk loading).
* <p>
* Not to be confused with {@link CreatureSpawnEvent}
*/
@NullMarked
public class EntityAddToWorldEvent extends EntityEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final World world;
@ApiStatus.Internal
public EntityAddToWorldEvent(final Entity entity, final World world) {
super(entity);
this.world = world;
}
public interface EntityAddToWorldEvent extends EntityEvent, WorldEvent {
/**
* @return The world that the entity is being added to
*/
public World getWorld() {
return this.world;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
World getWorld();
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -4,47 +4,21 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when an entity jumps
* <p>
* Cancelling the event will stop the entity from jumping
*/
@NullMarked
public class EntityJumpEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private boolean cancelled;
@ApiStatus.Internal
public EntityJumpEvent(final LivingEntity entity) {
super(entity);
}
public interface EntityJumpEvent extends EntityEvent, Cancellable {
@Override
public LivingEntity getEntity() {
return (LivingEntity) super.getEntity();
}
LivingEntity getEntity();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,52 +1,33 @@
package com.destroystokyo.paper.event.entity;
import io.papermc.paper.event.entity.EntityKnockbackEvent;
import io.papermc.paper.event.entity.EntityPushedByEntityAttackEvent;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when an Entity is knocked back by the hit of another Entity. The acceleration
* vector can be modified. If this event is cancelled, the entity is not knocked back.
*/
@NullMarked
public class EntityKnockbackByEntityEvent extends EntityPushedByEntityAttackEvent {
private final float knockbackStrength;
@ApiStatus.Internal
public EntityKnockbackByEntityEvent(final LivingEntity entity, final Entity hitBy, final EntityKnockbackEvent.Cause cause, final float knockbackStrength, final Vector knockback) {
super(entity, cause, hitBy, knockback);
this.knockbackStrength = knockbackStrength;
}
public interface EntityKnockbackByEntityEvent extends EntityPushedByEntityAttackEvent {
/**
* @return the entity which was knocked back
*/
@Override
public LivingEntity getEntity() {
return (LivingEntity) super.getEntity();
}
LivingEntity getEntity();
/**
* @return the original knockback strength.
* @apiNote this value doesn't necessarily relate to {@link #getKnockback()}.
*/
@ApiStatus.Obsolete(since = "1.20.6")
public float getKnockbackStrength() {
return this.knockbackStrength;
}
float getKnockbackStrength();
/**
* Gets the causing entity. Same as {@link #getPushedBy()}.
*
* @return the Entity which hit
*/
public Entity getHitBy() {
return super.getPushedBy();
}
Entity getHitBy();
}
@@ -5,8 +5,6 @@ import org.bukkit.entity.Entity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
@@ -15,21 +13,7 @@ import org.jspecify.annotations.Nullable;
* This event does not fire for the entities actual movement. Only when it
* is choosing to start moving to a location.
*/
@NullMarked
public class EntityPathfindEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final @Nullable Entity targetEntity;
private final Location location;
private boolean cancelled;
@ApiStatus.Internal
public EntityPathfindEvent(final Entity entity, final Location location, final @Nullable Entity targetEntity) {
super(entity);
this.targetEntity = targetEntity;
this.location = location;
}
public interface EntityPathfindEvent extends EntityEvent, Cancellable {
/**
* The Entity that is pathfinding.
@@ -37,9 +21,7 @@ public class EntityPathfindEvent extends EntityEvent implements Cancellable {
* @return The Entity that is pathfinding.
*/
@Override
public Entity getEntity() {
return this.entity;
}
Entity getEntity();
/**
* If the Entity is trying to pathfind to an entity, this is the entity in relation.
@@ -48,9 +30,7 @@ public class EntityPathfindEvent extends EntityEvent implements Cancellable {
*
* @return The entity target or {@code null}
*/
public @Nullable Entity getTargetEntity() {
return this.targetEntity;
}
@Nullable Entity getTargetEntity();
/**
* The Location of where the entity is about to move to.
@@ -59,26 +39,25 @@ public class EntityPathfindEvent extends EntityEvent implements Cancellable {
*
* @return Location of where the entity is trying to pathfind to.
*/
public Location getLoc() {
return this.location.clone();
Location getTargetLocation();
/**
* The Location of where the entity is about to move to.
* <br>
* Note that if the target happened to of been an entity
*
* @return Location of where the entity is trying to pathfind to.
* @deprecated use {@link #getTargetLocation()}
*/
@Deprecated(forRemoval = true)
default Location getLoc() {
return this.getTargetLocation();
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,42 +1,26 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.bukkit.event.world.WorldEvent;
/**
* Fired any time an entity is being removed from a world for any reason (including a chunk unloading).
* Note: The entity is updated prior to this event being called, as such, the entity's world may not be equal to {@link #getWorld()}.
*/
@NullMarked
public class EntityRemoveFromWorldEvent extends EntityEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final World world;
@ApiStatus.Internal
public EntityRemoveFromWorldEvent(final Entity entity, final World world) {
super(entity);
this.world = world;
}
public interface EntityRemoveFromWorldEvent extends EntityEvent, WorldEvent {
/**
* @return The world that the entity is being removed from
*/
public World getWorld() {
return this.world;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
World getWorld();
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,33 +1,17 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.Location;
import org.bukkit.block.EndGateway;
import org.bukkit.entity.Entity;
import org.bukkit.event.entity.EntityTeleportEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired any time an entity attempts to teleport in an end gateway
*/
@NullMarked
public class EntityTeleportEndGatewayEvent extends EntityTeleportEvent {
private final EndGateway gateway;
@ApiStatus.Internal
public EntityTeleportEndGatewayEvent(final Entity entity, final Location from, final Location to, final EndGateway gateway) {
super(entity, from, to);
this.gateway = gateway;
}
public interface EntityTeleportEndGatewayEvent extends EntityTeleportEvent {
/**
* The gateway triggering the teleport
*
* @return EndGateway used
*/
public EndGateway getGateway() {
return this.gateway;
}
EndGateway getGateway();
}
@@ -1,65 +1,35 @@
package com.destroystokyo.paper.event.entity;
import java.util.Collections;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LightningStrike;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityTransformEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when lightning strikes an entity
*/
@NullMarked
public class EntityZapEvent extends EntityTransformEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final LightningStrike bolt;
private boolean cancelled;
@ApiStatus.Internal
public EntityZapEvent(final Entity entity, final LightningStrike bolt, final Entity replacementEntity) {
super(entity, Collections.singletonList(replacementEntity), TransformReason.LIGHTNING);
this.bolt = bolt;
}
public interface EntityZapEvent extends EntityTransformEvent {
/**
* Gets the lightning bolt that is striking the entity.
*
* @return The lightning bolt responsible for this event
*/
public LightningStrike getBolt() {
return this.bolt;
}
LightningStrike getBolt();
/**
* Gets the entity that will replace the struck entity.
*
* @return The entity that will replace the struck entity
*/
public Entity getReplacementEntity() {
return super.getTransformedEntity();
default Entity getReplacementEntity() {
return this.getTransformedEntity();
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -27,62 +27,32 @@ import org.bukkit.entity.ExperienceOrb;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired anytime the server is about to merge 2 experience orbs into one
*/
@NullMarked
public class ExperienceOrbMergeEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final ExperienceOrb mergeTarget;
private final ExperienceOrb mergeSource;
private boolean cancelled;
@ApiStatus.Internal
public ExperienceOrbMergeEvent(final ExperienceOrb mergeTarget, final ExperienceOrb mergeSource) {
super(mergeTarget);
this.mergeTarget = mergeTarget;
this.mergeSource = mergeSource;
}
public interface ExperienceOrbMergeEvent extends EntityEvent, Cancellable {
/**
* @return The orb that will absorb the other experience orb
* {@return the orb that will absorb the other experience orb}
*/
public ExperienceOrb getMergeTarget() {
return this.mergeTarget;
}
ExperienceOrb getMergeTarget();
/**
* @return The orb that is subject to being removed and merged into the target orb
* {@return the orb that is subject to being removed and merged into the target orb}
*/
public ExperienceOrb getMergeSource() {
return this.mergeSource;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
ExperienceOrb getMergeSource();
/**
* @param cancel {@code true} if you wish to cancel this event, and prevent the orbs from merging
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,32 +1,16 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a phantom is spawned for an exhausted player
*/
@NullMarked
public class PhantomPreSpawnEvent extends PreCreatureSpawnEvent {
private final Entity entity;
@ApiStatus.Internal
public PhantomPreSpawnEvent(final Location location, final Entity entity, final CreatureSpawnEvent.SpawnReason reason) {
super(location, EntityType.PHANTOM, reason);
this.entity = entity;
}
public interface PhantomPreSpawnEvent extends PreCreatureSpawnEvent {
/**
* Get the entity this phantom is spawning for
*
* @return the Entity
*/
public Entity getSpawningEntity() {
return this.entity;
}
Entity getSpawningEntity();
}
@@ -1,65 +1,40 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when the server is calculating what chunks to try to spawn monsters in every Monster Spawn Tick event
*/
@NullMarked
public class PlayerNaturallySpawnCreaturesEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private byte radius;
private boolean cancelled;
@ApiStatus.Internal
public PlayerNaturallySpawnCreaturesEvent(final Player player, final byte radius) {
super(player);
this.radius = radius;
}
public interface PlayerNaturallySpawnCreaturesEvent extends PlayerEvent, Cancellable {
/**
* @return The radius of chunks around this player to be included in natural spawn selection
*/
public byte getSpawnRadius() {
return this.radius;
}
byte getSpawnRadius();
/**
* @param radius The radius of chunks around this player to be included in natural spawn selection
*/
public void setSpawnRadius(final byte radius) {
this.radius = radius;
}
void setSpawnRadius(byte radius);
/**
* @return If this player's chunks will be excluded from natural spawns
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* @param cancel {@code true} if you wish to cancel this event, and not include this player's chunks for natural spawning
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -6,8 +6,6 @@ import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* WARNING: This event only fires for a limited number of cases, and not for every case that {@link CreatureSpawnEvent} does.
@@ -19,52 +17,27 @@ import org.jspecify.annotations.NullMarked;
* Currently: NATURAL and SPAWNER based reasons. <!-- Please submit a Pull Request for future additions. -->
* Also, Plugins that replace Entity Registrations with their own custom entities might not fire this event.
*/
@NullMarked
public class PreCreatureSpawnEvent extends Event implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Location location;
private final EntityType type;
private final CreatureSpawnEvent.SpawnReason reason;
private boolean shouldAbortSpawn;
private boolean cancelled;
@ApiStatus.Internal
public PreCreatureSpawnEvent(final Location location, final EntityType type, final CreatureSpawnEvent.SpawnReason reason) {
this.location = location;
this.type = type;
this.reason = reason;
}
public interface PreCreatureSpawnEvent extends Event, Cancellable {
/**
* @return The location this creature is being spawned at
*/
public Location getSpawnLocation() {
return this.location.clone();
}
Location getSpawnLocation();
/**
* @return The type of creature being spawned
*/
public EntityType getType() {
return this.type;
}
EntityType getType();
/**
* @return Reason this creature is spawning (ie, NATURAL vs SPAWNER)
*/
public CreatureSpawnEvent.SpawnReason getReason() {
return this.reason;
}
CreatureSpawnEvent.SpawnReason getReason();
/**
* @return If the spawn process should be aborted vs trying more attempts
*/
public boolean shouldAbortSpawn() {
return this.shouldAbortSpawn;
}
boolean shouldAbortSpawn();
/**
* Set this if you are more blanket blocking all types of these spawns, and wish to abort the spawn process from
@@ -72,17 +45,13 @@ public class PreCreatureSpawnEvent extends Event implements Cancellable {
*
* @param shouldAbortSpawn Set if the spawn process should be aborted vs trying more attempts
*/
public void setShouldAbortSpawn(final boolean shouldAbortSpawn) {
this.shouldAbortSpawn = shouldAbortSpawn;
}
void setShouldAbortSpawn(boolean shouldAbortSpawn);
/**
* @return If the spawn of this creature is cancelled or not
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* Cancelling this event is more efficient than cancelling {@link CreatureSpawnEvent}
@@ -90,16 +59,12 @@ public class PreCreatureSpawnEvent extends Event implements Cancellable {
* @param cancel {@code true} if you wish to cancel this event, and abort the spawn of this creature
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,10 +1,6 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.Location;
import org.bukkit.entity.EntityType;
import org.bukkit.event.entity.CreatureSpawnEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called before an entity is spawned into a world by a spawner.
@@ -12,18 +8,7 @@ import org.jspecify.annotations.NullMarked;
* This only includes the spawner's location and not the full BlockState snapshot for performance reasons.
* If you really need it you have to get the spawner yourself.
*/
@NullMarked
public class PreSpawnerSpawnEvent extends PreCreatureSpawnEvent {
public interface PreSpawnerSpawnEvent extends PreCreatureSpawnEvent {
private final Location spawnerLocation;
@ApiStatus.Internal
public PreSpawnerSpawnEvent(final Location location, final EntityType type, final Location spawnerLocation) {
super(location, type, CreatureSpawnEvent.SpawnReason.SPAWNER);
this.spawnerLocation = spawnerLocation;
}
public Location getSpawnerLocation() {
return this.spawnerLocation.clone();
}
Location getSpawnerLocation();
}
@@ -1,76 +1,41 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.Warning;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Projectile;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
/**
* Called when a projectile collides with an entity
* <p>
* This event is called <b>before</b> {@link EntityDamageByEntityEvent}, and cancelling it will allow the projectile to continue flying
*
* @deprecated Deprecated, use {@link org.bukkit.event.entity.ProjectileHitEvent} and check if there is a hit entity
* @deprecated use {@link org.bukkit.event.entity.ProjectileHitEvent} and check if there is a hit entity
*/
@Deprecated(since = "1.19.3")
@Warning(propagate = false)
public class ProjectileCollideEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
@NotNull private final Entity collidedWith;
private boolean cancelled;
@ApiStatus.Internal
public ProjectileCollideEvent(@NotNull Projectile projectile, @NotNull Entity collidedWith) {
super(projectile);
this.collidedWith = collidedWith;
}
public interface ProjectileCollideEvent extends EntityEvent, Cancellable {
/**
* Get the projectile that collided
*
* @return the projectile that collided
*/
@NotNull
public Projectile getEntity() {
return (Projectile) super.getEntity();
}
@Override
Projectile getEntity();
/**
* Get the entity the projectile collided with
*
* @return the entity collided with
*/
@NotNull
public Entity getCollidedWith() {
return this.collidedWith;
}
Entity getCollidedWith();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
@NotNull
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -6,52 +6,22 @@ import org.bukkit.entity.SkeletonHorse;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Event called when a player gets close to a skeleton horse and triggers the lightning trap
*/
@NullMarked
public class SkeletonHorseTrapEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final List<HumanEntity> eligibleHumans;
private boolean cancelled;
@ApiStatus.Internal
public SkeletonHorseTrapEvent(final SkeletonHorse horse, final List<HumanEntity> eligibleHumans) {
super(horse);
this.eligibleHumans = eligibleHumans;
}
public interface SkeletonHorseTrapEvent extends EntityEvent, Cancellable {
@Override
public SkeletonHorse getEntity() {
return (SkeletonHorse) super.getEntity();
}
SkeletonHorse getEntity();
public List<HumanEntity> getEligibleHumans() {
return this.eligibleHumans;
}
List<HumanEntity> getEligibleHumans();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,41 +1,24 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.entity.AbstractCubeMob;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Slime decides to change its facing direction.
* <p>
* This event does not fire for the entity's actual movement. Only when it
* is choosing to change direction.
*/
@NullMarked
public class SlimeChangeDirectionEvent extends SlimePathfindEvent {
private float yaw;
@ApiStatus.Internal
public SlimeChangeDirectionEvent(final AbstractCubeMob cubeMob, final float yaw) {
super(cubeMob);
this.yaw = yaw;
}
public interface SlimeChangeDirectionEvent extends SlimePathfindEvent {
/**
* Get the new chosen yaw
*
* @return Chosen yaw
*/
public float getNewYaw() {
return this.yaw;
}
float getNewYaw();
/**
* Set the new chosen yaw
*
* @param yaw Chosen yaw
*/
public void setNewYaw(final float yaw) {
this.yaw = yaw;
}
void setNewYaw(float yaw);
}
@@ -4,8 +4,6 @@ import org.bukkit.entity.AbstractCubeMob;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Slime decides to start pathfinding.
@@ -13,17 +11,7 @@ import org.jspecify.annotations.NullMarked;
* This event does not fire for the entity's actual movement. Only when it
* is choosing to start moving.
*/
@NullMarked
public class SlimePathfindEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private boolean cancelled;
@ApiStatus.Internal
public SlimePathfindEvent(final AbstractCubeMob cubeMob) {
super(cubeMob);
}
public interface SlimePathfindEvent extends EntityEvent, Cancellable {
/**
* The Slime that is pathfinding.
@@ -31,26 +19,12 @@ public class SlimePathfindEvent extends EntityEvent implements Cancellable {
* @return The Slime that is pathfinding.
*/
@Override
public AbstractCubeMob getEntity() {
return (AbstractCubeMob) super.getEntity();
}
AbstractCubeMob getEntity();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,20 +1,10 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.entity.AbstractCubeMob;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Slime decides to start jumping while swimming in water/lava.
* <p>
* This event does not fire for the entity's actual movement. Only when it
* is choosing to start jumping.
*/
@NullMarked
public class SlimeSwimEvent extends SlimeWanderEvent {
@ApiStatus.Internal
public SlimeSwimEvent(final AbstractCubeMob cubeMob) {
super(cubeMob);
}
public interface SlimeSwimEvent extends SlimeWanderEvent {
}
@@ -1,9 +1,6 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.entity.AbstractCubeMob;
import org.bukkit.entity.LivingEntity;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Slime decides to change direction to target a LivingEntity.
@@ -11,23 +8,12 @@ import org.jspecify.annotations.NullMarked;
* This event does not fire for the entity's actual movement. Only when it
* is choosing to start moving.
*/
@NullMarked
public class SlimeTargetLivingEntityEvent extends SlimePathfindEvent {
private final LivingEntity target;
@ApiStatus.Internal
public SlimeTargetLivingEntityEvent(final AbstractCubeMob cubeMob, final LivingEntity target) {
super(cubeMob);
this.target = target;
}
public interface SlimeTargetLivingEntityEvent extends SlimePathfindEvent {
/**
* Get the targeted entity
*
* @return Targeted entity
*/
public LivingEntity getTarget() {
return this.target;
}
LivingEntity getTarget();
}
@@ -1,20 +1,10 @@
package com.destroystokyo.paper.event.entity;
import org.bukkit.entity.AbstractCubeMob;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Slime decides to start wandering.
* <p>
* This event does not fire for the entity's actual movement. Only when it
* is choosing to start moving.
*/
@NullMarked
public class SlimeWanderEvent extends SlimePathfindEvent {
@ApiStatus.Internal
public SlimeWanderEvent(final AbstractCubeMob cubeMob) {
super(cubeMob);
}
public interface SlimeWanderEvent extends SlimePathfindEvent {
}
@@ -1,54 +1,39 @@
package com.destroystokyo.paper.event.entity;
import com.google.common.base.Preconditions;
import org.bukkit.entity.Egg;
import org.bukkit.entity.EntityType;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.bukkit.event.entity.EntityEvent;
import org.checkerframework.checker.index.qual.NonNegative;
/**
* Called when a thrown egg might hatch.
* <p>
* This event fires for all thrown eggs that may hatch, players, dispensers, etc.
*/
@NullMarked
public class ThrownEggHatchEvent extends Event {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Egg egg;
private boolean hatching;
private byte numHatches;
private EntityType hatchType;
@ApiStatus.Internal
public ThrownEggHatchEvent(final Egg egg, final boolean hatching, final byte numHatches, final EntityType hatchingType) {
this.egg = egg;
this.hatching = hatching;
this.numHatches = numHatches;
this.hatchType = hatchingType;
}
public interface ThrownEggHatchEvent extends EntityEvent {
/**
* Gets the egg involved in this event.
*
* @return the egg involved in this event
* @deprecated use {@link #getEntity()}
*/
public Egg getEgg() {
return this.egg;
@Deprecated(forRemoval = true)
default Egg getEgg() {
return this.getEntity();
}
@Override
Egg getEntity();
/**
* Gets whether the egg is hatching or not. Will be what the server
* would've done without interaction.
*
* @return boolean Whether the egg is going to hatch or not
*/
public boolean isHatching() {
return this.hatching;
}
boolean isHatching();
/**
* Sets whether the egg will hatch or not.
@@ -56,28 +41,7 @@ public class ThrownEggHatchEvent extends Event {
* @param hatching {@code true} if you want the egg to hatch, {@code false} if you want it
* not to
*/
public void setHatching(final boolean hatching) {
this.hatching = hatching;
}
/**
* Get the type of the mob being hatched ({@link EntityType#CHICKEN} by default)
*
* @return The type of the mob being hatched by the egg
*/
public EntityType getHatchingType() {
return this.hatchType;
}
/**
* Change the type of mob being hatched by the egg
*
* @param hatchType The type of the mob being hatched by the egg
*/
public void setHatchingType(final EntityType hatchType) {
Preconditions.checkArgument(hatchType.isSpawnable(), "Can't spawn that entity type from an egg!");
this.hatchType = hatchType;
}
void setHatching(boolean hatching);
/**
* Get the number of mob hatches from the egg. By default, the number will
@@ -90,9 +54,7 @@ public class ThrownEggHatchEvent extends Event {
*
* @return The number of mobs going to be hatched by the egg
*/
public byte getNumHatches() {
return this.numHatches;
}
@NonNegative byte getNumHatches();
/**
* Change the number of mobs coming out of the hatched egg
@@ -102,16 +64,26 @@ public class ThrownEggHatchEvent extends Event {
*
* @param numHatches The number of mobs coming out of the egg
*/
public void setNumHatches(final byte numHatches) {
this.numHatches = numHatches;
}
void setNumHatches(@NonNegative byte numHatches);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
/**
* Get the type of the mob being hatched ({@link EntityType#CHICKEN} by default)
*
* @return The type of the mob being hatched by the egg
*/
EntityType getHatchingType();
public static HandlerList getHandlerList() {
return HANDLER_LIST;
/**
* Change the type of mob being hatched by the egg
*
* @param hatchType The type of the mob being hatched by the egg
*/
void setHatchingType(EntityType hatchType);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -4,23 +4,11 @@ import org.bukkit.entity.Turtle;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Turtle decides to go home
*/
@NullMarked
public class TurtleGoHomeEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private boolean cancelled;
@ApiStatus.Internal
public TurtleGoHomeEvent(final Turtle turtle) {
super(turtle);
}
public interface TurtleGoHomeEvent extends EntityEvent, Cancellable {
/**
* The turtle going home
@@ -28,26 +16,12 @@ public class TurtleGoHomeEvent extends EntityEvent implements Cancellable {
* @return The turtle
*/
@Override
public Turtle getEntity() {
return (Turtle) super.getEntity();
}
Turtle getEntity();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -5,28 +5,12 @@ import org.bukkit.entity.Turtle;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.checkerframework.common.value.qual.IntRange;
/**
* Fired when a Turtle lays eggs
*/
@NullMarked
public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Location location;
private int eggCount;
private boolean cancelled;
@ApiStatus.Internal
public TurtleLayEggEvent(final Turtle turtle, final Location location, final int eggCount) {
super(turtle);
this.location = location;
this.eggCount = eggCount;
}
public interface TurtleLayEggEvent extends EntityEvent, Cancellable {
/**
* The turtle laying the eggs
@@ -34,57 +18,33 @@ public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
* @return The turtle
*/
@Override
public Turtle getEntity() {
return (Turtle) super.getEntity();
}
Turtle getEntity();
/**
* Get the location where the eggs are being laid
*
* @return Location of eggs
*/
public Location getLocation() {
return this.location.clone();
}
Location getLocation();
/**
* Get the number of eggs being laid
*
* @return Number of eggs
*/
public int getEggCount() {
return this.eggCount;
}
@IntRange(from = 1, to = 4) int getEggCount();
/**
* Set the number of eggs being laid
*
* @param eggCount Number of eggs
*/
public void setEggCount(final int eggCount) {
if (eggCount < 1) {
this.cancelled = true;
return;
void setEggCount(@IntRange(from = 0, to = 4) int eggCount);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
this.eggCount = Math.min(eggCount, 4);
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
return Holder.HANDLER_LIST;
}
}
@@ -5,25 +5,11 @@ import org.bukkit.entity.Turtle;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a Turtle starts digging to lay eggs
*/
@NullMarked
public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Location location;
private boolean cancelled;
@ApiStatus.Internal
public TurtleStartDiggingEvent(final Turtle turtle, final Location location) {
super(turtle);
this.location = location;
}
public interface TurtleStartDiggingEvent extends EntityEvent, Cancellable {
/**
* The turtle digging
@@ -31,35 +17,19 @@ public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable
* @return The turtle
*/
@Override
public Turtle getEntity() {
return (Turtle) super.getEntity();
}
Turtle getEntity();
/**
* Get the location where the turtle is digging
*
* @return Location where digging
*/
public Location getLocation() {
return this.location.clone();
}
Location getLocation();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -5,67 +5,38 @@ import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Fired when a witch consumes the potion in their hand to buff themselves.
*/
@NullMarked
public class WitchConsumePotionEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private @Nullable ItemStack potion;
private boolean cancelled;
@ApiStatus.Internal
public WitchConsumePotionEvent(final Witch witch, final @Nullable ItemStack potion) {
super(witch);
this.potion = potion;
}
public interface WitchConsumePotionEvent extends EntityEvent, Cancellable {
@Override
public Witch getEntity() {
return (Witch) super.getEntity();
}
Witch getEntity();
/**
* @return the potion the witch will consume and have the effects applied.
*/
public @Nullable ItemStack getPotion() {
return this.potion;
}
@Nullable ItemStack getPotion();
/**
* Sets the potion to be consumed and applied to the witch.
*
* @param potion The potion
*/
public void setPotion(final @Nullable ItemStack potion) {
this.potion = potion != null ? potion.clone() : null;
}
void setPotion(@Nullable ItemStack potion);
/**
* @return Event was cancelled or potion was {@code null}
*/
@Override
public boolean isCancelled() {
return this.cancelled || this.potion == null;
}
boolean isCancelled();
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -5,61 +5,29 @@ import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
@NullMarked
public class WitchReadyPotionEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private @Nullable ItemStack potion;
private boolean cancelled;
@ApiStatus.Internal
public WitchReadyPotionEvent(final Witch witch, final @Nullable ItemStack potion) {
super(witch);
this.potion = potion;
}
public interface WitchReadyPotionEvent extends EntityEvent, Cancellable {
@Override
public Witch getEntity() {
return (Witch) super.getEntity();
}
Witch getEntity();
/**
* @return the potion the witch is readying to use
*/
public @Nullable ItemStack getPotion() {
return this.potion;
}
@Nullable ItemStack getPotion();
/**
* Sets the potion the which is going to hold and use
*
* @param potion The potion
*/
public void setPotion(final @Nullable ItemStack potion) {
this.potion = potion != null ? potion.clone() : null;
}
void setPotion(@Nullable ItemStack potion);
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -6,76 +6,43 @@ import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Fired when a witch throws a potion at a player
*/
@NullMarked
public class WitchThrowPotionEvent extends EntityEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final LivingEntity target;
private @Nullable ItemStack potion;
private boolean cancelled;
@ApiStatus.Internal
public WitchThrowPotionEvent(final Witch witch, final LivingEntity target, final @Nullable ItemStack potion) {
super(witch);
this.target = target;
this.potion = potion;
}
public interface WitchThrowPotionEvent extends EntityEvent, Cancellable {
@Override
public Witch getEntity() {
return (Witch) super.getEntity();
}
Witch getEntity();
/**
* @return The target of the potion
*/
public LivingEntity getTarget() {
return this.target;
}
LivingEntity getTarget();
/**
* @return The potion the witch will throw at a player
*/
public @Nullable ItemStack getPotion() {
return this.potion;
}
@Nullable ItemStack getPotion();
/**
* Sets the potion to be thrown at a player
*
* @param potion The potion
*/
public void setPotion(final @Nullable ItemStack potion) {
this.potion = potion != null ? potion.clone() : null;
}
void setPotion(@Nullable ItemStack potion);
/**
* @return Event was cancelled or potion was {@code null}
*/
@Override
public boolean isCancelled() {
return this.cancelled || this.potion == null;
}
boolean isCancelled();
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -0,0 +1,4 @@
@NullMarked
package com.destroystokyo.paper.event.entity;
import org.jspecify.annotations.NullMarked;
@@ -2,11 +2,7 @@ package com.destroystokyo.paper.event.inventory;
import org.bukkit.Warning;
import org.bukkit.inventory.GrindstoneInventory;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jspecify.annotations.NullMarked;
/**
* Called when an item is put in a slot for grinding in a Grindstone
@@ -14,18 +10,10 @@ import org.jetbrains.annotations.Nullable;
* @deprecated use {@link org.bukkit.event.inventory.PrepareGrindstoneEvent}
*/
@Deprecated(since = "1.16.1")
@Warning(propagate = false)
public class PrepareGrindstoneEvent extends PrepareResultEvent {
@Warning
@NullMarked
public interface PrepareGrindstoneEvent extends PrepareResultEvent {
@ApiStatus.Internal
public PrepareGrindstoneEvent(@NotNull InventoryView inventory, @Nullable ItemStack result) {
super(inventory, result);
}
@NotNull
@Override
public GrindstoneInventory getInventory() {
return (GrindstoneInventory) super.getInventory();
}
GrindstoneInventory getInventory();
}
@@ -1,42 +1,9 @@
package com.destroystokyo.paper.event.inventory;
import org.bukkit.event.inventory.PrepareInventoryResultEvent;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
* Called when an item is put in an inventory containing a result slot
*/
@NullMarked
public class PrepareResultEvent extends PrepareInventoryResultEvent {
// HandlerList on PrepareInventoryResultEvent to ensure api compat
@ApiStatus.Internal
public PrepareResultEvent(final InventoryView inventory, final @Nullable ItemStack result) {
super(inventory, result);
}
/**
* Get result item, may be {@code null}.
*
* @return result item
*/
@Override
public @Nullable ItemStack getResult() {
return super.getResult();
}
/**
* Set result item, may be {@code null}.
*
* @param result result item
*/
@Override
public void setResult(final @Nullable ItemStack result) {
super.setResult(result);
}
public interface PrepareResultEvent extends PrepareInventoryResultEvent {
}
@@ -1,69 +1,31 @@
package com.destroystokyo.paper.event.player;
import org.bukkit.Warning;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jspecify.annotations.Nullable;
/**
* @deprecated Not used
* @deprecated not called anymore
*/
@Deprecated(since = "1.16.4", forRemoval = true)
@Warning(value = true, propagate = false)
public class IllegalPacketEvent extends PlayerEvent {
public interface IllegalPacketEvent extends PlayerEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
boolean isShouldKick();
@Nullable private final String type;
@Nullable private final String exceptionMessage;
@Nullable private String kickMessage;
private boolean shouldKick = true;
void setShouldKick(boolean shouldKick);
@ApiStatus.Internal
public IllegalPacketEvent(@NotNull Player player, @Nullable String type, @Nullable String kickMessage, @NotNull Exception e) {
super(player);
this.type = type;
this.kickMessage = kickMessage;
this.exceptionMessage = e.getMessage();
}
@Nullable String getKickMessage();
public boolean isShouldKick() {
return this.shouldKick;
}
void setKickMessage(@Nullable String kickMessage);
public void setShouldKick(boolean shouldKick) {
this.shouldKick = shouldKick;
}
@Nullable String getType();
@Nullable
public String getKickMessage() {
return this.kickMessage;
}
@Nullable String getExceptionMessage();
public void setKickMessage(@Nullable String kickMessage) {
this.kickMessage = kickMessage;
}
@Nullable
public String getType() {
return this.type;
}
@Nullable
public String getExceptionMessage() {
return this.exceptionMessage;
}
@NotNull
public HandlerList getHandlers() {
return HANDLER_LIST;
}
@NotNull
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -2,79 +2,41 @@ package com.destroystokyo.paper.event.player;
import org.bukkit.advancement.Advancement;
import org.bukkit.advancement.AdvancementProgress;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called after a player is granted a criteria in an advancement.
* If cancelled the criteria will be revoked.
*/
@NullMarked
public class PlayerAdvancementCriterionGrantEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Advancement advancement;
private final String criterion;
private final AdvancementProgress advancementProgress;
private boolean cancelled;
@ApiStatus.Internal
public PlayerAdvancementCriterionGrantEvent(final Player player, final Advancement advancement, final String criterion) {
super(player);
this.advancement = advancement;
this.criterion = criterion;
this.advancementProgress = player.getAdvancementProgress(advancement);
}
public interface PlayerAdvancementCriterionGrantEvent extends PlayerEvent, Cancellable {
/**
* Get the advancement which has been affected.
*
* @return affected advancement
*/
public Advancement getAdvancement() {
return this.advancement;
}
Advancement getAdvancement();
/**
* Get the criterion which has been granted.
*
* @return granted criterion
*/
public String getCriterion() {
return this.criterion;
}
String getCriterion();
/**
* Gets the current AdvancementProgress.
* Gets the current {@link AdvancementProgress}.
*
* @return advancement progress
*/
public AdvancementProgress getAdvancementProgress() {
return this.advancementProgress;
}
AdvancementProgress getAdvancementProgress();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -2,13 +2,11 @@ package com.destroystokyo.paper.event.player;
import java.util.Set;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
import static org.bukkit.Material.*;
@@ -19,23 +17,8 @@ import static org.bukkit.Material.*;
* Not currently called for environmental factors though it <strong>MAY BE IN THE FUTURE</strong>
* @apiNote Use {@link io.papermc.paper.event.entity.EntityEquipmentChangedEvent} for all entity equipment changes
*/
@NullMarked
@ApiStatus.Obsolete(since = "1.21.4")
public class PlayerArmorChangeEvent extends PlayerEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final SlotType slotType;
private final ItemStack oldItem;
private final ItemStack newItem;
@ApiStatus.Internal
public PlayerArmorChangeEvent(final Player player, final SlotType slotType, final ItemStack oldItem, final ItemStack newItem) {
super(player);
this.slotType = slotType;
this.oldItem = oldItem;
this.newItem = newItem;
}
public interface PlayerArmorChangeEvent extends PlayerEvent {
/**
* Gets the type of slot being altered.
@@ -44,56 +27,41 @@ public class PlayerArmorChangeEvent extends PlayerEvent {
* @deprecated {@link SlotType} does not accurately represent what item types are valid in each slot. Use {@link #getSlot()} instead.
*/
@Deprecated(since = "1.21.4")
public SlotType getSlotType() {
return this.slotType;
}
SlotType getSlotType();
/**
* Gets the slot being altered.
*
* @return slot being altered
*/
public EquipmentSlot getSlot() {
return switch (this.slotType) {
case HEAD -> EquipmentSlot.HEAD;
case CHEST -> EquipmentSlot.CHEST;
case LEGS -> EquipmentSlot.LEGS;
case FEET -> EquipmentSlot.FEET;
};
}
EquipmentSlot getSlot();
/**
* Gets the existing item that's being replaced
*
* @return old item
*/
public ItemStack getOldItem() {
return this.oldItem;
}
ItemStack getOldItem();
/**
* Gets the new item that's replacing the old
*
* @return new item
*/
public ItemStack getNewItem() {
return this.newItem;
}
ItemStack getNewItem();
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
/**
* @deprecated {@link SlotType} does not accurately represent what item types are valid in each slot.
*/
@Deprecated(since = "1.21.4")
public enum SlotType {
enum SlotType {
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),
@@ -1,13 +1,9 @@
package com.destroystokyo.paper.event.player;
import org.bukkit.Warning;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when processing a player's attack on an entity when the player's attack strength cooldown is reset.
@@ -18,42 +14,22 @@ import org.jspecify.annotations.NullMarked;
* Additionally, the cancellation of event is misleading as the client will reset the cooldown manually.
* So there is no way for the server to control this.
*/
@NullMarked
@Deprecated(since = "26.1", forRemoval = true)
@Warning(value = true, propagate = false)
public class PlayerAttackEntityCooldownResetEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Entity attackedEntity;
private final float cooledAttackStrength;
private boolean cancelled;
@ApiStatus.Internal
public PlayerAttackEntityCooldownResetEvent(final Player player, final Entity attackedEntity, final float cooledAttackStrength) {
super(player);
this.attackedEntity = attackedEntity;
this.cooledAttackStrength = cooledAttackStrength;
}
/**
* Get the value of the players cooldown attack strength when they initiated the attack
*
* @return returns the original player cooldown value
*/
public float getCooledAttackStrength() {
return this.cooledAttackStrength;
}
public interface PlayerAttackEntityCooldownResetEvent extends PlayerEvent, Cancellable {
/**
* Returns the entity attacked by the player
*
* @return the entity attacked by the player
*/
public Entity getAttackedEntity() {
return this.attackedEntity;
}
Entity getAttackedEntity();
/**
* Get the value of the players cooldown attack strength when they initiated the attack
*
* @return returns the original player cooldown value
*/
float getCooledAttackStrength();
/**
* {@inheritDoc}
@@ -61,9 +37,7 @@ public class PlayerAttackEntityCooldownResetEvent extends PlayerEvent implements
* If an attack cooldown event is cancelled, the players attack strength will remain at the same value instead of being reset.
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* {@inheritDoc}
@@ -71,16 +45,12 @@ public class PlayerAttackEntityCooldownResetEvent extends PlayerEvent implements
* Cancelling this event will prevent the target player from having their cooldown reset from attacking this entity
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,128 +1,57 @@
package com.destroystokyo.paper.event.player;
import com.destroystokyo.paper.ClientOption;
import com.destroystokyo.paper.ClientOption.ChatVisibility;
import com.destroystokyo.paper.ClientOption.ParticleVisibility;
import com.destroystokyo.paper.SkinParts;
import java.util.Map;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.inventory.MainHand;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when the player changes their client settings
*/
@NullMarked
public class PlayerClientOptionsChangeEvent extends PlayerEvent {
public interface PlayerClientOptionsChangeEvent extends PlayerEvent {
private static final HandlerList HANDLER_LIST = new HandlerList();
String getLocale();
private final String locale;
private final int viewDistance;
private final ChatVisibility chatVisibility;
private final boolean chatColors;
private final SkinParts skinparts;
private final MainHand mainHand;
private final boolean allowsServerListings;
private final boolean textFilteringEnabled;
private final ParticleVisibility particleVisibility;
boolean hasLocaleChanged();
@ApiStatus.Internal
public PlayerClientOptionsChangeEvent(final Player player, final Map<ClientOption<?>, ?> options) {
super(player);
int getViewDistance();
this.locale = (String) options.get(ClientOption.LOCALE);
this.viewDistance = (int) options.get(ClientOption.VIEW_DISTANCE);
this.chatVisibility = (ChatVisibility) options.get(ClientOption.CHAT_VISIBILITY);
this.chatColors = (boolean) options.get(ClientOption.CHAT_COLORS_ENABLED);
this.skinparts = (SkinParts) options.get(ClientOption.SKIN_PARTS);
this.mainHand = (MainHand) options.get(ClientOption.MAIN_HAND);
this.allowsServerListings = (boolean) options.get(ClientOption.ALLOW_SERVER_LISTINGS);
this.textFilteringEnabled = (boolean) options.get(ClientOption.TEXT_FILTERING_ENABLED);
this.particleVisibility = (ParticleVisibility) options.get(ClientOption.PARTICLE_VISIBILITY);
}
boolean hasViewDistanceChanged();
public String getLocale() {
return this.locale;
}
ChatVisibility getChatVisibility();
public boolean hasLocaleChanged() {
return !this.locale.equals(this.player.getClientOption(ClientOption.LOCALE));
}
boolean hasChatVisibilityChanged();
public int getViewDistance() {
return this.viewDistance;
}
boolean hasChatColorsEnabled();
public boolean hasViewDistanceChanged() {
return this.viewDistance != this.player.getClientOption(ClientOption.VIEW_DISTANCE);
}
boolean hasChatColorsEnabledChanged();
public ChatVisibility getChatVisibility() {
return this.chatVisibility;
}
SkinParts getSkinParts();
public boolean hasChatVisibilityChanged() {
return this.chatVisibility != this.player.getClientOption(ClientOption.CHAT_VISIBILITY);
}
boolean hasSkinPartsChanged();
public boolean hasChatColorsEnabled() {
return this.chatColors;
}
MainHand getMainHand();
public boolean hasChatColorsEnabledChanged() {
return this.chatColors != this.player.getClientOption(ClientOption.CHAT_COLORS_ENABLED);
}
boolean hasMainHandChanged();
public SkinParts getSkinParts() {
return this.skinparts;
}
boolean hasTextFilteringEnabled();
public boolean hasSkinPartsChanged() {
return this.skinparts.getRaw() != this.player.getClientOption(ClientOption.SKIN_PARTS).getRaw();
}
boolean hasTextFilteringChanged();
public MainHand getMainHand() {
return this.mainHand;
}
boolean allowsServerListings();
public boolean hasMainHandChanged() {
return this.mainHand != this.player.getClientOption(ClientOption.MAIN_HAND);
}
boolean hasAllowServerListingsChanged();
public boolean hasTextFilteringEnabled() {
return this.textFilteringEnabled;
}
ParticleVisibility getParticleVisibility();
public boolean hasTextFilteringChanged() {
return this.textFilteringEnabled != this.player.getClientOption(ClientOption.TEXT_FILTERING_ENABLED);
}
boolean hasParticleVisibilityChanged();
public boolean allowsServerListings() {
return this.allowsServerListings;
}
public boolean hasAllowServerListingsChanged() {
return this.allowsServerListings != this.player.getClientOption(ClientOption.ALLOW_SERVER_LISTINGS);
}
public ParticleVisibility getParticleVisibility() {
return this.particleVisibility;
}
public boolean hasParticleVisibilityChanged() {
return this.particleVisibility != this.player.getClientOption(ClientOption.PARTICLE_VISIBILITY);
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,18 +1,14 @@
package com.destroystokyo.paper.event.player;
import io.papermc.paper.event.connection.ConnectionEvent;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.util.UUID;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* <p>
* This event is invoked when a player has disconnected. It is guaranteed that,
* if the server is in online-mode, that the provided uuid and username have been
* validated.
@@ -36,60 +32,27 @@ import org.jspecify.annotations.NullMarked;
* The event may be invoked asynchronously or synchronously. Plugins should check
* {@link Event#isAsynchronous()} and handle accordingly.
*/
@NullMarked
public class PlayerConnectionCloseEvent extends Event {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final UUID playerUniqueId;
private final String playerName;
private final SocketAddress ipAddress;
@ApiStatus.Internal
public PlayerConnectionCloseEvent(final UUID playerUniqueId, final String playerName, final SocketAddress ipAddress, final boolean async) {
super(async);
this.playerUniqueId = playerUniqueId;
this.playerName = playerName;
this.ipAddress = ipAddress;
}
public interface PlayerConnectionCloseEvent extends ConnectionEvent {
/**
* Returns the {@code UUID} of the player disconnecting.
* Returns the {@link UUID} of the player disconnecting.
*/
public UUID getPlayerUniqueId() {
return this.playerUniqueId;
}
UUID getPlayerUniqueId();
/**
* Returns the name of the player disconnecting.
*/
public String getPlayerName() {
return this.playerName;
}
String getPlayerName();
/**
* Returns the player's socket address.
* Returns the player's IP address.
*/
public SocketAddress getSocketAddress() {
return this.ipAddress;
}
InetAddress getIpAddress();
/**
* Returns the player's IP address, or the loopback address if the player
* is connecting through a Unix domain socket and the proxy has not
* forwarded the player's IP address yet.
*/
public InetAddress getIpAddress() {
if (this.ipAddress instanceof InetSocketAddress inet) return inet.getAddress();
return InetAddress.getLoopbackAddress();
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,99 +1,56 @@
package com.destroystokyo.paper.event.player;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a player boosts elytra flight with a firework
*/
@NullMarked
public class PlayerElytraBoostEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final ItemStack itemStack;
private final Firework firework;
private boolean consume = true;
private final EquipmentSlot hand;
private boolean cancelled;
@ApiStatus.Internal
public PlayerElytraBoostEvent(final Player player, final ItemStack itemStack, final Firework firework, final EquipmentSlot hand) {
super(player);
this.itemStack = itemStack;
this.firework = firework;
this.hand = hand;
}
public interface PlayerElytraBoostEvent extends PlayerEvent, Cancellable {
/**
* Get the firework itemstack used
*
* @return ItemStack of firework
*/
public ItemStack getItemStack() {
return this.itemStack;
}
ItemStack getItemStack();
/**
* Get the firework entity that was spawned
*
* @return Firework entity
*/
public Firework getFirework() {
return this.firework;
}
Firework getFirework();
/**
* Get whether to consume the firework or not
*
* @return {@code true} to consume
*/
public boolean shouldConsume() {
return this.consume;
}
boolean shouldConsume();
/**
* Set whether to consume the firework or not
*
* @param consume {@code true} to consume
*/
public void setShouldConsume(final boolean consume) {
this.consume = consume;
}
void setShouldConsume(boolean consume);
/**
* Gets the hand holding the firework used for boosting this player.
*
* @return interaction hand
*/
public EquipmentSlot getHand() {
return this.hand;
}
EquipmentSlot getHand();
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,15 +1,10 @@
package com.destroystokyo.paper.event.player;
import com.google.common.base.Preconditions;
import java.util.UUID;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;
/**
@@ -20,44 +15,14 @@ import org.jspecify.annotations.Nullable;
*
* <p>WARNING: TAMPERING WITH THIS EVENT CAN BE DANGEROUS</p>
*/
@NullMarked
public class PlayerHandshakeEvent extends Event implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final String originalHandshake;
private final String originalSocketAddressHostname;
private @Nullable String serverHostname;
private @Nullable String socketAddressHostname;
private @Nullable UUID uniqueId;
private @Nullable String propertiesJson;
private boolean failed;
private Component failMessage = Component.text("If you wish to use IP forwarding, please enable it in your BungeeCord config as well!", NamedTextColor.YELLOW);
private boolean cancelled;
@Deprecated
@ApiStatus.Internal
public PlayerHandshakeEvent(final String originalHandshake, final boolean cancelled) {
this(originalHandshake, "127.0.0.1", cancelled);
}
@ApiStatus.Internal
public PlayerHandshakeEvent(final String originalHandshake, final String originalSocketAddressHostname, final boolean cancelled) {
super(true);
this.originalHandshake = originalHandshake;
this.originalSocketAddressHostname = originalSocketAddressHostname;
this.cancelled = cancelled;
}
public interface PlayerHandshakeEvent extends Event, Cancellable {
/**
* Gets the original handshake string.
*
* @return the original handshake string
*/
public String getOriginalHandshake() {
return this.originalHandshake;
}
String getOriginalHandshake();
/**
* Gets the original socket address hostname.
@@ -67,9 +32,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @return the original socket address hostname
*/
public String getOriginalSocketAddressHostname() {
return this.originalSocketAddressHostname;
}
String getOriginalSocketAddressHostname();
/**
* Gets the server hostname string.
@@ -78,9 +41,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @return the server hostname string
*/
public @Nullable String getServerHostname() {
return this.serverHostname;
}
@Nullable String getServerHostname();
/**
* Sets the server hostname string.
@@ -89,9 +50,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @param serverHostname the server hostname string
*/
public void setServerHostname(final String serverHostname) {
this.serverHostname = serverHostname;
}
void setServerHostname(String serverHostname);
/**
* Gets the socket address hostname string.
@@ -100,9 +59,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @return the socket address hostname string
*/
public @Nullable String getSocketAddressHostname() {
return this.socketAddressHostname;
}
@Nullable String getSocketAddressHostname();
/**
* Sets the socket address hostname string.
@@ -111,27 +68,21 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @param socketAddressHostname the socket address hostname string
*/
public void setSocketAddressHostname(final String socketAddressHostname) {
this.socketAddressHostname = socketAddressHostname;
}
void setSocketAddressHostname(String socketAddressHostname);
/**
* Gets the unique id.
*
* @return the unique id
*/
public @Nullable UUID getUniqueId() {
return this.uniqueId;
}
@Nullable UUID getUniqueId();
/**
* Sets the unique id.
*
* @param uniqueId the unique id
*/
public void setUniqueId(final UUID uniqueId) {
this.uniqueId = uniqueId;
}
void setUniqueId(UUID uniqueId);
/**
* Gets the profile properties.
@@ -140,9 +91,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @return the profile properties, as JSON
*/
public @Nullable String getPropertiesJson() {
return this.propertiesJson;
}
@Nullable String getPropertiesJson();
/**
* Determines if authentication failed.
@@ -152,9 +101,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @return {@code true} if authentication failed, {@code false} otherwise
*/
public boolean isFailed() {
return this.failed;
}
boolean isFailed();
/**
* Sets if authentication failed and the client should be disconnected.
@@ -164,9 +111,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @param failed {@code true} if authentication failed, {@code false} otherwise
*/
public void setFailed(final boolean failed) {
this.failed = failed;
}
void setFailed(boolean failed);
/**
* Sets the profile properties.
@@ -175,27 +120,21 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
*
* @param propertiesJson the profile properties, as JSON
*/
public void setPropertiesJson(final String propertiesJson) {
this.propertiesJson = propertiesJson;
}
void setPropertiesJson(String propertiesJson);
/**
* Gets the message to display to the client when authentication fails.
*
* @return the message to display to the client
*/
public Component failMessage() {
return this.failMessage;
}
Component failMessage();
/**
* Sets the message to display to the client when authentication fails.
*
* @param failMessage the message to display to the client
*/
public void failMessage(final Component failMessage) {
this.failMessage = failMessage;
}
void failMessage(Component failMessage);
/**
* Gets the message to display to the client when authentication fails.
@@ -204,9 +143,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
* @deprecated use {@link #failMessage()}
*/
@Deprecated
public String getFailMessage() {
return LegacyComponentSerializer.legacySection().serialize(this.failMessage());
}
String getFailMessage();
/**
* Sets the message to display to the client when authentication fails.
@@ -215,10 +152,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
* @deprecated use {@link #failMessage(Component)}
*/
@Deprecated
public void setFailMessage(final String failMessage) {
Preconditions.checkArgument(failMessage != null && !failMessage.isEmpty(), "fail message cannot be null or empty");
this.failMessage(LegacyComponentSerializer.legacySection().deserialize(failMessage));
}
void setFailMessage(String failMessage);
/**
* {@inheritDoc}
@@ -227,9 +161,7 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
* be processed.
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
boolean isCancelled();
/**
* {@inheritDoc}
@@ -238,16 +170,12 @@ public class PlayerHandshakeEvent extends Event implements Cancellable {
* be processed.
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,14 +1,10 @@
package com.destroystokyo.paper.event.player;
import com.google.common.base.Preconditions;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when the server detects the player is jumping.
@@ -17,66 +13,21 @@ import org.jspecify.annotations.NullMarked;
* when checking for jumps via {@link PlayerMoveEvent}, this event is fired whenever
* the server detects that the player is jumping.
*/
@NullMarked
public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Location to;
private Location from;
private boolean cancelled;
@ApiStatus.Internal
public PlayerJumpEvent(final Player player, final Location from, final Location to) {
super(player);
this.from = from;
this.to = to;
}
/**
* {@inheritDoc}
* <p>
* 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
*/
@Override
public boolean isCancelled() {
return this.cancelled;
}
/**
* {@inheritDoc}
* <p>
* 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
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
public interface PlayerJumpEvent extends PlayerEvent, Cancellable {
/**
* Gets the location this player jumped from
*
* @return Location the player jumped from
*/
public Location getFrom() {
return this.from;
}
Location getFrom();
/**
* Sets the location to mark as where the player jumped from
*
* @param from New location to mark as the players previous location
*/
public void setFrom(final Location from) {
Preconditions.checkArgument(from != null, "Cannot use null from location!");
Preconditions.checkArgument(from.getWorld() != null, "Cannot use from location with null world!");
this.from = from.clone();
}
void setFrom(Location from);
/**
* Gets the location this player jumped to
@@ -86,16 +37,32 @@ public class PlayerJumpEvent extends PlayerEvent implements Cancellable {
*
* @return Location the player jumped to
*/
public Location getTo() {
return this.to.clone();
}
Location getTo();
/**
* {@inheritDoc}
* <p>
* 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
*/
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
boolean isCancelled();
public static HandlerList getHandlerList() {
return HANDLER_LIST;
/**
* {@inheritDoc}
* <p>
* 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
*/
@Override
void setCancelled(boolean cancel);
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -1,14 +1,11 @@
package com.destroystokyo.paper.event.player;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.entity.EntityShootBowEvent;
import org.bukkit.event.player.PlayerEvent;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Called when a player shoots a projectile.
@@ -17,76 +14,40 @@ import org.jspecify.annotations.NullMarked;
* of a bow or crossbow. A plugin may listen to {@link EntityShootBowEvent}
* for these actions instead.
*/
@NullMarked
public class PlayerLaunchProjectileEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Projectile projectile;
private final ItemStack itemStack;
private boolean consumeItem = true;
private boolean cancelled;
@ApiStatus.Internal
public PlayerLaunchProjectileEvent(final Player shooter, final ItemStack itemStack, final Projectile projectile) {
super(shooter);
this.itemStack = itemStack;
this.projectile = projectile;
}
public interface PlayerLaunchProjectileEvent extends PlayerEvent, Cancellable {
/**
* Gets the projectile which will be launched by this event
*
* @return the launched projectile
*/
public Projectile getProjectile() {
return this.projectile;
}
Projectile getProjectile();
/**
* Get the ItemStack used to fire the projectile
*
* @return The ItemStack used
*/
public ItemStack getItemStack() {
return this.itemStack;
}
ItemStack getItemStack();
/**
* Get whether to consume the ItemStack or not
*
* @return {@code true} to consume
*/
public boolean shouldConsume() {
return this.consumeItem;
}
boolean shouldConsume();
/**
* Set whether to consume the ItemStack or not
*
* @param consumeItem {@code true} to consume
*/
public void setShouldConsume(final boolean consumeItem) {
this.consumeItem = consumeItem;
}
void setShouldConsume(boolean consumeItem);
@Override
public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
@@ -24,41 +24,19 @@
package com.destroystokyo.paper.event.player;
import org.bukkit.entity.ExperienceOrb;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
import org.jetbrains.annotations.ApiStatus;
import org.jspecify.annotations.NullMarked;
/**
* Fired when a player is attempting to pick up an experience orb
*/
@NullMarked
public class PlayerPickupExperienceEvent extends PlayerEvent implements Cancellable {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final ExperienceOrb experienceOrb;
private boolean cancelled;
@ApiStatus.Internal
public PlayerPickupExperienceEvent(final Player player, final ExperienceOrb experienceOrb) {
super(player);
this.experienceOrb = experienceOrb;
}
public interface PlayerPickupExperienceEvent extends PlayerEvent, Cancellable {
/**
* @return Returns the Orb that the player is picking up
* @return the experience orb that the player is picking up
*/
public ExperienceOrb getExperienceOrb() {
return this.experienceOrb;
}
@Override
public boolean isCancelled() {
return this.cancelled;
}
ExperienceOrb getExperienceOrb();
/**
* {@inheritDoc}
@@ -66,16 +44,12 @@ public class PlayerPickupExperienceEvent extends PlayerEvent implements Cancella
* If {@code true}, cancels picking up the experience orb, leaving it in the world
*/
@Override
public void setCancelled(final boolean cancel) {
this.cancelled = cancel;
}
void setCancelled(boolean cancel);
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
static HandlerList getHandlerList() {
final class Holder {
private static final HandlerList HANDLER_LIST = new HandlerList();
}
return Holder.HANDLER_LIST;
}
}
Loaded 100 of 2120 files, more files were not shown because too many files have changed in this diff. Show more