diff --git a/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java b/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java index 1e6a8a6..d8ac176 100644 --- a/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java +++ b/src/main/java/net/kuraczyk/banhammer/cmds/Ban.java @@ -1,7 +1,10 @@ package net.kuraczyk.banhammer.cmds; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import io.papermc.paper.configuration.type.fallback.FallbackValue; import net.kuraczyk.banhammer.BanHammer; +import net.kuraczyk.banhammer.utils.IPBan; import net.kuraczyk.banhammer.utils.PlayerBan; import net.kuraczyk.banhammer.utils.TextUtils; import net.kyori.adventure.text.Component; @@ -312,14 +315,21 @@ public class Ban implements CommandExecutor { } } - private void kickPlayer(PlayerBan b){ + private void createPlayerKickJob(IPBan b, String scope){ final Gson gson = new Gson(); try { Connection conn = plugin.db.getConnection(); - String preparedJson = gson.toJson(b); + JsonElement banObject = gson.toJsonTree(b); + JsonObject wrapper = new JsonObject(); + wrapper.addProperty("ban_type", "player"); + wrapper.addProperty("ban_scope", scope); + + wrapper.add("ban_data", banObject); + String json = gson.toJson(wrapper); + PreparedStatement ps = conn.prepareStatement("SELECT pg_notify('ban_jobs', ?)"); - ps.setString(1, preparedJson); + ps.setString(1, json); ps.execute(); } catch (SQLException e) { diff --git a/src/main/java/net/kuraczyk/banhammer/cmds/BanIP.java b/src/main/java/net/kuraczyk/banhammer/cmds/BanIP.java index 8a6991d..169e3b1 100644 --- a/src/main/java/net/kuraczyk/banhammer/cmds/BanIP.java +++ b/src/main/java/net/kuraczyk/banhammer/cmds/BanIP.java @@ -18,6 +18,10 @@ import java.util.Objects; import java.util.UUID; import java.util.concurrent.TimeUnit; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.Gson; + public class BanIP implements CommandExecutor { BanHammer plugin; @@ -325,6 +329,27 @@ public class BanIP implements CommandExecutor { } } + private void createIPKickJob(IPBan b, String scope){ + final Gson gson = new Gson(); + try { + Connection conn = plugin.db.getConnection(); + + JsonElement banObject = gson.toJsonTree(b); + JsonObject wrapper = new JsonObject(); + wrapper.addProperty("ban_type", "ip"); + wrapper.addProperty("ban_scope", scope); + wrapper.add("ban_data", banObject); + String json = gson.toJson(wrapper); + + PreparedStatement ps = conn.prepareStatement("SELECT pg_notify('ban_jobs', ?)"); + ps.setString(1, json); + ps.execute(); + } + catch (SQLException e) { + plugin.getLogger().severe(e.toString()); + } + } + private String resolveIpBanMessagePlaceholders(String s, String ipAddr, String scope, String reason, String operator) { return s.replace("{ipAddr}", ipAddr) .replace("{scope}", scope) diff --git a/src/main/java/net/kuraczyk/banhammer/workers/BanJobWorker.java b/src/main/java/net/kuraczyk/banhammer/workers/BanJobWorker.java new file mode 100644 index 0000000..48566c0 --- /dev/null +++ b/src/main/java/net/kuraczyk/banhammer/workers/BanJobWorker.java @@ -0,0 +1,24 @@ +package net.kuraczyk.banhammer.workers; + +import net.kuraczyk.banhammer.BanHammer; + +public class BanJobWorker { + + BanHammer plugin; + + public void BanJobWorker(BanHammer p) { + plugin=p; + banJobListener(); + } + + private void banJobListener() { + + } + + private boolean banJobExecutor() { + + } + + + +}