diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java index 05013e6f4d..34e025dd57 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftOfflinePlayer.java @@ -2,6 +2,8 @@ package org.bukkit.craftbukkit; import com.mojang.authlib.GameProfile; import java.io.File; +import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @@ -115,9 +117,19 @@ public class CraftOfflinePlayer implements OfflinePlayer, ConfigurationSerializa return ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), reason, expires, source); } + @Override + public BanEntry ban(String reason, Instant expires, String source) { + return ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), reason, expires, source); + } + + @Override + public BanEntry ban(String reason, Duration duration, String source) { + return ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), reason, duration, source); + } + public void setBanned(boolean value) { if (value) { - ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), null, null, null); + ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), null, (Date) null, null); } else { ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).pardon(getPlayerProfile()); } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java index d1c94997bb..1e04631b0f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -27,6 +27,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -1725,7 +1726,7 @@ public final class CraftServer implements Server { public void banIP(InetAddress address) { Preconditions.checkArgument(address != null, "Address cannot be null."); - ((CraftIpBanList) this.getBanList(BanList.Type.IP)).addBan(address, null, null, null); + ((CraftIpBanList) this.getBanList(BanList.Type.IP)).addBan(address, null, (Date) null, null); } @Override diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftIpBanList.java b/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftIpBanList.java index 4f1fd304e4..46b47d5466 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftIpBanList.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftIpBanList.java @@ -4,6 +4,8 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.net.InetAddresses; import java.net.InetAddress; +import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.Set; import net.minecraft.server.players.IpBanEntry; @@ -52,6 +54,18 @@ public class CraftIpBanList implements org.bukkit.ban.IpBanList { return this.addBan(this.getIpFromAddress(target), reason, expires, source); } + @Override + public BanEntry addBan(InetAddress target, String reason, Instant expires, String source) { + Date date = expires != null ? Date.from(expires) : null; + return addBan(target, reason, date, source); + } + + @Override + public BanEntry addBan(InetAddress target, String reason, Duration duration, String source) { + Instant instant = duration != null ? Instant.now().plus(duration) : null; + return addBan(target, reason, instant, source); + } + @Override public Set getBanEntries() { ImmutableSet.Builder builder = ImmutableSet.builder(); diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java b/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java index 622fe2aaea..c7bf2cb854 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/ban/CraftProfileBanList.java @@ -3,6 +3,8 @@ package org.bukkit.craftbukkit.ban; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.mojang.authlib.GameProfile; +import java.time.Duration; +import java.time.Instant; import java.util.Date; import java.util.Set; import java.util.UUID; @@ -50,6 +52,18 @@ public class CraftProfileBanList implements ProfileBanList { return this.addBan(((CraftPlayerProfile) target).buildGameProfile(), reason, expires, source); } + @Override + public BanEntry addBan(PlayerProfile target, String reason, Instant expires, String source) { + Date date = expires != null ? Date.from(expires) : null; + return addBan(target, reason, date, source); + } + + @Override + public BanEntry addBan(PlayerProfile target, String reason, Duration duration, String source) { + Instant instant = duration != null ? Instant.now().plus(duration) : null; + return addBan(target, reason, instant, source); + } + @Override public Set getBanEntries() { ImmutableSet.Builder builder = ImmutableSet.builder(); diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 2d25ce6a05..8bb4889e0f 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -14,6 +14,8 @@ import java.lang.ref.WeakReference; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.SocketAddress; +import java.time.Duration; +import java.time.Instant; import java.util.ArrayList; import java.util.Collection; import java.util.Date; @@ -1199,6 +1201,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.ban(reason, expires, source, true); } + @Override + public BanEntry ban(String reason, Instant expires, String source) { + return ban(reason, expires != null ? Date.from(expires) : null, source); + } + + @Override + public BanEntry ban(String reason, Duration duration, String source) { + return ban(reason, duration != null ? Instant.now().plus(duration) : null, source); + } + @Override public BanEntry ban(String reason, Date expires, String source, boolean kickPlayer) { BanEntry banEntry = ((ProfileBanList) server.getBanList(BanList.Type.PROFILE)).addBan(getPlayerProfile(), reason, expires, source); @@ -1208,6 +1220,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return banEntry; } + @Override + public BanEntry ban(String reason, Instant instant, String source, boolean kickPlayer) { + return ban(reason, instant != null ? Date.from(instant) : null, source, kickPlayer); + } + + @Override + public BanEntry ban(String reason, Duration duration, String source, boolean kickPlayer) { + return ban(reason, duration != null ? Instant.now().plus(duration) : null, source, kickPlayer); + } + @Override public BanEntry banIp(String reason, Date expires, String source, boolean kickPlayer) { Preconditions.checkArgument(getAddress() != null, "The Address of this Player is null"); @@ -1218,6 +1240,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return banEntry; } + @Override + public BanEntry banIp(String reason, Instant instant, String source, boolean kickPlayer) { + return banIp(reason, instant != null ? Date.from(instant) : null, source, kickPlayer); + } + + @Override + public BanEntry banIp(String reason, Duration duration, String source, boolean kickPlayer) { + return banIp(reason, duration != null ? Instant.now().plus(duration) : null, source, kickPlayer); + } + @Override public boolean isWhitelisted() { return server.getHandle().getWhiteList().isWhiteListed(getProfile());