mirror of
https://github.com/PaperMC/Paper.git
synced 2025-07-26 01:32:02 -07:00
.github
build-data
gradle
licenses
paper-api-generator
patches
api
API-for-an-entity-s-scoreboard-name.patch
API-for-checking-sent-chunks.patch
API-for-creating-command-sender-which-forwards-feedb.patch
API-for-updating-recipes-on-clients.patch
API-to-get-a-BlockState-without-a-snapshot.patch
Ability-to-apply-mending-to-XP-API.patch
Ability-to-get-Tile-Entities-from-a-chunk-without-sn.patch
Add-API-for-item-entity-health.patch
Add-API-for-quit-reason.patch
Add-API-for-resetting-a-single-score.patch
Add-API-methods-to-control-if-armour-stands-can-move.patch
Add-API-to-get-Material-from-Boats-and-Minecarts.patch
Add-API-to-get-exact-interaction-point-in-PlayerInte.patch
Add-API-to-get-the-collision-shape-of-a-block-before.patch
Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch
Add-Adventure-message-to-PlayerAdvancementDoneEvent.patch
Add-ArmorStand-Item-Meta.patch
Add-Ban-Methods-to-Player-Objects.patch
Add-BaseComponent-sendMessage-methods-to-CommandSend.patch
Add-BeaconEffectEvent.patch
Add-BellRevealRaiderEvent.patch
Add-BellRingEvent.patch
Add-Block-isValidTool.patch
Add-BlockBreakBlockEvent.patch
Add-BlockBreakProgressUpdateEvent.patch
Add-BlockFailedDispenseEvent.patch
Add-BlockLockCheckEvent.patch
Add-BlockPreDispenseEvent.patch
Add-BlockSoundGroup-interface.patch
Add-BlockStateMeta-clearBlockState.patch
Add-CartographyItemEvent.patch
Add-CompostItemEvent-and-EntityCompostItemEvent.patch
Add-Destroy-Speed-API.patch
Add-ElderGuardianAppearanceEvent.patch
Add-Entity-Body-Yaw-API.patch
Add-EntityBlockStorage-clearEntities.patch
Add-EntityDyeEvent-and-CollarColorable-interface.patch
Add-EntityFertilizeEggEvent.patch
Add-EntityInsideBlockEvent.patch
Add-EntityLoadCrossbowEvent.patch
Add-EntityPortalReadyEvent.patch
Add-EntityTeleportEndGatewayEvent.patch
Add-EntityZapEvent.patch
Add-EquipmentSlot-convenience-methods.patch
Add-FastUtil-to-Bukkit.patch
Add-FeatureFlag-API.patch
Add-FluidState-API.patch
Add-GS4-Query-event.patch
Add-GameEvent-tags.patch
Add-GameMode-isInvulnerable.patch
Add-Heightmap-API.patch
Add-HiddenPotionEffect-API.patch
Add-ItemStack-Recipe-API-helper-methods.patch
Add-Lifecycle-Event-system.patch
Add-Listing-API-for-Player.patch
Add-LivingEntity-clearActiveItem.patch
Add-LivingEntity-getTargetEntity.patch
Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch
Add-Material-Tags.patch
Add-MetadataStoreBase.removeAll-Plugin.patch
Add-Mob-Experience-reward-API.patch
Add-Mob-Goal-API.patch
Add-Mob-lookAt-API.patch
Add-More-Creeper-API.patch
Add-Moving-Piston-API.patch
Add-NamespacedKey-biome-methods.patch
Add-OBSTRUCTED-reason-to-BedEnterResult.patch
Add-OfflinePlayer-isConnected.patch
Add-PhantomPreSpawnEvent.patch
Add-Player-Client-Options-API.patch
Add-Player-Warden-Warning-API.patch
Add-Player-getFishHook.patch
Add-PlayerAdvancementCriterionGrantEvent.patch
Add-PlayerArmorChangeEvent.patch
Add-PlayerAttackEntityCooldownResetEvent.patch
Add-PlayerConnectionCloseEvent.patch
Add-PlayerFailMoveEvent.patch
Add-PlayerFlowerPotManipulateEvent.patch
Add-PlayerInsertLecternBookEvent.patch
Add-PlayerInventorySlotChangeEvent.patch
Add-PlayerItemCooldownEvent.patch
Add-PlayerItemFrameChangeEvent.patch
Add-PlayerJumpEvent.patch
Add-PlayerKickEvent-causes.patch
Add-PlayerPickItemEvent.patch
Add-PlayerPostRespawnEvent.patch
Add-PlayerSetSpawnEvent.patch
Add-PlayerShearBlockEvent.patch
Add-PlayerShieldDisableEvent.patch
Add-PlayerSignCommandPreprocessEvent.patch
Add-PlayerStopUsingItemEvent.patch
Add-PlayerUseUnknownEntityEvent.patch
Add-Position.patch
Add-PrePlayerAttackEntityEvent.patch
Add-PrepareResultEvent-PrepareGrindstoneEvent.patch
Add-ProjectileCollideEvent.patch
Add-PufferFishStateChangeEvent.patch
Add-Raw-Byte-Entity-Serialization.patch
Add-Raw-Byte-ItemStack-Serialization.patch
Add-RegistryAccess-for-managing-registries.patch
Add-Shearable-API.patch
Add-ShulkerDuplicateEvent.patch
Add-Sneaking-API-for-Entities.patch
Add-String-based-Action-Bar-API.patch
Add-Structure-check-API.patch
Add-StructuresLocateEvent.patch
Add-TNTPrimeEvent.patch
Add-TameableDeathMessageEvent.patch
Add-TargetHitEvent-API.patch
Add-ThrownEggHatchEvent.patch
Add-Tick-TemporalUnit.patch
Add-UnknownCommandEvent.patch
Add-WardenAngerChangeEvent.patch
Add-WaterBottleSplashEvent.patch
Add-WhitelistToggleEvent.patch
Add-World.getEntity-UUID-API.patch
Add-a-call-helper-to-Event.patch
Add-a-should-burn-in-sunlight-API-for-Phantoms-and-S.patch
Add-additional-open-container-api-to-HumanEntity.patch
Add-an-API-for-CanPlaceOn-and-CanDestroy-NBT-values.patch
Add-and-implement-PlayerRecipeBookClickEvent.patch
Add-api-for-spawn-egg-texture-colors.patch
Add-basic-Datapack-API.patch
Add-cause-to-Weather-ThunderChangeEvents.patch
Add-command-line-option-to-load-extra-plugin-jars-no.patch
Add-command-to-reload-permissions.yml-and-require-co.patch
Add-configuration-option-to-prevent-player-names-fro.patch
Add-critical-damage-API.patch
Add-dropLeash-variable-to-EntityUnleashEvent.patch
Add-drops-to-shear-events.patch
Add-enchantWithLevels-API.patch
Add-enchantWithLevels-with-enchantment-registry-set.patch
Add-enchantment-seed-update-API.patch
Add-entity-knockback-API.patch
Add-entity-knockback-events.patch
Add-entity-liquid-API.patch
Add-even-more-Enchantment-API.patch
Add-event-for-player-editing-sign.patch
Add-exception-reporting-event.patch
Add-experience-points-API.patch
Add-extended-PaperServerListPingEvent.patch
Add-getChunkSnapshot-includeLightData-parameter.patch
Add-getComputedBiome-API.patch
Add-getDrops-to-BlockState.patch
Add-getI18NDisplayName-API.patch
Add-getMainThreadExecutor-to-BukkitScheduler.patch
Add-getNearbyXXX-methods-to-Location.patch
Add-getOfflinePlayerIfCached-String.patch
Add-getTPS-method.patch
Add-hand-to-fish-event-for-all-player-interactions.patch
Add-handshake-event-to-allow-plugins-to-handle-clien.patch
Add-hasCollision-methods-to-various-places.patch
Add-helpers-for-left-right-click-to-Action.patch
Add-hook-to-remap-library-jars.patch
Add-ignore-discounts-API.patch
Add-item-slot-convenience-methods.patch
Add-legacy-ping-support-to-PaperServerListPingEvent.patch
Add-method-isTickingWorlds-to-Bukkit.patch
Add-method-to-remove-all-active-potion-effects.patch
Add-methods-for-working-with-arrows-stuck-in-living-.patch
Add-methods-to-find-targets-for-lightning-strikes.patch
Add-methods-to-get-translation-keys.patch
Add-missing-Fluid-type.patch
Add-missing-InventoryType.patch
Add-missing-block-data-API.patch
Add-missing-effects.patch
Add-missing-fishing-event-state.patch
Add-missing-team-sidebar-display-slots.patch
Add-missing-wind-charge-damage-type.patch
Add-moon-phase-API.patch
Add-more-Campfire-API.patch
Add-more-Evoker-API.patch
Add-more-LimitedRegion-API.patch
Add-more-WanderingTrader-API.patch
Add-more-Witch-API.patch
Add-more-Zombie-API.patch
Add-more-advancement-API.patch
Add-more-fields-to-AsyncPreLoginEvent.patch
Add-more-line-of-sight-methods.patch
Add-more-scoreboard-API.patch
Add-openSign-method-to-HumanEntity.patch
Add-paper-dumplisteners-command.patch
Add-playPickupItemAnimation-to-LivingEntity.patch
Add-player-idle-duration-API.patch
Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch
Add-predicate-for-blocks-when-raytracing.patch
Add-ray-tracing-methods-to-LivingEntity.patch
Add-recipe-to-cook-events.patch
Add-recipeBrewTime.patch
Add-sendOpLevel-API.patch
Add-sender-name-to-commands.yml-replacement.patch
Add-setPlayerProfile-API-for-Skulls.patch
Add-source-block-constructor-and-getChangedBlockData.patch
Add-source-to-PlayerExpChangeEvent.patch
Add-spectator-target-events.patch
Add-sun-related-API.patch
Add-tick-times-API.patch
Add-titleOverride-to-InventoryOpenEvent.patch
Add-view-distance-API.patch
Add-villager-reputation-API.patch
Add-whitelist-events.patch
Add-workaround-for-plugins-modifying-the-parent-of-t.patch
Add-worldborder-events.patch
Added-API-to-get-player-ha-proxy-address.patch
Added-EntityDamageItemEvent.patch
Added-EntityToggleSitEvent.patch
Added-PlayerBedFailEnterEvent.patch
Added-PlayerChangeBeaconEffectEvent.patch
Added-PlayerDeepSleepEvent.patch
Added-PlayerLecternPageChangeEvent.patch
Added-PlayerLoomPatternSelectEvent.patch
Added-PlayerStonecutterRecipeSelectEvent.patch
Added-PlayerTradeEvent.patch
Added-ServerResourcesReloadedEvent.patch
Added-WorldGameRuleChangeEvent.patch
Added-byte-array-serialization-deserialization-for-P.patch
Additional-Block-Material-API-s.patch
Additional-world.getNearbyEntities-API-s.patch
Adds-PlayerArmSwingEvent.patch
Adventure.patch
Allow-Blocks-to-be-accessed-via-a-long-key.patch
Allow-Bukkit-plugin-to-use-Paper-PluginLoader-API.patch
Allow-Reloading-of-Command-Aliases.patch
Allow-adding-items-to-BlockDropItemEvent.patch
Allow-disabling-armour-stand-ticking.patch
Allow-modifying-library-loader-jars-bytecode.patch
Allow-plugins-to-use-SLF4J-for-logging.patch
Allow-proper-checking-of-empty-item-stacks.patch
Allow-setting-the-vex-s-summoner.patch
Allow-to-change-the-podium-of-the-EnderDragon.patch
Allow-trident-custom-damage.patch
Also-load-resources-from-LibraryLoader.patch
Amend-PlayerInteractAtEntityEvent-javadoc-for-ArmorS.patch
AnvilDamageEvent.patch
Arrow-pickup-rule-API.patch
Async-Chunks-API.patch
AsyncTabCompleteEvent.patch
Attribute-Modifier-API-improvements.patch
Basic-PlayerProfile-API.patch
Beacon-API-custom-effect-ranges.patch
Block-Ticking-API.patch
BlockDestroyEvent.patch
Brand-support.patch
Brigadier-based-command-API.patch
Bucketable-API.patch
Build-system-changes.patch
Change-EnderEye-target-without-changing-other-things.patch
Change-the-reserved-channel-check-to-be-sensible.patch
Clone-mutables-to-prevent-unexpected-issues.patch
Code-Generation.patch
Collision-API.patch
Complete-resource-pack-API.patch
Configurable-sculk-sensor-listener-range.patch
Convert-project-to-Gradle.patch
Create-HoverEvent-from-ItemStack-Entity.patch
Custom-Chat-Completion-Suggestions-API.patch
Custom-Potion-Mixes.patch
Custom-replacement-for-eaten-items.patch
Deprecate-InvAction-HOTBAR_MOVE_AND_READD.patch
Deprecate-ItemStack-setType.patch
Deprecate-and-replace-methods-with-old-StructureType.patch
Deprecate-for-removal-all-OldEnum-related-methods.patch
Display-warning-on-deprecated-recipe-API.patch
Dolphin-API.patch
Don-t-use-snapshots-for-Timings-Tile-Entity-reports.patch
Elder-Guardian-appearance-API.patch
EnderDragon-Events.patch
Enderman.teleportRandomly.patch
EndermanAttackPlayerEvent.patch
EndermanEscapeEvent.patch
Entity-AddTo-RemoveFrom-World-Events.patch
Entity-Jump-API.patch
Entity-Origin-API.patch
Entity-fromMobSpawner.patch
Entity-getChunk-API.patch
Entity-isTicking.patch
Entity-powdered-snow-API.patch
EntityMoveEvent.patch
EntityPathfindEvent.patch
EntityRegainHealthEvent-isFastRegen-API.patch
EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
Expand-ArmorStand-API.patch
Expand-Explosions-API.patch
Expand-FallingBlock-API.patch
Expand-LingeringPotion-API.patch
Expand-Location-Manipulation-API.patch
Expand-PlayerItemMendEvent.patch
Expand-Pose-API.patch
Expand-World.spawnParticle-API-and-add-Builder.patch
Expand-world-key-API.patch
Expanded-Hopper-API.patch
ExperienceOrb-merging-stacking-API.patch
ExperienceOrbs-API-for-Reason-Source-Triggering-play.patch
Experimental-annotations-change.patch
Expose-LivingEntity-hurt-direction.patch
Expose-LootTable-of-DecoratedPot.patch
Expose-MinecraftServer-isRunning.patch
Expose-Tracked-Players.patch
Expose-attack-cooldown-methods-for-Player.patch
Expose-clicked-BlockFace-during-BlockDamageEvent.patch
Expose-client-protocol-version-and-virtual-host.patch
Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch
Expose-furnace-minecart-push-values.patch
Expose-hand-during-BlockCanBuildEvent.patch
Expose-hasColor-to-leather-armor.patch
Expose-isFuel-and-canSmelt-methods-to-FurnaceInvento.patch
Expose-protocol-version.patch
Expose-server-CommandMap.patch
Expose-server-build-information.patch
Expose-the-Entity-Counter-to-allow-plugins-to-use-va.patch
Expose-the-internal-current-tick.patch
Expose-vanilla-BiomeProvider-from-WorldInfo.patch
Extend-VehicleCollisionEvent-move-HandlerList-up.patch
Fill-Profile-Property-Events.patch
Fireworks-API-s.patch
Fix-BanList-API.patch
Fix-DamageSource-API.patch
Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch
Fix-HelpCommand-searching.patch
Fix-ItemFlags.patch
Fix-NPE-on-Boat-getStatus.patch
Fix-NotePlayEvent.patch
Fix-PickupStatus-getting-reset.patch
Fix-PlayerSwapHandItemsEvent-throwing-exception-when.patch
Fix-ServerListPingEvent-flagging-as-Async.patch
Fix-SpawnEggMeta-get-setSpawnedType.patch
Fix-SpawnerEntry-Equipment-API.patch
Fix-Spigot-annotation-mistakes.patch
Fix-custom-statistic-criteria-creation.patch
Fix-equipment-slot-and-group-API.patch
Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch
Fix-issues-with-mob-conversion.patch
Fix-issues-with-recipe-API.patch
Fix-upstream-javadocs.patch
Fixes-and-additions-to-the-spawn-reason-API.patch
Flying-Fall-Damage-API.patch
Folia-scheduler-and-owned-region-API.patch
Freeze-Tick-Lock-API.patch
Friction-API.patch
Furnace-RecipesUsed-API.patch
General-ItemMeta-fixes.patch
Get-entity-default-attributes.patch
Goat-ram-API.patch
Graduate-bungeecord-chat-API-from-spigot-subclasses.patch
Handle-plugin-prefixes-in-implementation-logging-con.patch
IllegalPacketEvent.patch
Implement-furnace-cook-speed-multiplier-API.patch
Implement-regenerateChunk.patch
Improve-Block-breakNaturally-API.patch
Improve-Item-Rarity-API.patch
Improve-PortalEvents.patch
Improve-Registry.patch
Improve-StandardMessenger-exception-messages.patch
Improve-death-events.patch
Improve-entity-effect-API.patch
Improve-item-default-attribute-API.patch
Improve-scoreboard-entries.patch
Improve-the-Saddle-API-for-Horses.patch
Introduce-beacon-activation-deactivation-events.patch
Introduce-registry-entry-and-builders.patch
Inventory-close.patch
Inventory-getHolder-method-without-block-snapshot.patch
Inventory-removeItemAnySlot.patch
InventoryCloseEvent-Reason-API.patch
Item-Mutation-Fixes.patch
Item-canEntityPickup.patch
Item-no-age-no-player-pickup.patch
Item-serialization-as-json.patch
ItemStack-API-additions-for-quantity-flags-lore.patch
ItemStack-Tooltip-API.patch
ItemStack-damage-API.patch
ItemStack-editMeta.patch
ItemStack-getMaxItemUseDuration.patch
ItemStack-repair-check-API.patch
Leashable-API.patch
Left-handed-API.patch
Limit-setBurnTime-to-valid-short-values.patch
LivingEntity-Active-Item-API.patch
LivingEntity-setKiller.patch
Location.isChunkLoaded-API.patch
Location.toBlockLocation-toCenterLocation.patch
LootTable-API.patch
Make-EntityUnleashEvent-cancellable.patch
Make-a-PDC-view-accessible-directly-from-ItemStack.patch
Make-shield-blocking-delay-configurable.patch
Make-the-default-permission-message-configurable.patch
Material-API-additions.patch
MerchantRecipe-add-copy-constructor.patch
Misc-Utils.patch
Missing-Entity-API.patch
Mob-Pathfinding-API.patch
Mob-Spawner-API-Enhancements.patch
More-Chest-Block-API.patch
More-CommandBlock-API.patch
More-DragonBattle-API.patch
More-Enchantment-API.patch
More-Lidded-Block-API.patch
More-PotionEffectType-API.patch
More-Projectile-API.patch
More-Raid-API.patch
More-Sign-Block-API.patch
More-Teleport-API.patch
More-World-API.patch
More-lightning-API.patch
More-vanilla-friendly-methods-to-update-trades.patch
Multi-Block-Change-API.patch
Multiple-Entries-with-Scoreboards.patch
Nameable-Banner-API.patch
Optimize-Hoppers.patch
Option-to-prevent-data-components-copy-in-smithing-r.patch
Paper-Plugins.patch
Paper-Utils.patch
Performance-Concurrency-Improvements-to-Permissions.patch
Player-Chunk-Load-Unload-Events.patch
Player-Entity-Tracking-Events.patch
Player-Tab-List-and-Title-APIs.patch
Player-affects-spawning-API.patch
Player-elytra-boost-API.patch
Player.setPlayerProfile-API.patch
PlayerAttemptPickupItemEvent.patch
PlayerDeathEvent-getItemsToKeep.patch
PlayerDeathEvent-shouldDropExperience.patch
PlayerElytraBoostEvent.patch
PlayerLaunchProjectileEvent.patch
PlayerMoveEvent-Improvements.patch
PlayerNaturallySpawnCreaturesEvent.patch
PlayerPickupExperienceEvent.patch
PlayerPickupItemEvent-setFlyAtPlayer.patch
PlayerReadyArrowEvent.patch
PlayerTeleportEndGatewayEvent.patch
Potential-bed-API.patch
PotionEffect-clone-methods.patch
PreCreatureSpawnEvent.patch
PreSpawnerSpawnEvent.patch
Profile-Lookup-Events.patch
ProfileWhitelistVerifyEvent.patch
Provide-Chunk-Coordinates-as-a-Long-API.patch
Provide-E-TE-Chunk-count-stat-methods.patch
Proxy-ItemStack-to-CraftItemStack.patch
RangedEntity-API.patch
Reduce-thread-synchronization-in-MetadataStoreBase.patch
Registry-Modification-API.patch
Remove-unnecessary-durability-check-in-ItemStack-isS.patch
Replace-ItemFlag.HIDE_POTION_EFFECTS.patch
Return-null-for-empty-String-in-NamespacedKey.fromSt.patch
Rewrite-LogEvents-to-contain-the-source-jars-in-stac.patch
SculkCatalyst-bloom-API.patch
Server-Tick-Events.patch
Set-true-custom-payload-channel-size-limit.patch
Shoulder-Entities-Release-API.patch
SkeletonHorse-Additions.patch
Slime-Pathfinder-Events.patch
Spawn-Reason-API.patch
Stinger-API.patch
Support-cancellation-supression-of-EntityDismount-Ve.patch
Support-components-in-ItemMeta.patch
Suspicious-Effect-Entry-API.patch
System-prop-for-default-config-comment-parsing.patch
Tag-Lifecycle-Events.patch
Tameable-getOwnerUniqueId-API.patch
Test-changes.patch
Timings-v2.patch
Turtle-API.patch
Use-ASM-for-event-executors.patch
Villager-Restocks-API.patch
Villager-resetOffers.patch
Void-damage-configuration-API.patch
Warn-on-strange-EventHandler-return-types.patch
Win-Screen-API.patch
WitchConsumePotionEvent.patch
WitchReadyPotionEvent.patch
WitchThrowPotionEvent.patch
WorldCreator-keepSpawnLoaded.patch
Zombie-API-breaking-doors.patch
add-DragonEggFormEvent.patch
add-Plugin-getDataPath.patch
add-RespawnFlags-to-PlayerRespawnEvent.patch
add-back-EntityPortalExitEvent.patch
add-consumeFuel-to-FurnaceBurnEvent.patch
add-get-set-drop-chance-to-EntityEquipment.patch
add-hand-to-BlockMultiPlaceEvent.patch
add-isDeeplySleeping-to-HumanEntity.patch
add-number-format-api.patch
added-2-new-TargetReasons-for-1.16-mob-behavior.patch
added-PlayerNameEntityEvent.patch
additions-to-PlayerGameModeChangeEvent.patch
create-TileStateInventoryHolder.patch
ensureServerConversions-API.patch
fix-Instruments.patch
fix-empty-array-elements-in-command-arguments.patch
getPlayerUniqueId-API.patch
improve-BanList-types.patch
isChunkGenerated-API.patch
living-entity-allow-attribute-registration.patch
server
unapplied
scripts
test-plugin
work
.editorconfig
.gitattributes
.gitignore
.gitmodules
CONTRIBUTING.md
LICENSE.md
README.md
SECURITY.md
build.gradle.kts
gradle.properties
gradlew
gradlew.bat
settings.gradle.kts
106 lines
3.6 KiB
Diff
106 lines
3.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: RodneyMKay <36546810+RodneyMKay@users.noreply.github.com>
|
|
Date: Wed, 8 Sep 2021 22:15:43 +0200
|
|
Subject: [PATCH] Add PlayerPickItemEvent
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/event/player/PlayerPickItemEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerPickItemEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/player/PlayerPickItemEvent.java
|
|
@@ -0,0 +0,0 @@
|
|
+package io.papermc.paper.event.player;
|
|
+
|
|
+import com.google.common.base.Preconditions;
|
|
+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.jetbrains.annotations.Range;
|
|
+import org.jspecify.annotations.NullMarked;
|
|
+
|
|
+/**
|
|
+ * Event that is fired when a player uses the pick item functionality (middle-clicking a block to get the appropriate
|
|
+ * item). However, note that this event will only trigger if an item has to be moved from the inventory to the hotbar.
|
|
+ * After the handling of this event, the contents of the source and the target slot will be swapped and the currently
|
|
+ * selected hotbar slot of the player will be set to the target slot.
|
|
+ * <p>
|
|
+ * Note: This event will not be fired for players in creative mode.
|
|
+ */
|
|
+@NullMarked
|
|
+public class PlayerPickItemEvent extends PlayerEvent implements Cancellable {
|
|
+
|
|
+ private static final HandlerList HANDLER_LIST = new HandlerList();
|
|
+
|
|
+ private int targetSlot;
|
|
+ private int sourceSlot;
|
|
+
|
|
+ private boolean cancelled;
|
|
+
|
|
+ @ApiStatus.Internal
|
|
+ public PlayerPickItemEvent(final Player player, final int targetSlot, final int sourceSlot) {
|
|
+ super(player);
|
|
+ this.targetSlot = targetSlot;
|
|
+ this.sourceSlot = sourceSlot;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns the slot the item that is being picked goes into.
|
|
+ *
|
|
+ * @return hotbar slot (0-8 inclusive)
|
|
+ */
|
|
+ public @Range(from = 0, to = 8) int getTargetSlot() {
|
|
+ return this.targetSlot;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Changes the slot the item that is being picked goes into.
|
|
+ *
|
|
+ * @param targetSlot hotbar slot (0-8 inclusive)
|
|
+ */
|
|
+ public void setTargetSlot(final @Range(from = 0, to = 8) int targetSlot) {
|
|
+ Preconditions.checkArgument(targetSlot >= 0 && targetSlot <= 8, "Target slot must be in range 0 - 8 (inclusive)");
|
|
+ this.targetSlot = targetSlot;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Returns the slot in which the item that will be put into the players hotbar is located.
|
|
+ *
|
|
+ * @return player inventory slot (0-35 inclusive)
|
|
+ */
|
|
+ public @Range(from = 0, to = 35) int getSourceSlot() {
|
|
+ return this.sourceSlot;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Change the source slot from which the item that will be put in the players hotbar will be taken.
|
|
+ *
|
|
+ * @param sourceSlot player inventory slot (0-35 inclusive)
|
|
+ */
|
|
+ public void setSourceSlot(final @Range(from = 0, to = 35) int sourceSlot) {
|
|
+ Preconditions.checkArgument(sourceSlot >= 0 && sourceSlot <= 35, "Source slot must be in range of the player's inventory slot");
|
|
+ this.sourceSlot = sourceSlot;
|
|
+ }
|
|
+
|
|
+ @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;
|
|
+ }
|
|
+}
|