aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch')
-rw-r--r--patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch278
1 files changed, 278 insertions, 0 deletions
diff --git a/patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch
new file mode 100644
index 0000000000..8508d5aa31
--- /dev/null
+++ b/patches/api/0093-Add-Ban-Methods-to-Player-Objects.patch
@@ -0,0 +1,278 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+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
+index abbf3d6f11350ab2dd47a277771d9f46221036bd..a9d63b1630b05b86a0396355fcfee261bab96293 100644
+--- a/src/main/java/org/bukkit/OfflinePlayer.java
++++ b/src/main/java/org/bukkit/OfflinePlayer.java
+@@ -67,6 +67,73 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
+ * @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
++ * @deprecated use {@link #ban(String, Date, String)}
++ */
++ @NotNull
++ @Deprecated(since = "1.20.4")
++ 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
++ * @deprecated use {@link #ban(String, Date, String)}
++ */
++ @NotNull
++ @Deprecated(since = "1.20.4")
++ 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
++ * @deprecated use {@link #ban(String, Date, String)}
++ */
++ @NotNull
++ @Deprecated(since = "1.20.4")
++ 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
++ * @deprecated use {@link #ban(String, Date, String)}
++ */
++ @NotNull
++ @Deprecated(since = "1.20.4")
++ public default BanEntry banPlayer(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
++ return banPlayer(reason, expires, source, true);
++ }
++
++ /**
++ * @deprecated use {@link #ban(String, Date, String)}
++ */
++ @NotNull
++ @Deprecated(since = "1.20.4")
++ 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
+
+ /**
+ * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will
+diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
+index d8f97d8626850ed833b2dd32fab682cdf61a9948..8a0e8447a7c5241a53ae933229f369bf93300c72 100644
+--- a/src/main/java/org/bukkit/entity/Player.java
++++ b/src/main/java/org/bukkit/entity/Player.java
+@@ -1215,6 +1215,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
+ 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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ // For reference, Bukkit defines this as nullable, while they impl isn't, we'll follow API.
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason) {
++ 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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable String source) {
++ 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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires) {
++ 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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerFull(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
++ banPlayer(reason, expires, source);
++ return banPlayerIP(reason, expires, source, true);
++ }
++
++ /**
++ * Permanently Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ *
++ * @param reason Reason for ban
++ * @param kickPlayer Whether or not to kick the player afterwards
++ * @return Ban Entry
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, boolean kickPlayer) {
++ return banPlayerIP(reason, null, null, kickPlayer);
++ }
++
++ /**
++ * Permanently Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source, boolean kickPlayer) {
++ return banPlayerIP(reason, null, source, kickPlayer);
++ }
++
++ /**
++ * Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, boolean kickPlayer) {
++ return banPlayerIP(reason, expires, null, kickPlayer);
++ }
++
++ /**
++ * Permanently Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ *
++ * @param reason Reason for ban
++ * @return Ban Entry
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason) {
++ return banPlayerIP(reason, null, null);
++ }
++
++ /**
++ * Permanently Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @param reason Reason for ban
++ * @param source Source of ban, or null for default
++ * @return Ban Entry
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable String source) {
++ return banPlayerIP(reason, null, source);
++ }
++
++ /**
++ * Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @param reason Reason for Ban
++ * @param expires When to expire the ban
++ * @return Ban Entry
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires) {
++ return banPlayerIP(reason, expires, null);
++ }
++
++ /**
++ * Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @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
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ public default org.bukkit.BanEntry banPlayerIP(@Nullable String reason, @Nullable java.util.Date expires, @Nullable String source) {
++ return banPlayerIP(reason, expires, source, true);
++ }
++
++ /**
++ * Bans the IP address currently used by the player.
++ * Does not ban the Profile, use {@link #banPlayerFull(String, java.util.Date, String)}
++ * @param reason Reason for Ban
++ * @param expires When to expire the ban
++ * @param source Source of the ban or null for default
++ * @param kickPlayer if the targeted player should be kicked
++ * @return Ban Entry
++ * @deprecated use {@link #ban(String, Date, String)} and {@link #banIp(String, Date, String, boolean)}
++ */
++ @Nullable
++ @Deprecated(since = "1.20.4")
++ 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);
++ if (kickPlayer && isOnline()) {
++ getPlayer().kickPlayer(reason);
++ }
++
++ return banEntry;
++ }
+
+ /**
+ * Sends an Action Bar message to the client.