From 3ec18a783e93dedb3e00a9ce453c2cc09d4d6b4c Mon Sep 17 00:00:00 2001 From: Gjum Date: Tue, 26 Oct 2021 12:56:49 +0200 Subject: [PATCH] kick player if they have associated with a banned share --- .../minecraft/banstick/data/BSShares.java | 11 +++++++++++ .../banstick/handler/BanStickEventHandler.java | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/data/BSShares.java b/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/data/BSShares.java index b70100783..37989084e 100644 --- a/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/data/BSShares.java +++ b/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/data/BSShares.java @@ -11,6 +11,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import static com.programmerdan.minecraft.banstick.handler.BanStickEventHandler.doKickWithCheckup; + /** * BSShares DAO management object. * @@ -246,6 +248,15 @@ public final class BSShares { BanStick.getPlugin().info("Found new overlap between {0} and {1}", forPlayer.getName(), player.getName()); + // this happens after the player has already logged in + // if the player has been associated with a banned share, kick them + final List bans = BSBan.byShare(share, false); + if (!bans.isEmpty()) { + final BSBan ban = bans.get(0); + + BanStick.getPlugin().info("New overlap between {0} and {1} resulting in at least one ban; kicking...", forPlayer.getName(), player.getName()); + doKickWithCheckup(player.getUUID(), ban); + } } /** diff --git a/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/handler/BanStickEventHandler.java b/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/handler/BanStickEventHandler.java index e7c00b68f..bd6cfa735 100644 --- a/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/handler/BanStickEventHandler.java +++ b/plugins/banstick-paper/src/main/java/com/programmerdan/minecraft/banstick/handler/BanStickEventHandler.java @@ -519,7 +519,7 @@ public class BanStickEventHandler implements Listener { * @param puuid The person to kick * @param picked The ban being applied */ - public void doKickWithCheckup(final UUID puuid, final BSBan picked) { + public static void doKickWithCheckup(final UUID puuid, final BSBan picked) { // now schedule a task to kick out the trash. Bukkit.getScheduler().runTask(BanStick.getPlugin(), new Runnable() {