2021-06-11 14:02:28 +02:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Aikar <aikar@aikar.co>
|
|
|
|
Date: Sat, 28 Apr 2018 10:28:50 -0400
|
|
|
|
Subject: [PATCH] Add Ban Methods to Player Objects
|
|
|
|
|
|
|
|
Allows a more logical API for banning players.
|
|
|
|
|
|
|
|
player.banPlayer("Breaking the rules");
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/OfflinePlayer.java b/src/main/java/org/bukkit/OfflinePlayer.java
|
2024-01-26 20:17:06 +01:00
|
|
|
index abbf3d6f11350ab2dd47a277771d9f46221036bd..d8a3b6cb2d0cb035b2ab09e0327bc4f0be457ff7 100644
|
2021-06-11 14:02:28 +02:00
|
|
|
--- a/src/main/java/org/bukkit/OfflinePlayer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/OfflinePlayer.java
|
2024-03-03 21:54:52 +01:00
|
|
|
@@ -67,6 +67,73 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
2021-06-11 14:02:28 +02:00
|
|
|
* @return true if banned, otherwise false
|
|
|
|
*/
|
|
|
|
public boolean isBanned();
|
|
|
|
+ // Paper start
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans this player from the server
|
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @NotNull
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2021-06-11 14:02:28 +02:00
|
|
|
+ public default BanEntry banPlayer(@Nullable String reason) {
|
|
|
|
+ return banPlayer(reason, null, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans this player from the server
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param source Source of the ban, or null for default
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @NotNull
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2021-06-11 14:02:28 +02:00
|
|
|
+ public default BanEntry banPlayer(@Nullable String reason, @Nullable String source) {
|
|
|
|
+ return banPlayer(reason, null, source);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans this player from the server
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @NotNull
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2021-06-11 14:02:28 +02:00
|
|
|
+ public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires) {
|
|
|
|
+ return banPlayer(reason, expires, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans this player from the server
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @param source Source of the ban or null for default
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @NotNull
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2021-06-11 14:02:28 +02:00
|
|
|
+ public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
|
|
|
|
+ return banPlayer(reason, expires, source, true);
|
|
|
|
+ }
|
2024-03-03 21:54:52 +01:00
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)}
|
|
|
|
+ */
|
2021-06-11 14:02:28 +02:00
|
|
|
+ @NotNull
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2021-06-11 14:02:28 +02:00
|
|
|
+ public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source, boolean kickIfOnline) {
|
|
|
|
+ BanEntry banEntry = Bukkit.getServer().getBanList(BanList.Type.NAME).addBan(getName(), reason, expires, source);
|
|
|
|
+ if (kickIfOnline && isOnline()) {
|
|
|
|
+ getPlayer().kickPlayer(reason);
|
|
|
|
+ }
|
|
|
|
+ return banEntry;
|
|
|
|
+ }
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
/**
|
2023-07-04 10:22:56 +02:00
|
|
|
* Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will
|
2021-06-11 14:02:28 +02:00
|
|
|
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
2024-03-03 21:54:52 +01:00
|
|
|
index b1d93f16c55d3fa9a157cf26286936a799ca8025..0c13a41b442b441cba322e03a6cd4da7efb40902 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-03-03 21:54:52 +01:00
|
|
|
@@ -1173,6 +1173,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
2021-06-11 14:02:28 +02:00
|
|
|
public void sendMap(@NotNull MapView map);
|
|
|
|
|
|
|
|
// Paper start
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the Profile and IP address currently used by the player.
|
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ // For reference, Bukkit defines this as nullable, while they impl isn't, we'll follow API.
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerFull(reason, null, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the Profile and IP address currently used by the player.
|
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @param source Source of ban, or null for default
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable String source) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerFull(reason, null, source);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the Profile and IP address currently used by the player.
|
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerFull(reason, expires, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the Profile and IP address currently used by the player.
|
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @param source Source of the ban, or null for default
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ banPlayer(reason, expires, source);
|
|
|
|
+ return banPlayerIP(reason, expires, source, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @param kickPlayer Whether or not to kick the player afterwards
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, boolean kickPlayer) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, null, null, kickPlayer);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @param source Source of ban, or null for default
|
|
|
|
+ * @param kickPlayer Whether or not to kick the player afterwards
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source, boolean kickPlayer) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, null, source, kickPlayer);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @param kickPlayer Whether or not to kick the player afterwards
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, boolean kickPlayer) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, expires, null, kickPlayer);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ *
|
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, null, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Permanently Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for ban
|
|
|
|
+ * @param source Source of ban, or null for default
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, null, source);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, expires, null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
2023-03-31 06:09:13 +02:00
|
|
|
+ * @param source Source of the ban or null for default
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
|
2021-06-11 14:02:28 +02:00
|
|
|
+ return banPlayerIP(reason, expires, source, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * Bans the IP address currently used by the player.
|
2022-02-12 14:20:33 +01:00
|
|
|
+ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param reason Reason for Ban
|
|
|
|
+ * @param expires When to expire the ban
|
2023-03-31 06:09:13 +02:00
|
|
|
+ * @param source Source of the ban or null for default
|
2021-06-11 14:02:28 +02:00
|
|
|
+ * @param kickPlayer if the targeted player should be kicked
|
|
|
|
+ * @return Ban Entry
|
2024-03-03 21:54:52 +01:00
|
|
|
+ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
|
2021-06-11 14:02:28 +02:00
|
|
|
+ */
|
|
|
|
+ @Nullable
|
2024-03-03 21:54:52 +01:00
|
|
|
+ @Deprecated
|
2022-02-12 14:20:33 +01:00
|
|
|
+ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source, boolean kickPlayer) {
|
|
|
|
+ org.bukkit.BanEntry banEntry = org.bukkit.Bukkit.getServer().getBanList(org.bukkit.BanList.Type.IP).addBan(getAddress().getAddress().getHostAddress(), reason, expires, source);
|
2021-06-11 14:02:28 +02:00
|
|
|
+ if (kickPlayer && isOnline()) {
|
|
|
|
+ getPlayer().kickPlayer(reason);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return banEntry;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sends an Action Bar message to the client.
|