aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0287-Add-PlayerKickEvent-causes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0287-Add-PlayerKickEvent-causes.patch')
-rw-r--r--patches/api/0287-Add-PlayerKickEvent-causes.patch144
1 files changed, 144 insertions, 0 deletions
diff --git a/patches/api/0287-Add-PlayerKickEvent-causes.patch b/patches/api/0287-Add-PlayerKickEvent-causes.patch
new file mode 100644
index 0000000000..5bded2058c
--- /dev/null
+++ b/patches/api/0287-Add-PlayerKickEvent-causes.patch
@@ -0,0 +1,144 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sat, 15 May 2021 20:30:34 -0700
+Subject: [PATCH] Add PlayerKickEvent causes
+
+
+diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
+index 752b2bac47588c0f75a13a7e6ec2be3c2f5a149e..b177daa7a974125dc4ccf1bc6d119ad42dba3514 100644
+--- a/src/main/java/org/bukkit/entity/Player.java
++++ b/src/main/java/org/bukkit/entity/Player.java
+@@ -321,6 +321,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ * @param message kick message
+ */
+ void kick(final net.kyori.adventure.text.@Nullable Component message);
++
++ /**
++ * Kicks player with custom kick message and cause.
++ *
++ * @param message kick message
++ * @param cause kick cause
++ */
++ void kick(final net.kyori.adventure.text.@Nullable Component message, org.bukkit.event.player.PlayerKickEvent.@NotNull Cause cause);
+ // Paper end
+
+ /**
+diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
+index 997b06c19a5277656521e0e298f2958c209f1da1..b8bf61bea73086c61dce6230686e627dc324ebe0 100644
+--- a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
++++ b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
+@@ -12,6 +12,7 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private net.kyori.adventure.text.Component leaveMessage; // Paper
+ private net.kyori.adventure.text.Component kickReason; // Paper
++ private final Cause cause; // Paper
+ private boolean cancel;
+
+ @Deprecated // Paper
+@@ -19,14 +20,26 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
+ super(playerKicked);
+ this.kickReason = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(kickReason); // Paper
+ this.leaveMessage = net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(leaveMessage); // Paper
++ this.cause = Cause.UNKNOWN; // Paper
+ this.cancel = false;
+ }
+ // Paper start
++ @Deprecated
+ public PlayerKickEvent(@NotNull final Player playerKicked, @NotNull final net.kyori.adventure.text.Component kickReason, @NotNull final net.kyori.adventure.text.Component leaveMessage) {
+ super(playerKicked);
+ this.kickReason = kickReason;
+ this.leaveMessage = leaveMessage;
+ this.cancel = false;
++ this.cause = Cause.UNKNOWN;
++ }
++
++ @org.jetbrains.annotations.ApiStatus.Internal
++ public PlayerKickEvent(@NotNull final Player playerKicked, @NotNull final net.kyori.adventure.text.Component kickReason, @NotNull final net.kyori.adventure.text.Component leaveMessage, @NotNull final Cause cause) {
++ super(playerKicked);
++ this.kickReason = kickReason;
++ this.leaveMessage = leaveMessage;
++ this.cancel = false;
++ this.cause = cause;
+ }
+
+ /**
+@@ -132,4 +145,79 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
++ // Paper start
++ /**
++ * Gets the cause of this kick
++ *
++ * @return
++ */
++ @NotNull
++ public org.bukkit.event.player.PlayerKickEvent.Cause getCause() {
++ return cause;
++ }
++
++ public enum Cause {
++
++ PLUGIN,
++
++ WHITELIST,
++
++ BANNED,
++
++ IP_BANNED,
++
++ KICK_COMMAND,
++
++ FLYING_PLAYER,
++
++ FLYING_VEHICLE,
++
++ TIMEOUT,
++
++ IDLING,
++
++ INVALID_VEHICLE_MOVEMENT,
++
++ INVALID_PLAYER_MOVEMENT,
++
++ INVALID_ENTITY_ATTACKED,
++
++ INVALID_PAYLOAD,
++
++ INVALID_COOKIE,
++
++ SPAM,
++
++ ILLEGAL_ACTION,
++
++ ILLEGAL_CHARACTERS,
++
++ OUT_OF_ORDER_CHAT,
++
++ UNSIGNED_CHAT,
++
++ CHAT_VALIDATION_FAILED,
++
++ EXPIRED_PROFILE_PUBLIC_KEY,
++
++ INVALID_PUBLIC_KEY_SIGNATURE,
++
++ TOO_MANY_PENDING_CHATS,
++
++ SELF_INTERACTION,
++
++ DUPLICATE_LOGIN,
++
++ RESOURCE_PACK_REJECTION,
++
++ /**
++ * Spigot's restart command
++ */
++ RESTART_COMMAND,
++ /**
++ * Fallback cause
++ */
++ UNKNOWN,
++ }
++ // Paper end
+ }