mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-30 04:02:50 +01:00
c151c956e0
Fixes #10165
142 lines
4.4 KiB
Diff
142 lines
4.4 KiB
Diff
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
|
|
index 6e44845340f23a5b6ad8be46a1fa3dbb9dec5d67..a5e4b4447b5c68339d6b09749520048642a4eb83 100644
|
|
--- a/src/main/java/org/bukkit/entity/Player.java
|
|
+++ b/src/main/java/org/bukkit/entity/Player.java
|
|
@@ -275,6 +275,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..f7f864a2b46129e4d61bc87f3e23c343417aa094 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,77 @@ 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,
|
|
+
|
|
+ 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
|
|
}
|