switch to JSpecify annotations

This commit is contained in:
granny
2024-10-03 19:33:40 -07:00
parent 212c942316
commit 2eaea6a060
13 changed files with 158 additions and 173 deletions

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d34fade03b index 0000000000000000000000000000000000000000..c31a656daa3df1ab87302d8f14110a828c920102
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/RidableMoveEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import com.google.common.base.Preconditions; +import com.google.common.base.Preconditions;
@@ -59,11 +59,13 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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 + * Triggered when a ridable mob moves with a rider
+ */ + */
+@NullMarked
+public class RidableMoveEvent extends EntityEvent implements Cancellable { +public class RidableMoveEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean canceled; + private boolean canceled;
@@ -71,7 +73,8 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ private Location from; + private Location from;
+ private Location to; + 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); + super(entity);
+ this.rider = rider; + this.rider = rider;
+ this.from = from; + this.from = from;
@@ -79,12 +82,10 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Mob getEntity() { + public Mob getEntity() {
+ return (Mob) entity; + return (Mob) entity;
+ } + }
+ +
+ @NotNull
+ public Player getRider() { + public Player getRider() {
+ return rider; + return rider;
+ } + }
@@ -102,7 +103,6 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ * + *
+ * @return Location the entity moved from + * @return Location the entity moved from
+ */ + */
+ @NotNull
+ public Location getFrom() { + public Location getFrom() {
+ return from; + return from;
+ } + }
@@ -112,7 +112,7 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ * + *
+ * @param from New location to mark as the entity's previous location + * @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); + validateLocation(from);
+ this.from = from; + this.from = from;
+ } + }
@@ -122,7 +122,6 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ * + *
+ * @return Location the entity moved to + * @return Location the entity moved to
+ */ + */
+ @NotNull
+ public Location getTo() { + public Location getTo() {
+ return to; + return to;
+ } + }
@@ -132,46 +131,47 @@ index 0000000000000000000000000000000000000000..a037df01b07af9ffb98b67aca412c1d3
+ * + *
+ * @param to New Location this entity will move to + * @param to New Location this entity will move to
+ */ + */
+ public void setTo(@NotNull Location to) { + public void setTo(Location to) {
+ validateLocation(to); + validateLocation(to);
+ this.to = 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 != null, "Cannot use null location!");
+ Preconditions.checkArgument(loc.getWorld() != null, "Cannot use null location with null world!"); + Preconditions.checkArgument(loc.getWorld() != null, "Cannot use null location with null world!");
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..3d3a7d898e3278ce998d713dafbb4b354dad7fc7 index 0000000000000000000000000000000000000000..02de629f066ef7d4898b3053efa957edeea16a3f
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/RidableSpacebarEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.entity.Entity; +import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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 { +public class RidableSpacebarEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean cancelled; + private boolean cancelled;
+ +
+ public RidableSpacebarEvent(@NotNull Entity entity) { + @ApiStatus.Internal
+ public RidableSpacebarEvent(Entity entity) {
+ super(entity); + super(entity);
+ } + }
+ +
@@ -186,12 +186,10 @@ index 0000000000000000000000000000000000000000..3d3a7d898e3278ce998d713dafbb4b35
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab9d957c75 index 0000000000000000000000000000000000000000..e34c37579dc8a5a108c03b9eff6bb916a910d867
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/LlamaJoinCaravanEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.entity.Llama; +import org.bukkit.entity.Llama;
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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. + * 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 + * Cancelling the event will not let the Llama join. To prevent future attempts
+ * at joining a caravan use {@link Llama#setShouldJoinCaravan(boolean)}. + * at joining a caravan use {@link Llama#setShouldJoinCaravan(boolean)}.
+ */ + */
+@NullMarked
+public class LlamaJoinCaravanEvent extends EntityEvent implements Cancellable { +public class LlamaJoinCaravanEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean canceled; + private boolean canceled;
+ private final Llama head; + private final Llama head;
+ +
+ public LlamaJoinCaravanEvent(@NotNull Llama llama, @NotNull Llama head) { + @ApiStatus.Internal
+ public LlamaJoinCaravanEvent(Llama llama, Llama head) {
+ super(llama); + super(llama);
+ this.head = head; + this.head = head;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Llama getEntity() { + public Llama getEntity() {
+ return (Llama) entity; + return (Llama) entity;
+ } + }
@@ -70,7 +72,6 @@ index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab
+ * + *
+ * @return Llama about to be followed + * @return Llama about to be followed
+ */ + */
+ @NotNull
+ public Llama getHead() { + public Llama getHead() {
+ return head; + return head;
+ } + }
@@ -86,19 +87,17 @@ index 0000000000000000000000000000000000000000..8849bb0becb16db907fa648cca2e98ab
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..c268c35b541a222d50875c29770c846a8ffcc4f8 index 0000000000000000000000000000000000000000..23ea41ff5dc43a915a263aeb1a246705de8bf9e1
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/LlamaLeaveCaravanEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/entity/LlamaLeaveCaravanEvent.java
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -107,31 +106,31 @@ index 0000000000000000000000000000000000000000..c268c35b541a222d50875c29770c846a
+import org.bukkit.entity.Llama; +import org.bukkit.entity.Llama;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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 + * Called when a Llama leaves a caravan
+ */ + */
+@NullMarked
+public class LlamaLeaveCaravanEvent extends EntityEvent { +public class LlamaLeaveCaravanEvent extends EntityEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ +
+ public LlamaLeaveCaravanEvent(@NotNull Llama llama) { + @ApiStatus.Internal
+ public LlamaLeaveCaravanEvent(Llama llama) {
+ super(llama); + super(llama);
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Llama getEntity() { + public Llama getEntity() {
+ return (Llama) entity; + return (Llama) entity;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..25e92af7710316ed2afedf846a59dbd672869b51 index 0000000000000000000000000000000000000000..e9637b82014fe3f4f4671b24d18f77f3d5e4b8ad
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/PlayerAFKEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/PlayerAFKEvent.java
@@ -0,0 +1,70 @@ @@ -0,0 +1,71 @@
+package org.purpurmc.purpur.event; +package org.purpurmc.purpur.event;
+ +
+import org.bukkit.entity.Player; +import org.bukkit.entity.Player;
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerEvent;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+ +
+@NullMarked
+public class PlayerAFKEvent extends PlayerEvent implements Cancellable { +public class PlayerAFKEvent extends PlayerEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final boolean setAfk; + private final boolean setAfk;
+ private boolean shouldKick; + private boolean shouldKick;
+ private String broadcast; + private @Nullable String broadcast;
+ private boolean cancel; + 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); + super(player, async);
+ this.setAfk = setAfk; + this.setAfk = setAfk;
+ this.shouldKick = shouldKick; + this.shouldKick = shouldKick;
@@ -100,12 +103,10 @@ index 0000000000000000000000000000000000000000..25e92af7710316ed2afedf846a59dbd6
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798702a8179 index 0000000000000000000000000000000000000000..55feef2321c7d966c72a33a58cf10136a9cacfa6
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/ExecuteCommandEvent.java
@@ -0,0 +1,130 @@ @@ -0,0 +1,127 @@
+package org.purpurmc.purpur.event; +package org.purpurmc.purpur.event;
+ +
+import com.google.common.base.Preconditions; +import com.google.common.base.Preconditions;
@@ -51,21 +51,24 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.Event; +import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+ +
+/** +/**
+ * This event is called whenever someone runs a command + * This event is called whenever someone runs a command
+ */ + */
+@NullMarked
+public class ExecuteCommandEvent extends Event implements Cancellable { +public class ExecuteCommandEvent extends Event implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean cancel = false; + private boolean cancel = false;
+ private CommandSender sender; + private CommandSender sender;
+ private Command command; + private Command command;
+ private String label; + 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.sender = sender;
+ this.command = command; + this.command = command;
+ this.label = label; + this.label = label;
@@ -77,7 +80,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @return Command the player is attempting to execute + * @return Command the player is attempting to execute
+ */ + */
+ @NotNull
+ public Command getCommand() { + public Command getCommand() {
+ return command; + return command;
+ } + }
@@ -88,7 +90,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * @param command New command that the player will execute + * @param command New command that the player will execute
+ * @throws IllegalArgumentException if command is null or empty + * @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"); + Preconditions.checkArgument(command != null, "Command cannot be null");
+ this.command = command; + this.command = command;
+ } + }
@@ -98,7 +100,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @return Sender this command will be executed as + * @return Sender this command will be executed as
+ */ + */
+ @NotNull
+ public CommandSender getSender() { + public CommandSender getSender() {
+ return sender; + return sender;
+ } + }
@@ -109,7 +110,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * @param sender New sender which this event will execute as + * @param sender New sender which this event will execute as
+ * @throws IllegalArgumentException if the sender provided is null + * @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"); + Preconditions.checkArgument(sender != null, "Sender cannot be null");
+ this.sender = sender; + this.sender = sender;
+ } + }
@@ -119,7 +120,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @return Label used to execute this command + * @return Label used to execute this command
+ */ + */
+ @NotNull
+ public String getLabel() { + public String getLabel() {
+ return label; + return label;
+ } + }
@@ -129,7 +129,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @param label Label used + * @param label Label used
+ */ + */
+ public void setLabel(@NotNull String label) { + public void setLabel(String label) {
+ this.label = label; + this.label = label;
+ } + }
+ +
@@ -138,7 +138,6 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @return Args passed to the command + * @return Args passed to the command
+ */ + */
+ @NotNull
+ public String[] getArgs() { + public String[] getArgs() {
+ return args; + return args;
+ } + }
@@ -148,7 +147,7 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ * + *
+ * @param args Args passed to the command + * @param args Args passed to the command
+ */ + */
+ public void setArgs(@NotNull String[] args) { + public void setArgs(String[] args) {
+ this.args = args; + this.args = args;
+ } + }
+ +
@@ -162,13 +161,11 @@ index 0000000000000000000000000000000000000000..bc590c4d49d32f4365a50ceb5785e798
+ this.cancel = cancel; + this.cancel = cancel;
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0defc099dc index 0000000000000000000000000000000000000000..795c558b481f4e2a550925bd88b8e7d41711456f
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetSpawnerTypeWithEggEvent.java
@@ -0,0 +1,85 @@ @@ -0,0 +1,83 @@
+package org.purpurmc.purpur.event; +package org.purpurmc.purpur.event;
+ +
+import org.bukkit.block.Block; +import org.bukkit.block.Block;
@@ -19,8 +19,10 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.player.PlayerEvent; +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 { +public class PlayerSetSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Block block; + private final Block block;
@@ -28,7 +30,8 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ private EntityType type; + private EntityType type;
+ private boolean cancel; + 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); + super(player);
+ this.block = block; + this.block = block;
+ this.spawner = spawner; + this.spawner = spawner;
@@ -40,7 +43,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ * + *
+ * @return Spawner Block + * @return Spawner Block
+ */ + */
+ @NotNull
+ public Block getBlock() { + public Block getBlock() {
+ return block; + return block;
+ } + }
@@ -50,7 +52,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ * + *
+ * @return Spawner state + * @return Spawner state
+ */ + */
+ @NotNull
+ public CreatureSpawner getSpawner() { + public CreatureSpawner getSpawner() {
+ return spawner; + return spawner;
+ } + }
@@ -60,7 +61,6 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ * + *
+ * @return EntityType being set + * @return EntityType being set
+ */ + */
+ @NotNull
+ public EntityType getEntityType() { + public EntityType getEntityType() {
+ return type; + return type;
+ } + }
@@ -70,7 +70,7 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ * + *
+ * @param type EntityType to set + * @param type EntityType to set
+ */ + */
+ public void setEntityType(@NotNull EntityType type) { + public void setEntityType(EntityType type) {
+ this.type = type; + this.type = type;
+ } + }
+ +
@@ -85,22 +85,20 @@ index 0000000000000000000000000000000000000000..519809eab5d926dc7b0a7bad5d446d0d
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }
+} +}
diff --git a/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java 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 new file mode 100644
index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a368311f28d index 0000000000000000000000000000000000000000..1d4dbf60a182a2a5f93c449e387b82743d20616c
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/PlayerSetTrialSpawnerTypeWithEggEvent.java
@@ -0,0 +1,85 @@ @@ -0,0 +1,83 @@
+package org.purpurmc.purpur.event; +package org.purpurmc.purpur.event;
+ +
+import org.bukkit.block.Block; +import org.bukkit.block.Block;
@@ -110,8 +108,10 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.player.PlayerEvent; +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 { +public class PlayerSetTrialSpawnerTypeWithEggEvent extends PlayerEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Block block; + private final Block block;
@@ -119,7 +119,8 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ private EntityType type; + private EntityType type;
+ private boolean cancel; + 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); + super(player);
+ this.block = block; + this.block = block;
+ this.spawner = spawner; + this.spawner = spawner;
@@ -131,7 +132,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ * + *
+ * @return Spawner Block + * @return Spawner Block
+ */ + */
+ @NotNull
+ public Block getBlock() { + public Block getBlock() {
+ return block; + return block;
+ } + }
@@ -141,7 +141,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ * + *
+ * @return Spawner state + * @return Spawner state
+ */ + */
+ @NotNull
+ public TrialSpawner getSpawner() { + public TrialSpawner getSpawner() {
+ return spawner; + return spawner;
+ } + }
@@ -151,7 +150,6 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ * + *
+ * @return EntityType being set + * @return EntityType being set
+ */ + */
+ @NotNull
+ public EntityType getEntityType() { + public EntityType getEntityType() {
+ return type; + return type;
+ } + }
@@ -161,7 +159,7 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ * + *
+ * @param type EntityType to set + * @param type EntityType to set
+ */ + */
+ public void setEntityType(@NotNull EntityType type) { + public void setEntityType(EntityType type) {
+ this.type = type; + this.type = type;
+ } + }
+ +
@@ -176,12 +174,10 @@ index 0000000000000000000000000000000000000000..c8d206abf8f6a08f746322e63d198a36
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..b363c91a29f826910db22f2643decf996a067ab5 index 0000000000000000000000000000000000000000..b2199854b5c7e74a673cbadbe584e5aaebbe3883
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilTakeResultEvent.java +++ 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; +package org.purpurmc.purpur.event.inventory;
+ +
+import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.HumanEntity;
@@ -105,52 +105,50 @@ index 0000000000000000000000000000000000000000..b363c91a29f826910db22f2643decf99
+import org.bukkit.inventory.AnvilInventory; +import org.bukkit.inventory.AnvilInventory;
+import org.bukkit.inventory.InventoryView; +import org.bukkit.inventory.InventoryView;
+import org.bukkit.inventory.ItemStack; +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 + * Called when a player takes the result item out of an anvil
+ */ + */
+@NullMarked
+public class AnvilTakeResultEvent extends InventoryEvent { +public class AnvilTakeResultEvent extends InventoryEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Player player; + private final Player player;
+ private final ItemStack result; + 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); + super(view);
+ this.player = (Player) player; + this.player = (Player) player;
+ this.result = result; + this.result = result;
+ } + }
+ +
+ @NotNull
+ public Player getPlayer() { + public Player getPlayer() {
+ return player; + return player;
+ } + }
+ +
+ @NotNull
+ public ItemStack getResult() { + public ItemStack getResult() {
+ return result; + return result;
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public AnvilInventory getInventory() { + public AnvilInventory getInventory() {
+ return (AnvilInventory) super.getInventory(); + return (AnvilInventory) super.getInventory();
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..fd6a5a3589d436c2aaf988fd305899695799d3bb index 0000000000000000000000000000000000000000..4293c4a57c1c054e8248b7712e8664bd4cb1a972
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilUpdateResultEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/inventory/AnvilUpdateResultEvent.java
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
@@ -160,31 +158,31 @@ index 0000000000000000000000000000000000000000..fd6a5a3589d436c2aaf988fd30589969
+import org.bukkit.event.inventory.InventoryEvent; +import org.bukkit.event.inventory.InventoryEvent;
+import org.bukkit.inventory.AnvilInventory; +import org.bukkit.inventory.AnvilInventory;
+import org.bukkit.inventory.InventoryView; +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 + * Called when anvil slots change, triggering the result slot to be updated
+ */ + */
+@NullMarked
+public class AnvilUpdateResultEvent extends InventoryEvent { +public class AnvilUpdateResultEvent extends InventoryEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ +
+ public AnvilUpdateResultEvent(@NotNull InventoryView view) { + @ApiStatus.Internal
+ public AnvilUpdateResultEvent(InventoryView view) {
+ super(view); + super(view);
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public AnvilInventory getInventory() { + public AnvilInventory getInventory() {
+ return (AnvilInventory) super.getInventory(); + return (AnvilInventory) super.getInventory();
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a176a234d5 index 0000000000000000000000000000000000000000..31cce9f4e398135016114b96254376325a22ba7c
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/player/PlayerBookTooLargeEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/player/PlayerBookTooLargeEvent.java
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
@@ -17,11 +17,13 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.player.PlayerEvent; +import org.bukkit.event.player.PlayerEvent;
+import org.bukkit.inventory.ItemStack; +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 + * Called when a player tries to bypass book limitations
+ */ + */
+@NullMarked
+public class PlayerBookTooLargeEvent extends PlayerEvent { +public class PlayerBookTooLargeEvent extends PlayerEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final ItemStack book; + private final ItemStack book;
@@ -31,7 +33,8 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1
+ * @param player The player + * @param player The player
+ * @param book The book + * @param book The book
+ */ + */
+ public PlayerBookTooLargeEvent(@NotNull Player player, @NotNull ItemStack book) { + @ApiStatus.Internal
+ public PlayerBookTooLargeEvent(Player player, ItemStack book) {
+ super(player, !Bukkit.isPrimaryThread()); + super(player, !Bukkit.isPrimaryThread());
+ this.book = book; + this.book = book;
+ } + }
@@ -41,7 +44,6 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1
+ * + *
+ * @return The book + * @return The book
+ */ + */
+ @NotNull
+ public ItemStack getBook() { + public ItemStack getBook() {
+ return book; + return book;
+ } + }
@@ -65,12 +67,10 @@ index 0000000000000000000000000000000000000000..c88394336bc9ab0f66a2af24d393f4a1
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -18,35 +18,35 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
diff --git a/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java b/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java 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 new file mode 100644
index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7efeb818cd index 0000000000000000000000000000000000000000..daf3bbf83ee76322828a38814b483fa2b337bd60
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/EntityTeleportHinderedEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.entity.Entity; +import org.bukkit.entity.Entity;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityEvent;
+import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+ +
+/** +/**
+ * Fired when an entity is hindered from teleporting. + * Fired when an entity is hindered from teleporting.
+ */ + */
+@NullMarked
+public class EntityTeleportHinderedEvent extends EntityEvent { +public class EntityTeleportHinderedEvent extends EntityEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ +
+ @NotNull
+ private final Reason reason; + private final Reason reason;
+ +
+ @Nullable + private final @Nullable TeleportCause teleportCause;
+ private final TeleportCause teleportCause;
+ +
+ private boolean retry = false; + private boolean retry = false;
+ +
+ public EntityTeleportHinderedEvent(@NotNull Entity what, @NotNull Reason reason, + @ApiStatus.Internal
+ @Nullable TeleportCause teleportCause) { + public EntityTeleportHinderedEvent(Entity what, Reason reason, @Nullable TeleportCause teleportCause) {
+ super(what); + super(what);
+ this.reason = reason; + this.reason = reason;
+ this.teleportCause = teleportCause; + this.teleportCause = teleportCause;
@@ -55,7 +55,6 @@ index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7e
+ /** + /**
+ * @return why the teleport was hindered. + * @return why the teleport was hindered.
+ */ + */
+ @NotNull
+ public Reason getReason() { + public Reason getReason() {
+ return reason; + return reason;
+ } + }
@@ -106,12 +105,10 @@ index 0000000000000000000000000000000000000000..c66eb163877e872f234d86dc244cab7e
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b6c16b0c8 index 0000000000000000000000000000000000000000..d6db2d355553c9c54b83328d237b9c75e7a8e375
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/inventory/GrindstoneTakeResultEvent.java +++ 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; +package org.purpurmc.purpur.event.inventory;
+ +
+import org.bukkit.entity.HumanEntity; +import org.bukkit.entity.HumanEntity;
@@ -19,35 +19,35 @@ index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b
+import org.bukkit.inventory.GrindstoneInventory; +import org.bukkit.inventory.GrindstoneInventory;
+import org.bukkit.inventory.InventoryView; +import org.bukkit.inventory.InventoryView;
+import org.bukkit.inventory.ItemStack; +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 + * Called when a player takes the result item out of a Grindstone
+ */ + */
+@NullMarked
+public class GrindstoneTakeResultEvent extends InventoryEvent { +public class GrindstoneTakeResultEvent extends InventoryEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Player player; + private final Player player;
+ private final ItemStack result; + private final ItemStack result;
+ private int experienceAmount; + 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); + super(view);
+ this.player = (Player) player; + this.player = (Player) player;
+ this.result = result; + this.result = result;
+ this.experienceAmount = experienceAmount; + this.experienceAmount = experienceAmount;
+ } + }
+ +
+ @NotNull
+ public Player getPlayer() { + public Player getPlayer() {
+ return player; + return player;
+ } + }
+ +
+ @NotNull
+ public ItemStack getResult() { + public ItemStack getResult() {
+ return result; + return result;
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public GrindstoneInventory getInventory() { + public GrindstoneInventory getInventory() {
+ return (GrindstoneInventory) super.getInventory(); + return (GrindstoneInventory) super.getInventory();
@@ -73,13 +73,11 @@ index 0000000000000000000000000000000000000000..d4ccbce1dc8817dcc97c7cdce65d099b
+ this.experienceAmount = experienceAmount; + this.experienceAmount = experienceAmount;
+ } + }
+ +
+ @NotNull
+ @Override + @Override
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567ee0290d2 index 0000000000000000000000000000000000000000..7f631a41abee4640a37339a7896ce96e61747735
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeFoundFlowerEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeFoundFlowerEvent.java
@@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
@@ -16,23 +16,25 @@ index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567
+import org.bukkit.entity.Bee; +import org.bukkit.entity.Bee;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityEvent;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+ +
+/** +/**
+ * Called when a bee targets a flower + * Called when a bee targets a flower
+ */ + */
+@NullMarked
+public class BeeFoundFlowerEvent extends EntityEvent { +public class BeeFoundFlowerEvent extends EntityEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Location location; + private final Location location;
+ +
+ public BeeFoundFlowerEvent(@NotNull Bee bee, @Nullable Location location) { + @ApiStatus.Internal
+ public BeeFoundFlowerEvent(Bee bee, @Nullable Location location) {
+ super(bee); + super(bee);
+ this.location = location; + this.location = location;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Bee getEntity() { + public Bee getEntity() {
+ return (Bee) super.getEntity(); + return (Bee) super.getEntity();
+ } + }
@@ -48,44 +50,44 @@ index 0000000000000000000000000000000000000000..833f46d1941f377765132fc528c45567
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..ae0bb654745724889c67fae9072ae90ea3778ba4 index 0000000000000000000000000000000000000000..e260145d6dc556bbe9e3654296b965c4e393084d
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeStartedPollinatingEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.Location; +import org.bukkit.Location;
+import org.bukkit.entity.Bee; +import org.bukkit.entity.Bee;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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 + * Called when a bee starts pollinating
+ */ + */
+@NullMarked
+public class BeeStartedPollinatingEvent extends EntityEvent { +public class BeeStartedPollinatingEvent extends EntityEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Location location; + private final Location location;
+ +
+ public BeeStartedPollinatingEvent(@NotNull Bee bee, @NotNull Location location) { + @ApiStatus.Internal
+ public BeeStartedPollinatingEvent(Bee bee, Location location) {
+ super(bee); + super(bee);
+ this.location = location; + this.location = location;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Bee getEntity() { + public Bee getEntity() {
+ return (Bee) super.getEntity(); + return (Bee) super.getEntity();
+ } + }
@@ -95,25 +97,22 @@ index 0000000000000000000000000000000000000000..ae0bb654745724889c67fae9072ae90e
+ * + *
+ * @return The location of the flower + * @return The location of the flower
+ */ + */
+ @NotNull
+ public Location getLocation() { + public Location getLocation() {
+ return this.location; + return this.location;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea69a41f32e index 0000000000000000000000000000000000000000..8b2b351d620c749cdf58d7e824b55cf55578fde6
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeStopPollinatingEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/entity/BeeStopPollinatingEvent.java
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
@@ -123,25 +122,27 @@ index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea6
+import org.bukkit.entity.Bee; +import org.bukkit.entity.Bee;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +import org.bukkit.event.entity.EntityEvent;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NullMarked;
+import org.jspecify.annotations.Nullable;
+ +
+/** +/**
+ * Called when a bee stops pollinating + * Called when a bee stops pollinating
+ */ + */
+@NullMarked
+public class BeeStopPollinatingEvent extends EntityEvent { +public class BeeStopPollinatingEvent extends EntityEvent {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final Location location; + private final Location location;
+ private final boolean success; + 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); + super(bee);
+ this.location = location; + this.location = location;
+ this.success = success; + this.success = success;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Bee getEntity() { + public Bee getEntity() {
+ return (Bee) super.getEntity(); + return (Bee) super.getEntity();
+ } + }
@@ -167,12 +168,10 @@ index 0000000000000000000000000000000000000000..ff3c9f075be2f624af8b0ce5fffc5ea6
+ +
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f87060f4c7 index 0000000000000000000000000000000000000000..cbdad4cf09c170064a45644efdf7aa0b28608301
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/language/Language.java +++ b/src/main/java/org/purpurmc/purpur/language/Language.java
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
+package org.purpurmc.purpur.language; +package org.purpurmc.purpur.language;
+ +
+import net.kyori.adventure.translation.Translatable; +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 + * Represents a language that can translate translation keys
+ */ + */
+@NullMarked
+public abstract class Language { +public abstract class Language {
+ private static Language language; + private static @Nullable Language language;
+ +
+ /** + /**
+ * Returns the default language of the server + * Returns the default language of the server
+ */ + */
+ @NotNull + @Nullable
+ public static Language getLanguage() { + public static Language getLanguage() {
+ return language; + return language;
+ } + }
+ +
+ public static void setLanguage(@NotNull Language language) { + public static void setLanguage(Language language) {
+ if (Language.language != null) { + if (Language.language != null) {
+ throw new UnsupportedOperationException("Cannot redefine singleton Language"); + throw new UnsupportedOperationException("Cannot redefine singleton Language");
+ } + }
@@ -41,14 +43,14 @@ index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f8
+ * @param key The translation key + * @param key The translation key
+ * @return Whether this language can translate the 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 + * Checks if a certain translation key is translatable with this language
+ * @param key The translation key + * @param key The translation key
+ * @return Whether this language can translate the key + * @return Whether this language can translate the key
+ */ + */
+ public boolean has(@NotNull Translatable key) { + public boolean has(Translatable key) {
+ return has(key.translationKey()); + return has(key.translationKey());
+ } + }
+ +
@@ -57,16 +59,14 @@ index 0000000000000000000000000000000000000000..38483d908ed830e97883733bee2370f8
+ * @param key The translation key + * @param key The translation key
+ * @return The translated key, or the translation key if it couldn't be translated + * @return The translated key, or the translation key if it couldn't be translated
+ */ + */
+ @NotNull + abstract public String getOrDefault(String key);
+ abstract public String getOrDefault(@NotNull String key);
+ +
+ /** + /**
+ * Translates a translation key to this language + * Translates a translation key to this language
+ * @param key The translation key + * @param key The translation key
+ * @return The translated key, or the translation key if it couldn't be translated + * @return The translated key, or the translation key if it couldn't be translated
+ */ + */
+ @NotNull + public String getOrDefault(Translatable key) {
+ public String getOrDefault(@NotNull Translatable key) {
+ return getOrDefault(key.translationKey()); + return getOrDefault(key.translationKey());
+ } + }
+} +}

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d97b94b5a index 0000000000000000000000000000000000000000..f0a7fe694db145294ff93d320382d1baecc68702
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/GoatRamEntityEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.entity.Goat; +import org.bukkit.entity.Goat;
@@ -17,17 +17,20 @@ index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent; +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 + * Called when a goat rams an entity
+ */ + */
+@NullMarked
+public class GoatRamEntityEvent extends EntityEvent implements Cancellable { +public class GoatRamEntityEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private final LivingEntity rammedEntity; + private final LivingEntity rammedEntity;
+ private boolean cancelled; + private boolean cancelled;
+ +
+ public GoatRamEntityEvent(@NotNull Goat goat, @NotNull LivingEntity rammedEntity) { + @ApiStatus.Internal
+ public GoatRamEntityEvent(Goat goat, LivingEntity rammedEntity) {
+ super(goat); + super(goat);
+ this.rammedEntity = rammedEntity; + this.rammedEntity = rammedEntity;
+ } + }
@@ -37,24 +40,20 @@ index 0000000000000000000000000000000000000000..f62c14f3d4999e9112c1c73642aa337d
+ * + *
+ * @return The rammed entity + * @return The rammed entity
+ */ + */
+ @NotNull
+ public LivingEntity getRammedEntity() { + public LivingEntity getRammedEntity() {
+ return this.rammedEntity; + return this.rammedEntity;
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public Goat getEntity() { + public Goat getEntity() {
+ return (Goat) super.getEntity(); + return (Goat) super.getEntity();
+ } + }
+ +
+ @Override + @Override
+ @NotNull
+ public HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }

View File

@@ -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 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 new file mode 100644
index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d5882b4e0 index 0000000000000000000000000000000000000000..4b4d32c58224e1208f14024ca214078a37550bb5
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java +++ b/src/main/java/org/purpurmc/purpur/event/PreBlockExplodeEvent.java
@@ -0,0 +1,54 @@ @@ -0,0 +1,56 @@
+package org.purpurmc.purpur.event; +package org.purpurmc.purpur.event;
+ +
+import org.bukkit.ExplosionResult; +import org.bukkit.ExplosionResult;
@@ -18,18 +18,21 @@ index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.block.BlockExplodeEvent; +import org.bukkit.event.block.BlockExplodeEvent;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import java.util.Collections; +import java.util.Collections;
+import org.jspecify.annotations.NullMarked;
+ +
+/** +/**
+ * Called before a block's explosion is processed + * Called before a block's explosion is processed
+ */ + */
+@NullMarked
+public class PreBlockExplodeEvent extends BlockExplodeEvent implements Cancellable { +public class PreBlockExplodeEvent extends BlockExplodeEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean cancelled; + private boolean cancelled;
+ private final float yield; + 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); + super(what, explodedBlockState, Collections.emptyList(), yield, result);
+ this.yield = yield; + this.yield = yield;
+ this.cancelled = false; + this.cancelled = false;
@@ -55,21 +58,20 @@ index 0000000000000000000000000000000000000000..b22f28357bec72256b1f5f96e97d228d
+ } + }
+ +
+ @Override + @Override
+ public @NotNull HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + 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 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 new file mode 100644
index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6ca81f96e index 0000000000000000000000000000000000000000..d56fb066455007cc710f7ba34ba722af6e89bc1d
--- /dev/null --- /dev/null
+++ b/src/main/java/org/purpurmc/purpur/event/entity/PreEntityExplodeEvent.java +++ 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; +package org.purpurmc.purpur.event.entity;
+ +
+import org.bukkit.ExplosionResult; +import org.bukkit.ExplosionResult;
@@ -77,19 +79,22 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6
+import org.bukkit.event.Cancellable; +import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList; +import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityExplodeEvent;
+import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.ApiStatus;
+import java.util.Collections; +import java.util.Collections;
+import org.jspecify.annotations.NullMarked;
+ +
+/** +/**
+ * Called before an entity's explosion is processed + * Called before an entity's explosion is processed
+ */ + */
+@NullMarked
+public class PreEntityExplodeEvent extends EntityExplodeEvent implements Cancellable { +public class PreEntityExplodeEvent extends EntityExplodeEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList(); + private static final HandlerList handlers = new HandlerList();
+ private boolean cancelled; + private boolean cancelled;
+ private final float yield; + private final float yield;
+ private final Location location; + 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); + super(what, location, Collections.emptyList(), yield, result);
+ this.cancelled = false; + this.cancelled = false;
+ this.yield = yield; + this.yield = yield;
@@ -110,7 +115,6 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6
+ * + *
+ * @return The location of the explosion + * @return The location of the explosion
+ */ + */
+ @NotNull
+ public Location getLocation() { + public Location getLocation() {
+ return location; + return location;
+ } + }
@@ -126,11 +130,10 @@ index 0000000000000000000000000000000000000000..bd5e647d52b2c69da684bb246325e0d6
+ } + }
+ +
+ @Override + @Override
+ public @NotNull HandlerList getHandlers() { + public HandlerList getHandlers() {
+ return handlers; + return handlers;
+ } + }
+ +
+ @NotNull
+ public static HandlerList getHandlerList() { + public static HandlerList getHandlerList() {
+ return handlers; + return handlers;
+ } + }