mirror of
https://github.com/CivMC/Civ.git
synced 2026-07-18 00:20:44 +00:00
get ban via player instead of share, including transitive
This commit is contained in:
@@ -11,6 +11,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static com.programmerdan.minecraft.banstick.handler.BanHandler.getActivePlayerBanOrTransitive;
|
||||
import static com.programmerdan.minecraft.banstick.handler.BanStickEventHandler.doKickWithCheckup;
|
||||
|
||||
/**
|
||||
@@ -250,10 +251,9 @@ public final class BSShares {
|
||||
|
||||
// this happens after the player has already logged in
|
||||
// if the player has been associated with a banned share, kick them
|
||||
final List<BSBan> bans = BSBan.byShare(share, false);
|
||||
if (!bans.isEmpty()) {
|
||||
final BSBan ban = bans.get(0);
|
||||
|
||||
BSBan ban1 = getActivePlayerBanOrTransitive(share.getFirstPlayer().getUUID());
|
||||
BSBan ban = ban1 != null ? ban1 : getActivePlayerBanOrTransitive(share.getSecondPlayer().getUUID());
|
||||
if (ban != null) {
|
||||
BanStick.getPlugin().info("New overlap between {0} and {1} resulting in at least one ban; kicking...", forPlayer.getName(), player.getName());
|
||||
doKickWithCheckup(player.getUUID(), ban);
|
||||
}
|
||||
|
||||
@@ -336,27 +336,37 @@ public final class BanHandler {
|
||||
/**
|
||||
* Checks whether a player is banned.
|
||||
*
|
||||
* @param player The player UUID to check if banned.
|
||||
* @param puuid The player UUID to check if banned.
|
||||
* @return Returns true if the player is banned.
|
||||
*/
|
||||
public static boolean isPlayerBanned(final UUID player) {
|
||||
final BSPlayer bsPlayer = BSPlayer.byUUID(player);
|
||||
public static boolean isPlayerBanned(final UUID puuid) {
|
||||
BSBan ban = getActivePlayerBanOrTransitive(puuid);
|
||||
return ban != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether a player is banned, and returns the ban.
|
||||
*
|
||||
* @param puuid The player UUID to check if banned.
|
||||
* @return Returns true if the player is banned.
|
||||
*/
|
||||
public static BSBan getActivePlayerBanOrTransitive(final UUID puuid) {
|
||||
final BSPlayer bsPlayer = BSPlayer.byUUID(puuid);
|
||||
if (bsPlayer == null) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
final BSBan bsBan = bsPlayer.getBan();
|
||||
if (bsBan != null && !bsBan.hasBanExpired()) {
|
||||
return true;
|
||||
return bsBan;
|
||||
}
|
||||
if (BanStick.getPlugin().getEventHandler().areTransitiveBansEnabled()) {
|
||||
for (final BSPlayer alt : bsPlayer.getTransitiveSharedPlayers(true)) {
|
||||
final BSBan bsAltBan = alt.getBan();
|
||||
if (bsAltBan != null && !bsAltBan.hasBanExpired()) {
|
||||
return true;
|
||||
return bsAltBan;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user