# 接口的使用
org.bukkit.event.Cancellable

使用Cancellable的程序包
程序包
说明
org.bukkit.event.block
与`方块`被改变或与`世界`进行交互等情况相关的`事件`.
org.bukkit.event.enchantment
与`附魔台`操作相关的`事件`.
org.bukkit.event.entity
与`实体`相关的`事件`，不包括 一些直接引用的更具体的实体类型.
org.bukkit.event.hanging
与`悬挂实体`相关的`事件`.
org.bukkit.event.inventory
与`物品栏`操作相关的`事件`.
org.bukkit.event.player
与`玩家`相关的`事件`.
org.bukkit.event.raid
与袭击有关的`事件`(Minecraft Wiki - 袭击).
org.bukkit.event.server
与服务器程序状态变化有关的`事件`.
org.bukkit.event.vehicle
与`载具实体`相关的`事件`.
org.bukkit.event.weather
与天气状态变化相关的`事件`.
org.bukkit.event.world
与`世界`状态和变化有关的`事件`.

- ## org.bukkit.event.block中Cancellable的使用

  实现Cancellable的org.bukkit.event.block中的类
  修饰符和类型
  类
  说明
  `class`
  `BellRingEvent`
  Called when a bell is being rung.
  `class`
  `BlockBreakEvent`
  当一个方块被玩家破坏的时候，调用本事件.
  `class`
  `BlockBurnEvent`
  当一个方块被火烧掉的时候触发此事件.
  `class`
  `BlockCookEvent`
  当物品堆在方块内成功烹饪时触发本事件 (原版中这个方块一般是营火).
  `class`
  `BlockDamageEvent`
  方块被玩家损坏的事件.
  `class`
  `BlockDispenseArmorEvent`
  当一个可装备物品从某个方块发射出来并装备到附近的实体上时触发本事件.
  `class`
  `BlockDispenseEvent`
  物品被方块(比如发射器,投掷器等)射出的事件.
  `class`
  `BlockDropItemEvent`
  当一个方块被玩家破坏且掉落物品时触发本事件.
  `class`
  `BlockExplodeEvent`
  方块爆炸事件.
  `class`
  `BlockFadeEvent`
  方块因为自然条件消退，融化，消失的事件.
  `class`
  `BlockFertilizeEvent`
  当玩家使用骨粉向某方块施肥后导致方块发生变化时触发本事件.
  `class`
  `BlockFormEvent`
  当一个方块因为自然变化被放置、更改或者蔓延时(比如下雪),触发此事件.
  `class`
  `BlockFromToEvent`
  液体流动/龙蛋自己传送的事件(源方块到目标方块).
  `class`
  `BlockGrowEvent`
  当一个方块在世界中自然生长的时触发此事件(如小麦生长).
  `class`
  `BlockIgniteEvent`
  当一个方块被点燃时触发.
  `class`
  `BlockMultiPlaceEvent`
  当玩家放一个方块, 而连锁放置了第二个方块时(例如玩家放置一个床)触发本事件.
  `class`
  `BlockPhysicsEvent`
  方块物理事件(例如是沙子掉落、流水).
  `class`
  `BlockPistonEvent`
  活塞相关事件
  `class`
  `BlockPistonExtendEvent`
  活塞臂推出事件.
  `class`
  `BlockPistonRetractEvent`
  活塞臂缩回事件
  `class`
  `BlockPlaceEvent`
  当一个方块被玩家放置的时候触发此事件.
  `class`
  `BlockReceiveGameEvent`
  当Sculk Sensor接收到游戏事件并因此可能激活时调用.
  `class`
  `BlockShearEntityEvent`
  当发射器剪掉附近的羊的羊毛时触发本事件 (发射器内含剪刀时有机会触发本事件).
  `class`
  `BlockSpreadEvent`
  当一个方块基于自然法则地蔓延时触发此事件(比如菌丝的蔓延).
  `class`
  `CauldronLevelChangeEvent`
  炼药锅水位发生变化时触发本事件.
  `class`
  `EntityBlockFormEvent`
  实体形成方块时触发此事件
  `class`
  `FluidLevelChangeEvent`
  当液体方块的液面高度因相邻方块而发生变化时触发本事件.
  `class`
  `LeavesDecayEvent`
  当树叶消失时触发此事件.
  `class`
  `MoistureChangeEvent`
  当耕地的湿润等级发生变化时触发本事件.
  `class`
  `NotePlayEvent`
  音符盒播放音符的事件[玩家点击/红石触发]
  `class`
  `SculkBloomEvent`
  Represents an event triggered when a new cursor is created by a `SculkCatalyst`.
  `class`
  `SignChangeEvent`
  在玩家设置牌子上的内容子时触发.
  `class`
  `SpongeAbsorbEvent`
  当海绵吸水时触发本事件.
  `class`
  `TNTPrimeEvent`
  Called when a block of TNT in the world become primed.

- ## org.bukkit.event.enchantment中Cancellable的使用

  实现Cancellable的org.bukkit.event.enchantment中的类
  修饰符和类型
  类
  说明
  `class`
  `EnchantItemEvent`
  成功附魔物品的事件 (在附魔台里面附魔的)
  `class`
  `PrepareItemEnchantEvent`
  物品塞入附魔台的事件 - 可被多次调用。

- ## org.bukkit.event.entity中Cancellable的使用

  实现Cancellable的org.bukkit.event.entity中的类
  修饰符和类型
  类
  说明
  `class`
  `AreaEffectCloudApplyEvent`
  当滞留药水应用它的效果时触发本事件，期间每5 tick发生一次。
  `class`
  `ArrowBodyCountChangeEvent`
  当箭矢射进实体或从实体上拔出(脱落)时触发本事件.
  `class`
  `BatToggleSleepEvent`
  当一只蝙蝠将要睡觉或醒来时触发本事件.
  `class`
  `CreatureSpawnEvent`
  当一个生物体在世界中出生时触发该事件.
  `class`
  `CreeperPowerEvent`
  当爬行者被闪电击中时触发该事件.
  `class`
  `EnderDragonChangePhaseEvent`
  Called when an EnderDragon switches controller phase.
  `class`
  `EntityAirChangeEvent`
  当实体的氧气值发生变化时触发本事件
  `class`
  `EntityBreakDoorEvent`
  当`实体`破坏门时触发本事件.
  `class`
  `EntityBreedEvent`
  当一个实体与另一个实体交配繁殖时触发本事件.
  `class`
  `EntityChangeBlockEvent`
  Called when any Entity changes a block and a more specific event is not available.
  `class`
  `EntityCombustByBlockEvent`
  当方块造成实体燃烧时触发该事件.
  `class`
  `EntityCombustByEntityEvent`
  当一个实体造成另外一个实体燃烧时触发该事件.
  `class`
  `EntityCombustEvent`
  当实体燃烧时触发该事件
  `class`
  `EntityCreatePortalEvent`
  已过时。
  请使用 `PortalCreateEvent`
  `class`
  `EntityDamageByBlockEvent`
  当一个实体受到来自方块的伤害时触发该事件
  `class`
  `EntityDamageByEntityEvent`
  当一个实体受到另外一个实体伤害时触发该事件
  `class`
  `EntityDamageEvent`
  储存伤害事件的数据
  `class`
  `EntityDismountEvent`
  Called when an entity stops riding another entity.
  `class`
  `EntityDropItemEvent`
  Thrown when an entity creates an item drop.
  `class`
  `EntityEnterBlockEvent`
  当`实体`进入方块, 保存到那个方块时触发本事件.
  `class`
  `EntityEnterLoveModeEvent`
  当实体进入求爱模式时触发本事件.
  `class`
  `EntityExhaustionEvent`
  Called when a human entity experiences exhaustion.
  `class`
  `EntityExplodeEvent`
  当一个实体爆炸的时候触发本事件
  `class`
  `EntityInteractEvent`
  当一个实体与其他物体互交时触发本事件
  `class`
  `EntityKnockbackByEntityEvent`
  Called when an entity receives knockback from another entity.
  `class`
  `EntityKnockbackEvent`
  Called when a living entity receives knockback.
  `class`
  `EntityMountEvent`
  Called when an entity attempts to ride another entity.
  `class`
  `EntityPickupItemEvent`
  当实体捡起地面上的掉落物时触发本事件.
  `class`
  `EntityPlaceEvent`
  当一个实体因玩家在一个方块上"放置"一物品而创建时触发本事件.
  `class`
  `EntityPortalEvent`
  当一个非玩家的实体被传送门传送时触发本事件
  `class`
  `EntityPortalExitEvent`
  在实体退出传送门前触发本事件.
  `class`
  `EntityPotionEffectEvent`
  当实体上的药水效果发生改变时触发本事件.
  `class`
  `EntityRegainHealthEvent`
  当实体恢复生命值时触发本事件.
  `class`
  `EntityResurrectEvent`
  当实体死亡并且有机会复活时触发本事件.
  `class`
  `EntityShootBowEvent`
  Called when a LivingEntity shoots a bow firing an arrow
  `class`
  `EntitySpawnEvent`
  当实体生成于世界内时触发本事件.
  `class`
  `EntitySpellCastEvent`
  Called when a `Spellcaster` casts a spell.
  `class`
  `EntityTameEvent`
  当生物实体被驯服时触发本事件.
  `class`
  `EntityTargetEvent`
  Called when a creature targets or untargets another entity
  `class`
  `EntityTargetLivingEntityEvent`
  Called when an Entity targets a `LivingEntity` and can only target LivingEntity's.
  `class`
  `EntityTeleportEvent`
  当非玩家实体从一处传送到另一处时触发本事件.
  `class`
  `EntityToggleGlideEvent`
  Sent when an entity's gliding status is toggled with an Elytra.
  `class`
  `EntityToggleSwimEvent`
  当实体游泳状态改变时触发本事件.
  `class`
  `EntityTransformEvent`
  当实体将转化/蜕变为其它实体时触发本事件.
  `class`
  `ExpBottleEvent`
  Called when a ThrownExpBottle hits and releases experience.
  `class`
  `ExplosionPrimeEvent`
  Called when an entity has made a decision to explode.
  `class`
  `FireworkExplodeEvent`
  当烟花爆炸时触发本事件
  `class`
  `FoodLevelChangeEvent`
  当一个人类实体的饥饿值发生变化时触发本事件
  `class`
  `HorseJumpEvent`
  当马跳起时调用此事件.
  `class`
  `ItemDespawnEvent`
  当`掉落物`存在时间超过5分钟后被移除时触发本事件 (注:掉落物存在时间因服务器配置和安装的插件而异).
  `class`
  `ItemMergeEvent`
  `class`
  `ItemSpawnEvent`
  当掉落物生成于某个世界时触发本事件.
  `class`
  `LingeringPotionSplashEvent`
  Called when a splash potion hits an area
  `class`
  `PiglinBarterEvent`
  Stores all data related to the bartering interaction with a piglin.
  `class`
  `PigZapEvent`
  Stores data for pigs being zapped
  `class`
  `PigZombieAngerEvent`
  Called when a Pig Zombie is angered by another entity.
  `class`
  `PlayerLeashEntityEvent`
  Called immediately prior to a creature being leashed by a player.
  `class`
  `PotionSplashEvent`
  Called when a splash potion hits an area
  `class`
  `ProjectileHitEvent`
  Called when a projectile hits an object
  `class`
  `ProjectileLaunchEvent`
  当一个抛射物被发射时触发本事件.
  `class`
  `SheepDyeWoolEvent`
  当羊身上的毛被染色时触发本事件.
  `class`
  `SheepRegrowWoolEvent`
  当羊身上的羊毛重新长出时触发本事件.
  `class`
  `SlimeSplitEvent`
  当史莱姆死亡后分裂成小史莱姆时触发本事件
  `class`
  `SpawnerSpawnEvent`
  当刷怪笼刷出实体时触发本事件.
  `class`
  `StriderTemperatureChangeEvent`
  Called when a `Strider`'s temperature has changed as a result of entering or exiting blocks it considers warm.
  `class`
  `TrialSpawnerSpawnEvent`
  Called when an entity is spawned into a world by a trial spawner.
  `class`
  `VillagerAcquireTradeEvent`
  Called whenever a villager acquires a new trade.
  `class`
  `VillagerCareerChangeEvent`
  `class`
  `VillagerReplenishTradeEvent`
  Called when a `Villager` is about to restock one of its trades.

- ## org.bukkit.event.hanging中Cancellable的使用

  实现Cancellable的org.bukkit.event.hanging中的类
  修饰符和类型
  类
  说明
  `class`
  `HangingBreakByEntityEvent`
  当一个悬挂实体被一个实体移除时调用本事件
  `class`
  `HangingBreakEvent`
  当一个悬挂实体被移除时调用.
  `class`
  `HangingPlaceEvent`
  当一个悬挂实体被放置时触发本事件。

- ## org.bukkit.event.inventory中Cancellable的使用

  实现Cancellable的org.bukkit.event.inventory中的类
  修饰符和类型
  类
  说明
  `class`
  `BrewEvent`
  当酿造完成时触发这个事件.
  `class`
  `BrewingStandFuelEvent`
  Called when an ItemStack is about to increase the fuel level of a brewing stand.
  `class`
  `CraftItemEvent`
  当一个物品被合成的时候触发这个事件.
  `class`
  `FurnaceBurnEvent`
  当一个物品作为燃料被燃烧的时候触发这个事件.
  `class`
  `FurnaceSmeltEvent`
  当一个物品烧炼完毕时触发本事件.
  `class`
  `InventoryClickEvent`
  当玩家点击物品栏中的格子时触发事件事件.
  译注：事实上打开任意容器的物品栏(包括玩家的背包)后点击任何一个地方都会触发这个事件。
  `class`
  `InventoryCreativeEvent`
  This event is called when a player in creative mode puts down or picks up an item in their inventory / hotbar and when they drop items from their Inventory while in creative mode.
  `class`
  `InventoryDragEvent`
  This event is called when the player drags an item in their cursor across the inventory.
  `class`
  `InventoryInteractEvent`
  An abstract base class for events that describe an interaction between a HumanEntity and the contents of an Inventory.
  `class`
  `InventoryMoveItemEvent`
  Called when some entity or block (e.g. hopper) tries to move items directly from one inventory to another.
  `class`
  `InventoryOpenEvent`
  当玩家打开物品栏时触发本事件
  `class`
  `InventoryPickupItemEvent`
  当漏斗/漏斗矿车收起掉落的物品时触发本事件.
  `class`
  `SmithItemEvent`
  Called when the recipe of an Item is completed inside a smithing table.
  `class`
  `TradeSelectEvent`
  This event is called whenever a player clicks a new trade on the trades sidebar.

- ## org.bukkit.event.player中Cancellable的使用

  实现Cancellable的org.bukkit.event.player中的类
  修饰符和类型
  类
  说明
  `class`
  `AsyncPlayerChatEvent`
  当玩家聊天时触发这个事件.
  `class`
  `AsyncPlayerChatPreviewEvent`
  已过时。
  chat previews have been removed
  `class`
  `PlayerAnimationEvent`
  玩家动作事件.
  `class`
  `PlayerArmorStandManipulateEvent`
  当玩家与装甲架交互并且进行交换, 取回或放置物品时触发本事件.
  `class`
  `PlayerBedEnterEvent`
  玩家准备躺到床上时触发此事件.
  `class`
  `PlayerBedLeaveEvent`
  玩家离开床时触发此事件.
  `class`
  `PlayerBucketEmptyEvent`
  玩家用完一只桶后触发此事件.
  `class`
  `PlayerBucketEntityEvent`
  This event is called whenever a player captures an entity in a bucket.
  `class`
  `PlayerBucketEvent`
  当玩家使用桶时触发本事件.
  `class`
  `PlayerBucketFillEvent`
  水桶装满水事件.
  `class`
  `PlayerBucketFishEvent`
  已过时。
  Use the more generic `PlayerBucketEntityEvent`
  `class`
  `PlayerChatEvent`
  已过时。
  这个事件将被主线程触发，允许使用所有的 Bukkit API，不像`AsyncPlayerChatEvent`.
  `class`
  `PlayerCommandPreprocessEvent`
  这个事件是,当一个玩家执行一个命令的时候将会被触发(也就是在聊天框里面输入信息以/开头的时候，算作命令，就会触发此事件)。
  `class`
  `PlayerDropItemEvent`
  玩家丢出物品事件.
  `class`
  `PlayerEditBookEvent`
  当玩家编辑或签名书与笔时触发。
  `class`
  `PlayerFishEvent`
  当玩家钓鱼时触发本事件.
  `class`
  `PlayerGameModeChangeEvent`
  当玩家游戏模式发生变化时调用此事件.
  `class`
  `PlayerHarvestBlockEvent`
  当玩家收获方块时触发此事件。
  `class`
  `PlayerInteractAtEntityEvent`
  当玩家在实体上点击某实体上的某位置时触发此事件.
  `class`
  `PlayerInteractEntityEvent`
  当玩家点击一个实体时调用此事件.
  `class`
  `PlayerInteractEvent`
  当玩家对一个对象或空气进行交互时触发本事件.
  `class`
  `PlayerItemConsumeEvent`
  当玩家消耗完物品时, 此事件将触发 例如:(食物, 药水, 牛奶桶).
  `class`
  `PlayerItemDamageEvent`
  Called when an item used by the player takes durability damage as a result of being used.
  `class`
  `PlayerItemHeldEvent`
  玩家手持某物品事件.
  `class`
  `PlayerItemMendEvent`
  当玩家通过装备上的经验修补附魔修复装备耐久时触发该事件.
  `class`
  `PlayerKickEvent`
  玩家被服务器踢出事件.
  `class`
  `PlayerMoveEvent`
  玩家移动事件.
  `class`
  `PlayerPickupArrowEvent`
  当玩家从地上捡起箭时触发本事件.
  `class`
  `PlayerPickupItemEvent`
  已过时。
  `EntityPickupItemEvent`
  `class`
  `PlayerPortalEvent`
  玩家将要被传送门传送的事件, 传送过程中会生成一个退出传送门.
  `class`
  `PlayerRecipeDiscoverEvent`
  当玩家在配方书中解锁新配方(合成公式)时触发本事件.
  `class`
  `PlayerShearEntityEvent`
  玩家对某实体使用剪刀采集物品时调用此事件.
  `class`
  `PlayerSignOpenEvent`
  This event is fired when a sign is opened by the player.
  `class`
  `PlayerSpawnChangeEvent`
  This event is fired when the spawn point of the player is changed.
  `class`
  `PlayerStatisticIncrementEvent`
  当玩家统计信息增长时触发本事件.
  `class`
  `PlayerSwapHandItemsEvent`
  玩家用快捷键互换主手和副手的物品时触发本事件.
  `class`
  `PlayerTakeLecternBookEvent`
  This event is called when a player clicks the button to take a book of a Lectern.
  `class`
  `PlayerTeleportEvent`
  玩家传送事件.
  `class`
  `PlayerToggleFlightEvent`
  玩家切换飞行状态则调用此事件.
  `class`
  `PlayerToggleSneakEvent`
  玩家切换潜行状态则调用此事件.
  `class`
  `PlayerToggleSprintEvent`
  玩家切换疾跑状态时调用此事件
  `class`
  `PlayerUnleashEntityEvent`
  当一个实体被玩家解开拴绳时调用.
  `class`
  `PlayerVelocityEvent`
  玩家移动速度变化事件.

- ## org.bukkit.event.raid中Cancellable的使用

  实现Cancellable的org.bukkit.event.raid中的类
  修饰符和类型
  类
  说明
  `class`
  `RaidTriggerEvent`
  当袭击被触发时触发本事件 (例如:带有不祥之兆效果的玩家进入村庄).

- ## org.bukkit.event.server中Cancellable的使用

  实现Cancellable的org.bukkit.event.server中的类
  修饰符和类型
  类
  说明
  `class`
  `BroadcastMessageEvent`
  当服务器发送广播消息 (比如使用 `Server.broadcast(String, String)` 方法) 时调用.
  `class`
  `RemoteServerCommandEvent`
  这个事件当服务器RCON收到指令时调用.`了解更多`.
  `class`
  `ServerCommandEvent`
  这个事件当服务器后台发送指令时调用.
  `class`
  `TabCompleteEvent`
  当一个 `CommandSender` 尝试补全命令时触发本事件.

- ## org.bukkit.event.vehicle中Cancellable的使用

  实现Cancellable的org.bukkit.event.vehicle中的类
  修饰符和类型
  类
  说明
  `class`
  `VehicleCreateEvent`
  载具创建事件
  `class`
  `VehicleDamageEvent`
  载具受到伤害的事件
  `class`
  `VehicleDestroyEvent`
  载具被损毁的事件（包含被玩家/自然损坏）。
  `class`
  `VehicleEnterEvent`
  实体进入载具的事件
  `class`
  `VehicleEntityCollisionEvent`
  载具撞击实体的事件
  `class`
  `VehicleExitEvent`
  实体退出载具的事件

- ## org.bukkit.event.weather中Cancellable的使用

  实现Cancellable的org.bukkit.event.weather中的类
  修饰符和类型
  类
  说明
  `class`
  `LightningStrikeEvent`
  雷击事件
  `class`
  `ThunderChangeEvent`
  雷暴天气切换事件.
  `class`
  `WeatherChangeEvent`
  天气改变事件

- ## org.bukkit.event.world中Cancellable的使用

  实现Cancellable的org.bukkit.event.world中的类
  修饰符和类型
  类
  说明
  `class`
  `AsyncStructureSpawnEvent`
  Called when a `Structure` is naturally generated in the world.
  `class`
  `GenericGameEvent`
  代表 Mojang 通用游戏事件.
  `class`
  `LootGenerateEvent`
  当生成给予`InventoryHolder`的`战利品`时调用.
  `class`
  `PortalCreateEvent`
  当传送门被创建时调用.
  `class`
  `StructureGrowEvent`
  当一个有机结构试图生长的时调用此事件(树苗 -> 树, 蘑菇 -> 巨型蘑菇, 自然生长的或使用骨粉生长的).
  `class`
  `TimeSkipEvent`
  当世界内的世界发生快进时调用.
  `class`
  `WorldUnloadEvent`
  当一个世界被卸载时调用.