mirror of
https://github.com/PaperMC/Paper.git
synced 2025-03-23 15:29:34 +01:00
Add Ban Methods to Player Objects
Allows a more logical API for banning players. player.banPlayer("Breaking the rules");
This commit is contained in:
parent
a97f03a018
commit
92482f8e92
2 changed files with 247 additions and 0 deletions
|
@ -67,6 +67,73 @@ public interface OfflinePlayer extends ServerOperator, AnimalTamer, Configuratio
|
||||||
* @return true if banned, otherwise false
|
* @return true if banned, otherwise false
|
||||||
*/
|
*/
|
||||||
public boolean isBanned();
|
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
|
* Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will
|
||||||
|
|
|
@ -1255,6 +1255,186 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
|
||||||
public void sendMap(@NotNull MapView map);
|
public void sendMap(@NotNull MapView map);
|
||||||
|
|
||||||
// Paper start
|
// 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.
|
* Sends an Action Bar message to the client.
|
||||||
|
|
Loading…
Add table
Reference in a new issue