Merge critical issue fixes to stable #8

Merged
tkuraczyk merged 4 commits from dev into stable 2026-03-17 20:36:22 +01:00
4 changed files with 78 additions and 0 deletions
Showing only changes of commit 7ffd52d4f9 - Show all commits

View file

@ -25,6 +25,7 @@ dependencies {
implementation 'org.postgresql:postgresql:42.7.7' implementation 'org.postgresql:postgresql:42.7.7'
implementation 'org.flywaydb:flyway-core:10.7.2' implementation 'org.flywaydb:flyway-core:10.7.2'
implementation 'org.flywaydb:flyway-database-postgresql:10.7.2' implementation 'org.flywaydb:flyway-database-postgresql:10.7.2'
implementation 'com.google.code.gson:gson:2.11.0'
} }
shadowJar { shadowJar {

View file

@ -1,7 +1,10 @@
package net.kuraczyk.banhammer.cmds; package net.kuraczyk.banhammer.cmds;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import io.papermc.paper.configuration.type.fallback.FallbackValue; import io.papermc.paper.configuration.type.fallback.FallbackValue;
import net.kuraczyk.banhammer.BanHammer; import net.kuraczyk.banhammer.BanHammer;
import net.kuraczyk.banhammer.utils.IPBan;
import net.kuraczyk.banhammer.utils.PlayerBan; import net.kuraczyk.banhammer.utils.PlayerBan;
import net.kuraczyk.banhammer.utils.TextUtils; import net.kuraczyk.banhammer.utils.TextUtils;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
@ -17,6 +20,9 @@ import java.util.Objects;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import com.google.gson.Gson;
public class Ban implements CommandExecutor { public class Ban implements CommandExecutor {
BanHammer plugin; BanHammer plugin;
@ -309,6 +315,28 @@ public class Ban implements CommandExecutor {
} }
} }
private void createPlayerKickJob(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", "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, json);
ps.execute();
}
catch (SQLException e) {
plugin.getLogger().severe(e.toString());
}
}
private String resolveBanMessagePlaceholders(String s, String player, String scope, String reason, String operator) { private String resolveBanMessagePlaceholders(String s, String player, String scope, String reason, String operator) {
return s.replace("{player}", player) return s.replace("{player}", player)
.replace("{scope}", scope) .replace("{scope}", scope)

View file

@ -18,6 +18,10 @@ import java.util.Objects;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; 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 { public class BanIP implements CommandExecutor {
BanHammer plugin; 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) { private String resolveIpBanMessagePlaceholders(String s, String ipAddr, String scope, String reason, String operator) {
return s.replace("{ipAddr}", ipAddr) return s.replace("{ipAddr}", ipAddr)
.replace("{scope}", scope) .replace("{scope}", scope)

View file

@ -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() {
}
}