From 422bbcfdf445234a5d107a2db181f9ccf1919204 Mon Sep 17 00:00:00 2001 From: Tomasz Kuraczyk Date: Mon, 16 Mar 2026 21:54:09 +0100 Subject: [PATCH] Sketch of proper KickPlayerAfterBan system --- build.gradle | 1 + .../java/net/kuraczyk/banhammer/cmds/Ban.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/build.gradle b/build.gradle index 4d36b5c..ac0085b 100644 --- a/build.gradle +++ b/build.gradle @@ -25,6 +25,7 @@ dependencies { implementation 'org.postgresql:postgresql:42.7.7' implementation 'org.flywaydb:flyway-core:10.7.2' implementation 'org.flywaydb:flyway-database-postgresql:10.7.2' + implementation 'com.google.code.gson:gson:2.11.0' } shadowJar { diff --git a/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java b/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java index 7ce7d2e..1e6a8a6 100644 --- a/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java +++ b/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java @@ -17,6 +17,9 @@ import java.util.Objects; import java.util.UUID; import java.util.concurrent.TimeUnit; +import com.google.gson.Gson; + + public class Ban implements CommandExecutor { BanHammer plugin; @@ -309,6 +312,21 @@ public class Ban implements CommandExecutor { } } + private void kickPlayer(PlayerBan b){ + final Gson gson = new Gson(); + try { + Connection conn = plugin.db.getConnection(); + + String preparedJson = gson.toJson(b); + PreparedStatement ps = conn.prepareStatement("SELECT pg_notify('ban_jobs', ?)"); + ps.setString(1, preparedJson); + ps.execute(); + } + catch (SQLException e) { + plugin.getLogger().severe(e.toString()); + } + } + private String resolveBanMessagePlaceholders(String s, String player, String scope, String reason, String operator) { return s.replace("{player}", player) .replace("{scope}", scope)