2021-06-11 14:02:28 +02:00
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
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
2024-10-22 18:23:19 +02:00
index 7e2f2904cc6da994aaf8764399a836c5586cbd70..b39e8c1cdeee3d554839a055ccbae725aa3d66f5 100644
2021-06-11 14:02:28 +02:00
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
2024-10-22 18:23:19 +02:00
@@ -334,6 +334,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
2021-06-11 14:02:28 +02:00
* @param message kick message
*/
2023-03-23 17:49:24 +01:00
void kick(final net.kyori.adventure.text.@Nullable Component message);
2021-06-11 14:02:28 +02:00
+
+ /**
+ * Kicks player with custom kick message and cause.
+ *
+ * @param message kick message
+ * @param cause kick cause
+ */
2023-03-23 17:49:24 +01:00
+ void kick(final net.kyori.adventure.text.@Nullable Component message, org.bukkit.event.player.PlayerKickEvent.@NotNull Cause cause);
2021-06-11 14:02:28 +02:00
// Paper end
/**
diff --git a/src/main/java/org/bukkit/event/player/PlayerKickEvent.java b/src/main/java/org/bukkit/event/player/PlayerKickEvent.java
2024-04-28 03:18:20 +02:00
index 997b06c19a5277656521e0e298f2958c209f1da1..b8bf61bea73086c61dce6230686e627dc324ebe0 100644
2021-06-11 14:02:28 +02:00
--- 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
2022-06-05 10:43:06 +02:00
private boolean cancel;
2021-06-11 14:02:28 +02:00
@Deprecated // Paper
2023-12-09 00:13:02 +01:00
@@ -19,14 +20,26 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
2021-06-11 14:02:28 +02:00
super(playerKicked);
2022-05-26 21:12:14 +02:00
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
2021-06-11 14:02:28 +02:00
+ 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;
+ }
+
2023-12-09 00:13:02 +01:00
+ @org.jetbrains.annotations.ApiStatus.Internal
2021-06-11 14:02:28 +02:00
+ 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;
}
/**
2024-04-28 03:18:20 +02:00
@@ -132,4 +145,79 @@ public class PlayerKickEvent extends PlayerEvent implements Cancellable {
2021-06-11 14:02:28 +02:00
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,
+
2024-04-28 03:18:20 +02:00
+ INVALID_COOKIE,
+
2021-06-11 14:02:28 +02:00
+ SPAM,
+
+ ILLEGAL_ACTION,
+
+ ILLEGAL_CHARACTERS,
+
2022-07-29 18:31:02 +02:00
+ OUT_OF_ORDER_CHAT,
+
+ UNSIGNED_CHAT,
+
+ CHAT_VALIDATION_FAILED,
+
2022-12-08 19:23:12 +01:00
+ EXPIRED_PROFILE_PUBLIC_KEY,
+
+ INVALID_PUBLIC_KEY_SIGNATURE,
+
2022-07-29 18:31:02 +02:00
+ TOO_MANY_PENDING_CHATS,
+
2021-06-11 14:02:28 +02:00
+ SELF_INTERACTION,
+
+ DUPLICATE_LOGIN,
+
2021-06-15 05:50:26 +02:00
+ RESOURCE_PACK_REJECTION,
+
2021-06-11 14:02:28 +02:00
+ /**
+ * Spigot's restart command
+ */
+ RESTART_COMMAND,
+ /**
+ * Fallback cause
+ */
+ UNKNOWN,
+ }
+ // Paper end
}