diff --git a/patches/api/0008-Ridables.patch b/patches/api/0008-Ridables.patch index b15bac584..5c154c7b9 100644 --- a/patches/api/0008-Ridables.patch +++ b/patches/api/0008-Ridables.patch @@ -46,10 +46,10 @@ index d0ae8a94db20281d3664d74718c65234eb2e5f83..bf6d13cc6b0566f4076383c8f170dc8c } diff --git a/src/main/java/org/purpurmc/purpur/event/entity/RidableMoveEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/RidableMoveEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d34fade03b +index 0000000000000000000000000000000000000000..c31a656daa3df1ab87302d8f14110a828c920102 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/RidableMoveEvent.java -@@ -0,0 +1,103 @@ +@@ -0,0 +1,100 @@ +package org.purpurmc.purpur.event.entity; + +import com.google.common.base.Preconditions; @@ -59,11 +59,13 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Triggered when a ridable mob moves with a rider + */ ++@NullMarked +public class RidableMoveEvent extends EntityEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean canceled; @@ -71,7 +73,8 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + private Location from; + private Location to; + -+ public RidableMoveEvent(@NotNull Mob entity, @NotNull Player rider, @NotNull Location from, @NotNull Location to) { ++ @ApiStatus.Internal ++ public RidableMoveEvent(Mob entity, Player rider, Location from, Location to) { + super(entity); + this.rider = rider; + this.from = from; @@ -79,12 +82,10 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + } + + @Override -+ @NotNull + public Mob getEntity() { + return (Mob) entity; + } + -+ @NotNull + public Player getRider() { + return rider; + } @@ -102,7 +103,6 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + * + * @return Location the entity moved from + */ -+ @NotNull + public Location getFrom() { + return from; + } @@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + * + * @param from New location to mark as the entity's previous location + */ -+ public void setFrom(@NotNull Location from) { ++ public void setFrom(Location from) { + validateLocation(from); + this.from = from; + } @@ -122,7 +122,6 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + * + * @return Location the entity moved to + */ -+ @NotNull + public Location getTo() { + return to; + } @@ -132,46 +131,47 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3 + * + * @param to New Location this entity will move to + */ -+ public void setTo(@NotNull Location to) { ++ public void setTo(Location to) { + validateLocation(to); + this.to = to; + } + -+ private void validateLocation(@NotNull Location loc) { ++ private void validateLocation(Location loc) { + Preconditions.checkArgument(loc != null, "Cannot use null location!"); + Preconditions.checkArgument(loc.getWorld() != null, "Cannot use null location with null world!"); + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/RidableSpacebarEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/RidableSpacebarEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..3d3a7d898e3278ce998d713dafbb4b354dad7fc7 +index 0000000000000000000000000000000000000000..02de629f066ef7d4898b3053efa957edeea16a3f --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/RidableSpacebarEvent.java -@@ -0,0 +1,37 @@ +@@ -0,0 +1,38 @@ +package org.purpurmc.purpur.event.entity; + +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.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + ++@NullMarked +public class RidableSpacebarEvent extends EntityEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + -+ public RidableSpacebarEvent(@NotNull Entity entity) { ++ @ApiStatus.Internal ++ public RidableSpacebarEvent(Entity entity) { + super(entity); + } + @@ -186,12 +186,10 @@ index 0000000000000000000000000000000000000000..3d3a7d898e3278ce998d713dafbb4b35 + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0010-Llama-API.patch b/patches/api/0010-Llama-API.patch index cfebb1cee..be6a4ce3a 100644 --- a/patches/api/0010-Llama-API.patch +++ b/patches/api/0010-Llama-API.patch @@ -31,17 +31,18 @@ index bc84b892cae5fe7019a3ad481e9da79956efa1fe..48eb5b00c460cccde29d327cef1d63fc } diff --git a/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab9d957c75 +index 0000000000000000000000000000000000000000..e34c37579dc8a5a108c03b9eff6bb916a910d867 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java -@@ -0,0 +1,61 @@ +@@ -0,0 +1,60 @@ +package org.purpurmc.purpur.event.entity; + +import org.bukkit.entity.Llama; +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a Llama tries to join a caravan. @@ -49,18 +50,19 @@ index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab + * Cancelling the event will not let the Llama join. To prevent future attempts + * at joining a caravan use {@link Llama#setShouldJoinCaravan(boolean)}. + */ ++@NullMarked +public class LlamaJoinCaravanEvent extends EntityEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean canceled; + private final Llama head; + -+ public LlamaJoinCaravanEvent(@NotNull Llama llama, @NotNull Llama head) { ++ @ApiStatus.Internal ++ public LlamaJoinCaravanEvent(Llama llama, Llama head) { + super(llama); + this.head = head; + } + + @Override -+ @NotNull + public Llama getEntity() { + return (Llama) entity; + } @@ -70,7 +72,6 @@ index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab + * + * @return Llama about to be followed + */ -+ @NotNull + public Llama getHead() { + return head; + } @@ -86,19 +87,17 @@ index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/LlamaLeaveCaravanEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/LlamaLeaveCaravanEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..c268c35b541a222d50875c29770c846a8ffcc4f8 +index 0000000000000000000000000000000000000000..23ea41ff5dc43a915a263aeb1a246705de8bf9e1 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/LlamaLeaveCaravanEvent.java @@ -0,0 +1,34 @@ @@ -107,31 +106,31 @@ index 0000000000000000000000000000000000000000..c268c35b541a222d50875c29770c846a +import org.bukkit.entity.Llama; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a Llama leaves a caravan + */ ++@NullMarked +public class LlamaLeaveCaravanEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + -+ public LlamaLeaveCaravanEvent(@NotNull Llama llama) { ++ @ApiStatus.Internal ++ public LlamaLeaveCaravanEvent(Llama llama) { + super(llama); + } + + @Override -+ @NotNull + public Llama getEntity() { + return (Llama) entity; + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0011-AFK-API.patch b/patches/api/0011-AFK-API.patch index f724dea31..e3e807315 100644 --- a/patches/api/0011-AFK-API.patch +++ b/patches/api/0011-AFK-API.patch @@ -36,27 +36,30 @@ index be19348117cf79dea23f1fb3055a726818e7db55..e93ce0e0a6cfd7c0596d50a6255151f5 } diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerAFKEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerAFKEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..25e92af7710316ed2afedf846a59dbd672869b51 +index 0000000000000000000000000000000000000000..e9637b82014fe3f4f4671b24d18f77f3d5e4b8ad --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/PlayerAFKEvent.java -@@ -0,0 +1,70 @@ +@@ -0,0 +1,71 @@ +package org.purpurmc.purpur.event; + +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.NotNull; -+import org.jetbrains.annotations.Nullable; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + ++@NullMarked +public class PlayerAFKEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private final boolean setAfk; + private boolean shouldKick; -+ private String broadcast; ++ private @Nullable String broadcast; + private boolean cancel; + -+ public PlayerAFKEvent(@NotNull Player player, boolean setAfk, boolean shouldKick, @Nullable String broadcast, boolean async) { ++ @ApiStatus.Internal ++ public PlayerAFKEvent(Player player, boolean setAfk, boolean shouldKick, @Nullable String broadcast, boolean async) { + super(player, async); + this.setAfk = setAfk; + this.shouldKick = shouldKick; @@ -100,12 +103,10 @@ index 0000000000000000000000000000000000000000..25e92af7710316ed2afedf846a59dbd6 + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0013-ExecuteCommandEvent.patch b/patches/api/0013-ExecuteCommandEvent.patch index 4d7aa00b8..facb1f650 100644 --- a/patches/api/0013-ExecuteCommandEvent.patch +++ b/patches/api/0013-ExecuteCommandEvent.patch @@ -39,10 +39,10 @@ index 5df19bd701c67506689fc7f49d91f99ebfbc83f0..a09b5458191eb5df4787859b72a37fa1 server.getPluginManager().callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerCommandException(ex, target, sender, args))); // Paper diff --git a/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798702a8179 +index 0000000000000000000000000000000000000000..55feef2321c7d966c72a33a58cf10136a9cacfa6 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java -@@ -0,0 +1,130 @@ +@@ -0,0 +1,127 @@ +package org.purpurmc.purpur.event; + +import com.google.common.base.Preconditions; @@ -51,21 +51,24 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + +/** + * This event is called whenever someone runs a command + */ ++@NullMarked +public class ExecuteCommandEvent extends Event implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancel = false; + private CommandSender sender; + private Command command; + private String label; -+ private String[] args; ++ private @Nullable String[] args; + -+ public ExecuteCommandEvent(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @Nullable String[] args) { ++ @ApiStatus.Internal ++ public ExecuteCommandEvent(CommandSender sender, Command command, String label, @Nullable String[] args) { + this.sender = sender; + this.command = command; + this.label = label; @@ -77,7 +80,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @return Command the player is attempting to execute + */ -+ @NotNull + public Command getCommand() { + return command; + } @@ -88,7 +90,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * @param command New command that the player will execute + * @throws IllegalArgumentException if command is null or empty + */ -+ public void setCommand(@NotNull Command command) throws IllegalArgumentException { ++ public void setCommand(Command command) throws IllegalArgumentException { + Preconditions.checkArgument(command != null, "Command cannot be null"); + this.command = command; + } @@ -98,7 +100,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @return Sender this command will be executed as + */ -+ @NotNull + public CommandSender getSender() { + return sender; + } @@ -109,7 +110,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * @param sender New sender which this event will execute as + * @throws IllegalArgumentException if the sender provided is null + */ -+ public void setSender(@NotNull final CommandSender sender) throws IllegalArgumentException { ++ public void setSender(final CommandSender sender) throws IllegalArgumentException { + Preconditions.checkArgument(sender != null, "Sender cannot be null"); + this.sender = sender; + } @@ -119,7 +120,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @return Label used to execute this command + */ -+ @NotNull + public String getLabel() { + return label; + } @@ -129,7 +129,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @param label Label used + */ -+ public void setLabel(@NotNull String label) { ++ public void setLabel(String label) { + this.label = label; + } + @@ -138,7 +138,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @return Args passed to the command + */ -+ @NotNull + public String[] getArgs() { + return args; + } @@ -148,7 +147,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + * + * @param args Args passed to the command + */ -+ public void setArgs(@NotNull String[] args) { ++ public void setArgs(String[] args) { + this.args = args; + } + @@ -162,13 +161,11 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798 + this.cancel = cancel; + } + -+ @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch b/patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch index 3179a0831..64410cdb4 100644 --- a/patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch +++ b/patches/api/0015-PlayerSetSpawnerTypeWithEggEvent.patch @@ -6,10 +6,10 @@ Subject: [PATCH] PlayerSetSpawnerTypeWithEggEvent diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0defc099dc +index 0000000000000000000000000000000000000000..795c558b481f4e2a550925bd88b8e7d41711456f --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java -@@ -0,0 +1,85 @@ +@@ -0,0 +1,83 @@ +package org.purpurmc.purpur.event; + +import org.bukkit.block.Block; @@ -19,8 +19,10 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + ++@NullMarked +public class PlayerSetSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private final Block block; @@ -28,7 +30,8 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + private EntityType type; + private boolean cancel; + -+ public PlayerSetSpawnerTypeWithEggEvent(@NotNull Player player, @NotNull Block block, @NotNull CreatureSpawner spawner, @NotNull EntityType type) { ++ @ApiStatus.Internal ++ public PlayerSetSpawnerTypeWithEggEvent(Player player, Block block, CreatureSpawner spawner, EntityType type) { + super(player); + this.block = block; + this.spawner = spawner; @@ -40,7 +43,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + * + * @return Spawner Block + */ -+ @NotNull + public Block getBlock() { + return block; + } @@ -50,7 +52,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + * + * @return Spawner state + */ -+ @NotNull + public CreatureSpawner getSpawner() { + return spawner; + } @@ -60,7 +61,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + * + * @return EntityType being set + */ -+ @NotNull + public EntityType getEntityType() { + return type; + } @@ -70,7 +70,7 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + * + * @param type EntityType to set + */ -+ public void setEntityType(@NotNull EntityType type) { ++ public void setEntityType(EntityType type) { + this.type = type; + } + @@ -85,22 +85,20 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a368311f28d +index 0000000000000000000000000000000000000000..1d4dbf60a182a2a5f93c449e387b82743d20616c --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java -@@ -0,0 +1,85 @@ +@@ -0,0 +1,83 @@ +package org.purpurmc.purpur.event; + +import org.bukkit.block.Block; @@ -110,8 +108,10 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + ++@NullMarked +public class PlayerSetTrialSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private final Block block; @@ -119,7 +119,8 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + private EntityType type; + private boolean cancel; + -+ public PlayerSetTrialSpawnerTypeWithEggEvent(@NotNull Player player, @NotNull Block block, @NotNull TrialSpawner spawner, @NotNull EntityType type) { ++ @ApiStatus.Internal ++ public PlayerSetTrialSpawnerTypeWithEggEvent(Player player, Block block, TrialSpawner spawner, EntityType type) { + super(player); + this.block = block; + this.spawner = spawner; @@ -131,7 +132,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + * + * @return Spawner Block + */ -+ @NotNull + public Block getBlock() { + return block; + } @@ -141,7 +141,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + * + * @return Spawner state + */ -+ @NotNull + public TrialSpawner getSpawner() { + return spawner; + } @@ -151,7 +150,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + * + * @return EntityType being set + */ -+ @NotNull + public EntityType getEntityType() { + return type; + } @@ -161,7 +159,7 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + * + * @param type EntityType to set + */ -+ public void setEntityType(@NotNull EntityType type) { ++ public void setEntityType(EntityType type) { + this.type = type; + } + @@ -176,12 +174,10 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36 + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0016-Anvil-API.patch b/patches/api/0016-Anvil-API.patch index 2c7a4aa67..d3458d680 100644 --- a/patches/api/0016-Anvil-API.patch +++ b/patches/api/0016-Anvil-API.patch @@ -92,10 +92,10 @@ index 0344b3db789baf1da0b59f2d2cd66154b69b38a9..4b130327c84b05938d21d563f78361f9 } diff --git a/src/main/java/org/purpurmc/purpur/event/inventory/AnvilTakeResultEvent.java b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilTakeResultEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..b363c91a29f826910db22f2643decf996a067ab5 +index 0000000000000000000000000000000000000000..b2199854b5c7e74a673cbadbe584e5aaebbe3883 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilTakeResultEvent.java -@@ -0,0 +1,52 @@ +@@ -0,0 +1,50 @@ +package org.purpurmc.purpur.event.inventory; + +import org.bukkit.entity.HumanEntity; @@ -105,52 +105,50 @@ index 0000000000000000000000000000000000000000..b363c91a29f826910db22f2643decf99 +import org.bukkit.inventory.AnvilInventory; +import org.bukkit.inventory.InventoryView; +import org.bukkit.inventory.ItemStack; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a player takes the result item out of an anvil + */ ++@NullMarked +public class AnvilTakeResultEvent extends InventoryEvent { + private static final HandlerList handlers = new HandlerList(); + private final Player player; + private final ItemStack result; + -+ public AnvilTakeResultEvent(@NotNull HumanEntity player, @NotNull InventoryView view, @NotNull ItemStack result) { ++ @ApiStatus.Internal ++ public AnvilTakeResultEvent(HumanEntity player, InventoryView view, ItemStack result) { + super(view); + this.player = (Player) player; + this.result = result; + } + -+ @NotNull + public Player getPlayer() { + return player; + } + -+ @NotNull + public ItemStack getResult() { + return result; + } + -+ @NotNull + @Override + public AnvilInventory getInventory() { + return (AnvilInventory) super.getInventory(); + } + -+ @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/inventory/AnvilUpdateResultEvent.java b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilUpdateResultEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..fd6a5a3589d436c2aaf988fd305899695799d3bb +index 0000000000000000000000000000000000000000..4293c4a57c1c054e8248b7712e8664bd4cb1a972 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilUpdateResultEvent.java @@ -0,0 +1,35 @@ @@ -160,31 +158,31 @@ index 0000000000000000000000000000000000000000..fd6a5a3589d436c2aaf988fd30589969 +import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.inventory.AnvilInventory; +import org.bukkit.inventory.InventoryView; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when anvil slots change, triggering the result slot to be updated + */ ++@NullMarked +public class AnvilUpdateResultEvent extends InventoryEvent { + private static final HandlerList handlers = new HandlerList(); + -+ public AnvilUpdateResultEvent(@NotNull InventoryView view) { ++ @ApiStatus.Internal ++ public AnvilUpdateResultEvent(InventoryView view) { + super(view); + } + -+ @NotNull + @Override + public AnvilInventory getInventory() { + return (AnvilInventory) super.getInventory(); + } + -+ @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0022-PlayerBookTooLargeEvent.patch b/patches/api/0022-PlayerBookTooLargeEvent.patch index 937bb73c4..248342c51 100644 --- a/patches/api/0022-PlayerBookTooLargeEvent.patch +++ b/patches/api/0022-PlayerBookTooLargeEvent.patch @@ -6,7 +6,7 @@ Subject: [PATCH] PlayerBookTooLargeEvent diff --git a/src/main/java/org/purpurmc/purpur/event/player/PlayerBookTooLargeEvent.java b/src/main/java/org/purpurmc/purpur/event/player/PlayerBookTooLargeEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a176a234d5 +index 0000000000000000000000000000000000000000..31cce9f4e398135016114b96254376325a22ba7c --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/player/PlayerBookTooLargeEvent.java @@ -0,0 +1,65 @@ @@ -17,11 +17,13 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1 +import org.bukkit.event.HandlerList; +import org.bukkit.event.player.PlayerEvent; +import org.bukkit.inventory.ItemStack; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a player tries to bypass book limitations + */ ++@NullMarked +public class PlayerBookTooLargeEvent extends PlayerEvent { + private static final HandlerList handlers = new HandlerList(); + private final ItemStack book; @@ -31,7 +33,8 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1 + * @param player The player + * @param book The book + */ -+ public PlayerBookTooLargeEvent(@NotNull Player player, @NotNull ItemStack book) { ++ @ApiStatus.Internal ++ public PlayerBookTooLargeEvent(Player player, ItemStack book) { + super(player, !Bukkit.isPrimaryThread()); + this.book = book; + } @@ -41,7 +44,6 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1 + * + * @return The book + */ -+ @NotNull + public ItemStack getBook() { + return book; + } @@ -65,12 +67,10 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1 + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0024-Add-EntityTeleportHinderedEvent.patch b/patches/api/0024-Add-EntityTeleportHinderedEvent.patch index a172c1de1..39b584d99 100644 --- a/patches/api/0024-Add-EntityTeleportHinderedEvent.patch +++ b/patches/api/0024-Add-EntityTeleportHinderedEvent.patch @@ -18,35 +18,35 @@ along with this program. If not, see . diff --git a/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7efeb818cd +index 0000000000000000000000000000000000000000..daf3bbf83ee76322828a38814b483fa2b337bd60 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java -@@ -0,0 +1,117 @@ +@@ -0,0 +1,114 @@ +package org.purpurmc.purpur.event.entity; + +import org.bukkit.entity.Entity; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + +/** + * Fired when an entity is hindered from teleporting. + */ ++@NullMarked +public class EntityTeleportHinderedEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + -+ @NotNull + private final Reason reason; + -+ @Nullable -+ private final TeleportCause teleportCause; ++ private final @Nullable TeleportCause teleportCause; + + private boolean retry = false; + -+ public EntityTeleportHinderedEvent(@NotNull Entity what, @NotNull Reason reason, -+ @Nullable TeleportCause teleportCause) { ++ @ApiStatus.Internal ++ public EntityTeleportHinderedEvent(Entity what, Reason reason, @Nullable TeleportCause teleportCause) { + super(what); + this.reason = reason; + this.teleportCause = teleportCause; @@ -55,7 +55,6 @@ index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7e + /** + * @return why the teleport was hindered. + */ -+ @NotNull + public Reason getReason() { + return reason; + } @@ -106,12 +105,10 @@ index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7e + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0033-Grindstone-API.patch b/patches/api/0033-Grindstone-API.patch index fc958c00f..b872c1cc4 100644 --- a/patches/api/0033-Grindstone-API.patch +++ b/patches/api/0033-Grindstone-API.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Grindstone API diff --git a/src/main/java/org/purpurmc/purpur/event/inventory/GrindstoneTakeResultEvent.java b/src/main/java/org/purpurmc/purpur/event/inventory/GrindstoneTakeResultEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b6c16b0c8 +index 0000000000000000000000000000000000000000..d6db2d355553c9c54b83328d237b9c75e7a8e375 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/inventory/GrindstoneTakeResultEvent.java -@@ -0,0 +1,74 @@ +@@ -0,0 +1,72 @@ +package org.purpurmc.purpur.event.inventory; + +import org.bukkit.entity.HumanEntity; @@ -19,35 +19,35 @@ index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b +import org.bukkit.inventory.GrindstoneInventory; +import org.bukkit.inventory.InventoryView; +import org.bukkit.inventory.ItemStack; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a player takes the result item out of a Grindstone + */ ++@NullMarked +public class GrindstoneTakeResultEvent extends InventoryEvent { + private static final HandlerList handlers = new HandlerList(); + private final Player player; + private final ItemStack result; + private int experienceAmount; + -+ public GrindstoneTakeResultEvent(@NotNull HumanEntity player, @NotNull InventoryView view, @NotNull ItemStack result, int experienceAmount) { ++ @ApiStatus.Internal ++ public GrindstoneTakeResultEvent(HumanEntity player, InventoryView view, ItemStack result, int experienceAmount) { + super(view); + this.player = (Player) player; + this.result = result; + this.experienceAmount = experienceAmount; + } + -+ @NotNull + public Player getPlayer() { + return player; + } + -+ @NotNull + public ItemStack getResult() { + return result; + } + -+ @NotNull + @Override + public GrindstoneInventory getInventory() { + return (GrindstoneInventory) super.getInventory(); @@ -73,13 +73,11 @@ index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b + this.experienceAmount = experienceAmount; + } + -+ @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0038-Add-Bee-API.patch b/patches/api/0038-Add-Bee-API.patch index 6efae8520..940b0126c 100644 --- a/patches/api/0038-Add-Bee-API.patch +++ b/patches/api/0038-Add-Bee-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add Bee API diff --git a/src/main/java/org/purpurmc/purpur/event/entity/BeeFoundFlowerEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/BeeFoundFlowerEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567ee0290d2 +index 0000000000000000000000000000000000000000..7f631a41abee4640a37339a7896ce96e61747735 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeFoundFlowerEvent.java @@ -0,0 +1,48 @@ @@ -16,23 +16,25 @@ index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567 +import org.bukkit.entity.Bee; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + +/** + * Called when a bee targets a flower + */ ++@NullMarked +public class BeeFoundFlowerEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + private final Location location; + -+ public BeeFoundFlowerEvent(@NotNull Bee bee, @Nullable Location location) { ++ @ApiStatus.Internal ++ public BeeFoundFlowerEvent(Bee bee, @Nullable Location location) { + super(bee); + this.location = location; + } + + @Override -+ @NotNull + public Bee getEntity() { + return (Bee) super.getEntity(); + } @@ -48,44 +50,44 @@ index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567 + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/BeeStartedPollinatingEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/BeeStartedPollinatingEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..ae0bb654745724889c67fae9072ae90ea3778ba4 +index 0000000000000000000000000000000000000000..e260145d6dc556bbe9e3654296b965c4e393084d --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeStartedPollinatingEvent.java -@@ -0,0 +1,47 @@ +@@ -0,0 +1,46 @@ +package org.purpurmc.purpur.event.entity; + +import org.bukkit.Location; +import org.bukkit.entity.Bee; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a bee starts pollinating + */ ++@NullMarked +public class BeeStartedPollinatingEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + private final Location location; + -+ public BeeStartedPollinatingEvent(@NotNull Bee bee, @NotNull Location location) { ++ @ApiStatus.Internal ++ public BeeStartedPollinatingEvent(Bee bee, Location location) { + super(bee); + this.location = location; + } + + @Override -+ @NotNull + public Bee getEntity() { + return (Bee) super.getEntity(); + } @@ -95,25 +97,22 @@ index 0000000000000000000000000000000000000000..ae0bb654745724889c67fae9072ae90e + * + * @return The location of the flower + */ -+ @NotNull + public Location getLocation() { + return this.location; + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/BeeStopPollinatingEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/BeeStopPollinatingEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea69a41f32e +index 0000000000000000000000000000000000000000..8b2b351d620c749cdf58d7e824b55cf55578fde6 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeStopPollinatingEvent.java @@ -0,0 +1,60 @@ @@ -123,25 +122,27 @@ index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea6 +import org.bukkit.entity.Bee; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; -+import org.jetbrains.annotations.Nullable; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + +/** + * Called when a bee stops pollinating + */ ++@NullMarked +public class BeeStopPollinatingEvent extends EntityEvent { + private static final HandlerList handlers = new HandlerList(); + private final Location location; + private final boolean success; + -+ public BeeStopPollinatingEvent(@NotNull Bee bee, @Nullable Location location, boolean success) { ++ @ApiStatus.Internal ++ public BeeStopPollinatingEvent(Bee bee, @Nullable Location location, boolean success) { + super(bee); + this.location = location; + this.success = success; + } + + @Override -+ @NotNull + public Bee getEntity() { + return (Bee) super.getEntity(); + } @@ -167,12 +168,10 @@ index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea6 + + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0041-Language-API.patch b/patches/api/0041-Language-API.patch index 1fbe2ebee..5dfa484c1 100644 --- a/patches/api/0041-Language-API.patch +++ b/patches/api/0041-Language-API.patch @@ -6,30 +6,32 @@ Subject: [PATCH] Language API diff --git a/src/main/java/org/purpurmc/purpur/language/Language.java b/src/main/java/org/purpurmc/purpur/language/Language.java new file mode 100644 -index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f87060f4c7 +index 0000000000000000000000000000000000000000..cbdad4cf09c170064a45644efdf7aa0b28608301 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/language/Language.java @@ -0,0 +1,60 @@ +package org.purpurmc.purpur.language; + +import net.kyori.adventure.translation.Translatable; -+import org.jetbrains.annotations.NotNull; ++import org.jspecify.annotations.NullMarked; ++import org.jspecify.annotations.Nullable; + +/** + * Represents a language that can translate translation keys + */ ++@NullMarked +public abstract class Language { -+ private static Language language; ++ private static @Nullable Language language; + + /** + * Returns the default language of the server + */ -+ @NotNull ++ @Nullable + public static Language getLanguage() { + return language; + } + -+ public static void setLanguage(@NotNull Language language) { ++ public static void setLanguage(Language language) { + if (Language.language != null) { + throw new UnsupportedOperationException("Cannot redefine singleton Language"); + } @@ -41,14 +43,14 @@ index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f8 + * @param key The translation key + * @return Whether this language can translate the key + */ -+ abstract public boolean has(@NotNull String key); ++ abstract public boolean has(String key); + + /** + * Checks if a certain translation key is translatable with this language + * @param key The translation key + * @return Whether this language can translate the key + */ -+ public boolean has(@NotNull Translatable key) { ++ public boolean has(Translatable key) { + return has(key.translationKey()); + } + @@ -57,16 +59,14 @@ index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f8 + * @param key The translation key + * @return The translated key, or the translation key if it couldn't be translated + */ -+ @NotNull -+ abstract public String getOrDefault(@NotNull String key); ++ abstract public String getOrDefault(String key); + + /** + * Translates a translation key to this language + * @param key The translation key + * @return The translated key, or the translation key if it couldn't be translated + */ -+ @NotNull -+ public String getOrDefault(@NotNull Translatable key) { ++ public String getOrDefault(Translatable key) { + return getOrDefault(key.translationKey()); + } +} diff --git a/patches/api/0044-Added-goat-ram-event.patch b/patches/api/0044-Added-goat-ram-event.patch index 7665c860d..d3c3f06d3 100644 --- a/patches/api/0044-Added-goat-ram-event.patch +++ b/patches/api/0044-Added-goat-ram-event.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Added goat ram event diff --git a/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d97b94b5a +index 0000000000000000000000000000000000000000..f0a7fe694db145294ff93d320382d1baecc68702 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java -@@ -0,0 +1,59 @@ +@@ -0,0 +1,58 @@ +package org.purpurmc.purpur.event.entity; + +import org.bukkit.entity.Goat; @@ -17,17 +17,20 @@ index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; ++import org.jspecify.annotations.NullMarked; + +/** + * Called when a goat rams an entity + */ ++@NullMarked +public class GoatRamEntityEvent extends EntityEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private final LivingEntity rammedEntity; + private boolean cancelled; + -+ public GoatRamEntityEvent(@NotNull Goat goat, @NotNull LivingEntity rammedEntity) { ++ @ApiStatus.Internal ++ public GoatRamEntityEvent(Goat goat, LivingEntity rammedEntity) { + super(goat); + this.rammedEntity = rammedEntity; + } @@ -37,24 +40,20 @@ index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d + * + * @return The rammed entity + */ -+ @NotNull + public LivingEntity getRammedEntity() { + return this.rammedEntity; + } + + @Override -+ @NotNull + public Goat getEntity() { + return (Goat) super.getEntity(); + } + + @Override -+ @NotNull + public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } diff --git a/patches/api/0045-Add-PreExplodeEvents.patch b/patches/api/0045-Add-PreExplodeEvents.patch index 1a5339fe9..2699b3c6d 100644 --- a/patches/api/0045-Add-PreExplodeEvents.patch +++ b/patches/api/0045-Add-PreExplodeEvents.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add PreExplodeEvents diff --git a/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d5882b4e0 +index 0000000000000000000000000000000000000000..4b4d32c58224e1208f14024ca214078a37550bb5 --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java -@@ -0,0 +1,54 @@ +@@ -0,0 +1,56 @@ +package org.purpurmc.purpur.event; + +import org.bukkit.ExplosionResult; @@ -18,18 +18,21 @@ index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.block.BlockExplodeEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; +import java.util.Collections; ++import org.jspecify.annotations.NullMarked; + +/** + * Called before a block's explosion is processed + */ ++@NullMarked +public class PreBlockExplodeEvent extends BlockExplodeEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final float yield; + -+ public PreBlockExplodeEvent(@NotNull final Block what, final float yield, @NotNull BlockState explodedBlockState, @NotNull ExplosionResult result) { ++ @ApiStatus.Internal ++ public PreBlockExplodeEvent(final Block what, final float yield, BlockState explodedBlockState, ExplosionResult result) { + super(what, explodedBlockState, Collections.emptyList(), yield, result); + this.yield = yield; + this.cancelled = false; @@ -55,21 +58,20 @@ index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d + } + + @Override -+ public @NotNull HandlerList getHandlers() { ++ public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java new file mode 100644 -index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6ca81f96e +index 0000000000000000000000000000000000000000..d56fb066455007cc710f7ba34ba722af6e89bc1d --- /dev/null +++ b/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java -@@ -0,0 +1,65 @@ +@@ -0,0 +1,66 @@ +package org.purpurmc.purpur.event.entity; + +import org.bukkit.ExplosionResult; @@ -77,19 +79,22 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6 +import org.bukkit.event.Cancellable; +import org.bukkit.event.HandlerList; +import org.bukkit.event.entity.EntityExplodeEvent; -+import org.jetbrains.annotations.NotNull; ++import org.jetbrains.annotations.ApiStatus; +import java.util.Collections; ++import org.jspecify.annotations.NullMarked; + +/** + * Called before an entity's explosion is processed + */ ++@NullMarked +public class PreEntityExplodeEvent extends EntityExplodeEvent implements Cancellable { + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final float yield; + private final Location location; + -+ public PreEntityExplodeEvent(@NotNull org.bukkit.entity.Entity what, @NotNull final Location location, final float yield, @NotNull ExplosionResult result) { ++ @ApiStatus.Internal ++ public PreEntityExplodeEvent(org.bukkit.entity.Entity what, final Location location, final float yield, ExplosionResult result) { + super(what, location, Collections.emptyList(), yield, result); + this.cancelled = false; + this.yield = yield; @@ -110,7 +115,6 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6 + * + * @return The location of the explosion + */ -+ @NotNull + public Location getLocation() { + return location; + } @@ -126,11 +130,10 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6 + } + + @Override -+ public @NotNull HandlerList getHandlers() { ++ public HandlerList getHandlers() { + return handlers; + } + -+ @NotNull + public static HandlerList getHandlerList() { + return handlers; + }