From a5dc11cac188058726e272f04037b2163cdd6103 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 12:08:18 +0100 Subject: [PATCH 01/11] Fix bannumgehungs timings Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/listeners/BanListener.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/BanListener.java b/src/de/steamwar/bungeecore/listeners/BanListener.java index 810e95a0..9c8b85c7 100644 --- a/src/de/steamwar/bungeecore/listeners/BanListener.java +++ b/src/de/steamwar/bungeecore/listeners/BanListener.java @@ -33,7 +33,6 @@ import net.md_5.bungee.api.event.LoginEvent; import net.md_5.bungee.event.EventHandler; import java.sql.Timestamp; -import java.time.Instant; import java.time.format.DateTimeFormatter; import java.util.List; @@ -52,7 +51,7 @@ public class BanListener extends BasicListener { List ips = BannedUserIPs.get(event.getConnection().getAddress().getAddress().getHostAddress()); if(!ips.isEmpty()){ - Timestamp highestBan = Timestamp.from(Instant.now()); + Timestamp highestBan = ips.get(0).getTimestamp(); for(BannedUserIPs banned : ips) { if(highestBan.before(banned.getTimestamp())) highestBan = banned.getTimestamp(); @@ -70,8 +69,8 @@ public class BanListener extends BasicListener { for(BannedUserIPs banned : ips) { SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID()); - potentialBan.append(Message.parse("BAN_AVOIDING_LIST", target, bannedUser.getId(), - banned.getTimestamp().toLocalDateTime().format(BungeeCore.DATE_FORMAT), bannedUser.getUserName())); + potentialBan.append(Message.parse("BAN_AVOIDING_LIST", target, bannedUser.getUserName(), + banned.getTimestamp().toLocalDateTime().format(BungeeCore.DATE_FORMAT))); } TextComponent msg = new TextComponent(potentialBan.toString()); From 49ed45a3465d02082a9a4ce56570770c2a978f08 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 12:21:26 +0100 Subject: [PATCH 02/11] Extending AntiWDL capabilities Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/BungeeCore.java | 2 ++ .../listeners/mods/WorldDownloader.java | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 src/de/steamwar/bungeecore/listeners/mods/WorldDownloader.java diff --git a/src/de/steamwar/bungeecore/BungeeCore.java b/src/de/steamwar/bungeecore/BungeeCore.java index 80881f36..05a55883 100644 --- a/src/de/steamwar/bungeecore/BungeeCore.java +++ b/src/de/steamwar/bungeecore/BungeeCore.java @@ -25,6 +25,7 @@ import de.steamwar.bungeecore.listeners.*; import de.steamwar.bungeecore.listeners.mods.ModLoaderBlocker; import de.steamwar.bungeecore.listeners.mods.Forge; import de.steamwar.bungeecore.listeners.mods.LabyMod; +import de.steamwar.bungeecore.listeners.mods.WorldDownloader; import de.steamwar.bungeecore.sql.SQL; import de.steamwar.bungeecore.sql.SteamwarUser; import de.steamwar.bungeecore.sql.Team; @@ -85,6 +86,7 @@ public class BungeeCore extends Plugin { new BanListener(); new CheckListener(); new ModLoaderBlocker(); + new WorldDownloader(); commands.put("/b", null); commands.put("/gs", null); diff --git a/src/de/steamwar/bungeecore/listeners/mods/WorldDownloader.java b/src/de/steamwar/bungeecore/listeners/mods/WorldDownloader.java new file mode 100644 index 00000000..44270b61 --- /dev/null +++ b/src/de/steamwar/bungeecore/listeners/mods/WorldDownloader.java @@ -0,0 +1,33 @@ +package de.steamwar.bungeecore.listeners.mods; + +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import de.steamwar.bungeecore.listeners.BasicListener; +import de.steamwar.bungeecore.sql.Mod; +import net.md_5.bungee.api.connection.Connection; +import net.md_5.bungee.api.connection.ProxiedPlayer; +import net.md_5.bungee.api.event.PluginMessageEvent; +import net.md_5.bungee.event.EventHandler; + +import java.util.Collections; +import java.util.Set; + +public class WorldDownloader extends BasicListener { + + private static final Set wdlTags = Collections.unmodifiableSet( + Sets.newHashSet("WDL|INIT", "wdl:init", "WDL|REQUEST", "wdl:request") + ); + + @EventHandler + public void onPluginMessageEvent(PluginMessageEvent event){ + if(!wdlTags.contains(event.getTag())) + return; + + Connection sender = event.getSender(); + if(!(sender instanceof ProxiedPlayer)) + return; + + event.setCancelled(true); + Utils.handleMods((ProxiedPlayer) sender, Lists.newArrayList(Mod.get("wdl", Mod.Platform.FORGE))); + } +} From bf0bd042a85dd1d7c4df92bc4a462517f470fa42 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 12:36:05 +0100 Subject: [PATCH 03/11] Fix bbc Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/commands/AlertCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/de/steamwar/bungeecore/commands/AlertCommand.java b/src/de/steamwar/bungeecore/commands/AlertCommand.java index e1ac773b..2b23e99e 100644 --- a/src/de/steamwar/bungeecore/commands/AlertCommand.java +++ b/src/de/steamwar/bungeecore/commands/AlertCommand.java @@ -19,7 +19,6 @@ package de.steamwar.bungeecore.commands; -import de.steamwar.bungeecore.BungeeCore; import de.steamwar.bungeecore.Message; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; @@ -37,6 +36,6 @@ public class AlertCommand extends BasicCommand { return; } - Message.broadcast("ALERT", ChatColor.translateAlternateColorCodes('&', BungeeCore.CHAT_PREFIX + String.join(" ", args))); + Message.broadcast("ALERT", ChatColor.translateAlternateColorCodes('&', String.join(" ", args))); } } From 31f325421ab73d1e0095d77b7a784dd41bdede0c Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 14:12:19 +0100 Subject: [PATCH 04/11] Check refactoring: Using Message, informing about previous checks Signed-off-by: Lixfel --- .../bungeecore/commands/CheckCommand.java | 90 ++++++++++--------- .../bungeecore/sql/CheckedSchematic.java | 46 +++++++++- .../steamwar/messages/BungeeCore.properties | 30 ++++++- 3 files changed, 124 insertions(+), 42 deletions(-) diff --git a/src/de/steamwar/bungeecore/commands/CheckCommand.java b/src/de/steamwar/bungeecore/commands/CheckCommand.java index d7eaf1a8..65330e57 100644 --- a/src/de/steamwar/bungeecore/commands/CheckCommand.java +++ b/src/de/steamwar/bungeecore/commands/CheckCommand.java @@ -68,7 +68,7 @@ public class CheckCommand extends BasicCommand { ProxyServer.getInstance().getScheduler().schedule(BungeeCore.get(), () -> { List schematics = getSchemsToCheck(); if(schematics.size() != currentCheckers.size()) - ServerTeamchatCommand.sendToTeam("§7Es sind §e" + (schematics.size() - currentCheckers.size()) + " §7Schematics zu prüfen§8!"); + Message.team("CHECK_REMINDER", schematics.size() - currentCheckers.size()); }, 10, 10, TimeUnit.MINUTES); } @@ -91,7 +91,7 @@ public class CheckCommand extends BasicCommand { schematic(player, args[1]); break; case "next": - case "allow": + case "accept": next(player, args); break; case "cancel": @@ -118,27 +118,27 @@ public class CheckCommand extends BasicCommand { private void list(ProxiedPlayer player) { List schematicList = getSchemsToCheck(); - BungeeCore.send(player, "§e§lZu prüfen sind " + schematicList.size() + " Schematics"); + Message.sendPrefixless("CHECK_LIST_HEADER", player, schematicList.size()); for (Schematic schematic : schematicList) { CheckSession current = currentSchems.get(schematic.getSchemID()); if (current == null) { - BungeeCore.send(player, - "§8" + schematic.getSchemType().getKuerzel() + " §7" + SteamwarUser.get(schematic.getSchemOwner()).getUserName() + " §e" + schematic.getSchemName(), - "§eSchematic prüfen", - new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check schematic " + schematic.getSchemID())); + Message.sendPrefixless("CHECK_LIST_TO_CHECK", player, + Message.parse("CHECK_LIST_TO_CHECK_HOVER", player), + new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check schematic " + schematic.getSchemID()), + schematic.getSchemType().getKuerzel(), SteamwarUser.get(schematic.getSchemOwner()).getUserName(), schematic.getSchemName()); } else { - BungeeCore.send(player, - "§8" + schematic.getSchemType().getKuerzel() + " §7" + SteamwarUser.get(schematic.getSchemOwner()).getUserName() + " §e" + schematic.getSchemName() + " §7wird geprüft von §e" + current.checker.getName(), - "§eZum Prüfer", - new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join " + current.checker.getName())); + Message.sendPrefixless("CHECK_LIST_CHECKING", player, + Message.parse("CHECK_LIST_CHECKING_HOVER", player), + new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/join " + current.checker.getName()), + schematic.getSchemType().getKuerzel(), SteamwarUser.get(schematic.getSchemOwner()).getUserName(), schematic.getSchemName(), current.checker.getName()); } } } private void schematic(ProxiedPlayer player, String schemID){ if(isChecking(player)){ - BungeeCore.send(player, "§cDu prüfst schon eine Schematic!"); + Message.send("CHECK_SCHEMATIC_ALREADY_CHECKING", player); return; } @@ -147,7 +147,7 @@ public class CheckCommand extends BasicCommand { ProxyServer.getInstance().getLogger().log(Level.SEVERE, player.getName() + " tried to check an uncheckable schematic!"); return; }else if(schem.getSchemOwner() == SteamwarUser.get(player.getUniqueId()).getId()) { - BungeeCore.send(player, "§cDu kannst nicht deine eigenen Schematics prüfen"); + Message.send("CHECK_SCHEMATIC_OWN", player); return; } @@ -156,7 +156,7 @@ public class CheckCommand extends BasicCommand { private static boolean notChecking(ProxiedPlayer player){ if(!isChecking(player)){ - BungeeCore.send(player, "§cDu prüfst derzeit nicht."); + Message.send("CHECK_NOT_CHECKING", player); return true; } return false; @@ -171,7 +171,7 @@ public class CheckCommand extends BasicCommand { try{ rank = Integer.parseInt(args[1]); }catch(NumberFormatException e){ - BungeeCore.send(player, "Der angegebene Rang ist ungültig!"); + Message.send("CHECK_INVALID_RANK", player); return; } } @@ -183,7 +183,7 @@ public class CheckCommand extends BasicCommand { if(notChecking(player)) return; - BungeeCore.send(player, "§aDer Prüfvorgang wurde abgebrochen!"); + Message.send("CHECK_ABORT", player); currentCheckers.get(player.getUniqueId()).abort(); } @@ -204,11 +204,10 @@ public class CheckCommand extends BasicCommand { } private void help(CommandSender sender){ - BungeeCore.send(sender, "§8/§echeck list §8- §7Zeigt die Liste der ungeprüften Schematics"); - BungeeCore.send(sender, "§8/§echeck next §8- §7Nächste Prüffrage"); - BungeeCore.send(sender, "§8/§echeck allow §8- §7Schematic freigeben"); - BungeeCore.send(sender, "§8/§echeck decline [Grund] §8- §7Schematic nicht freigeben"); - BungeeCore.send(sender, "§8/§echeck cancel §8- §7Bricht das Prüfen ab"); + Message.sendPrefixless("CHECK_HELP_LIST", sender); + Message.sendPrefixless("CHECK_HELP_NEXT", sender); + Message.sendPrefixless("CHECK_HELP_DECLINE", sender); + Message.sendPrefixless("CHECK_HELP_CANCEL", sender); } private static class CheckSession{ @@ -235,6 +234,8 @@ public class CheckCommand extends BasicCommand { SubserverSystem.startTestServer(checker, mode, FightCommand.getMap(checker, mode, "Random"), schematic.getSchemID()); currentCheckers.put(checker.getUniqueId(), this); currentSchems.put(schematic.getSchemID(), this); + for(CheckedSchematic previous : CheckedSchematic.previousChecks(schematic.getSchemName(), schematic.getSchemOwner())) + Message.sendPrefixless("CHECK_SCHEMATIC_PREVIOUS", checker, previous.getEndTime(), SteamwarUser.get(previous.getValidator()).getUserName(), previous.getReason()); next(0); }); } @@ -245,26 +246,28 @@ public class CheckCommand extends BasicCommand { return; } - BungeeCore.send(checker, checkList.next()); + checker.sendMessage(TextComponent.fromLegacyText(checkList.next())); - TextComponent next; + TextComponent next = new TextComponent(); + next.setColor(ChatColor.GREEN); if(checkList.hasNext()){ - next = new TextComponent("next "); + next.setText(Message.parse("CHECK_NEXT", checker)); next.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check next")); }else if(ranks.containsKey(schematic.getSchemType())){ - next = new TextComponent(); List r = ranks.get(schematic.getSchemType()); for(int i = 0; i < r.size(); i++){ - BungeeCore.send(checker, "§aRang " + (i+1) + ": " + r.get(i), "§aMit diesem Rang freigeben", new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check allow " + (i+1))); - BungeeCore.send(checker, ""); + Message.sendPrefixless("CHECK_RANK", checker, + Message.parse("CHECK_RANK_HOVER", checker), + new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check allow " + (i+1)), + i+1, r.get(i)); + Message.sendPrefixless("SPACER", checker); } }else{ - next = new TextComponent("accept "); - next.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check allow")); + next.setText(Message.parse("CHECK_ACCEPT", checker)); + next.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check accept")); } - next.setColor(ChatColor.GREEN); - TextComponent decline = new TextComponent("decline"); + TextComponent decline = new TextComponent(" " + Message.parse("CHECK_DECLINE", checker)); decline.setColor(ChatColor.RED); decline.setClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/check decline ")); @@ -275,7 +278,7 @@ public class CheckCommand extends BasicCommand { private void accept(int rank){ if(ranks.containsKey(schematic.getSchemType())){ if(rank <= 0 || ranks.get(schematic.getSchemType()).size() < rank){ - BungeeCore.send(checker, "§cUnbekannter Schematic-Rang"); + Message.send("CHECK_INVALID_RANK", checker); return; } schematic.setRank(rank); @@ -283,24 +286,31 @@ public class CheckCommand extends BasicCommand { schematic.setSchemType(schematic.getSchemType().fightType()); CheckedSchematic.create(schematic.getSchemName(), schematic.getSchemOwner(), SteamwarUser.get(checker.getUniqueId()).getId(), startTime, Timestamp.from(Instant.now()), "freigegeben"); - ProxiedPlayer player = ProxyServer.getInstance().getPlayer(SteamwarUser.get(schematic.getSchemOwner()).getUuid()); + SteamwarUser user = SteamwarUser.get(schematic.getSchemOwner()); + ProxiedPlayer player = ProxyServer.getInstance().getPlayer(user.getUuid()); if(player != null) - BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§aDein §e" + schematic.getSchemType().name() + " " + schematic.getSchemName() + " §ewurde freigegeben§8!"); - ServerTeamchatCommand.sendToTeam("§aDie Schematic §e" + schematic.getSchemName() + " §avon §e" + SteamwarUser.get(schematic.getSchemOwner()).getUserName() + " §aist nun freigegeben!"); - abort(); + Message.send("CHECK_ACCEPTED", player, schematic.getSchemType().name(), schematic.getSchemName()); + Message.team("CHECK_ACCEPTED_TEAM", schematic.getSchemName(), user.getUserName()); + stop(); } private void decline(String reason){ schematic.setSchemType(SchematicType.Normal); CheckedSchematic.create(schematic.getSchemName(), schematic.getSchemOwner(), SteamwarUser.get(checker.getUniqueId()).getId(), startTime, Timestamp.from(Instant.now()), reason); - ProxiedPlayer player = ProxyServer.getInstance().getPlayer(SteamwarUser.get(schematic.getSchemOwner()).getUuid()); + SteamwarUser user = SteamwarUser.get(schematic.getSchemOwner()); + ProxiedPlayer player = ProxyServer.getInstance().getPlayer(user.getUuid()); if(player != null) - BungeeCore.send(player, BungeeCore.CHAT_PREFIX + "§cDein §e" + schematic.getSchemType().name() + " " + schematic.getSchemName() + " §cwurde abgelehnt§8: §c" + reason); - ServerTeamchatCommand.sendToTeam("§aDie Schematic §e" + schematic.getSchemName() + " §avon §e" + SteamwarUser.get(schematic.getSchemOwner()).getUserName() + " §awurde aufgrund von §e" + reason + " §aabgelehnt!"); - abort(); + Message.send("CHECK_DECLINED", player, schematic.getSchemType().name(), schematic.getSchemName(), reason); + Message.team("CHECK_DECLINED_TEAM", schematic.getSchemName(), user.getUserName(), reason); + stop(); } private void abort(){ + CheckedSchematic.create(schematic.getSchemName(), schematic.getSchemOwner(), SteamwarUser.get(checker.getUniqueId()).getId(), startTime, Timestamp.from(Instant.now()), "Prüfvorgang abgebrochen"); + stop(); + } + + private void stop(){ currentCheckers.remove(checker.getUniqueId()); currentSchems.remove(schematic.getSchemID()); ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> { diff --git a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java index 9b4a0626..ab916d4c 100644 --- a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java +++ b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java @@ -19,13 +19,57 @@ package de.steamwar.bungeecore.sql; +import java.sql.ResultSet; +import java.sql.SQLException; import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; public class CheckedSchematic { - private CheckedSchematic(){} + + private final String schemName; + private final int schemOwner; + + private final int validator; + private final Timestamp startTime; + private final Timestamp endTime; + private final String reason; + + private CheckedSchematic(ResultSet rs) throws SQLException { + schemName = rs.getString("SchemName"); + schemOwner = rs.getInt("SchemOwner"); + validator = rs.getInt("Validator"); + startTime = rs.getTimestamp("StartTime"); + endTime = rs.getTimestamp("EndTime"); + reason = rs.getString("Reason"); + } public static void create(String schemName, int schemOwner, int validator, Timestamp startTime, Timestamp endTime, String reason){ SQL.update("INSERT INTO CheckedSchematic (SchemName, SchemOwner, Validator, StartTime, EndTime, DeclineReason) VALUES (?, ?, ?, ?, ?, ?)", schemName, schemOwner, validator, startTime, endTime, reason); } + + public static List previousChecks(String schemName, int schemOwner){ + ResultSet rs = SQL.select("SELECT FROM CheckedSchematics WHERE SchemName = ? AND SchemOwner = ? ORDER BY EndTime ASC", schemName, schemOwner); + List schematics = new ArrayList<>(); + try { + while(rs.next()) + schematics.add(new CheckedSchematic(rs)); + } catch (SQLException e) { + throw new SecurityException("Could not load previous checks", e); + } + return schematics; + } + + public int getValidator() { + return validator; + } + + public Timestamp getEndTime() { + return endTime; + } + + public String getReason() { + return reason; + } } diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index 563a53cd..73f532d3 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -1,4 +1,5 @@ PREFIX=§eSteam§8War» +SPACER= UNKNOWN_COMMAND=§cUnbekannter Befehl. UNKNOWN_PLAYER=§cDiesen Spieler gibt es nicht. @@ -113,4 +114,31 @@ POLLRESULT_LIST=§e{0}§8: §7{1} #BauCommand BAU_DELETE_GUI_NAME=§eWirklich Welt löschen? BAU_DELETE_GUI_CANCEL=§cAbbrechen -BAU_DELETE_GUI_DELETE=§aLöschen \ No newline at end of file +BAU_DELETE_GUI_DELETE=§aLöschen + +#CheckCommand +CHECK_REMINDER=§7Es sind §e{0} §7Schematics zu prüfen§8! +CHECK_NOT_CHECKING=§cDu prüfst derzeit nicht. +CHECK_HELP_LIST=§8/§echeck list §8- §7Zeigt die Liste der ungeprüften Schematics +CHECK_HELP_NEXT=§8/§echeck next §8- §7Nächste Prüffrage§8/§7freigeben +CHECK_HELP_DECLINE=§8/§echeck decline §8[§eGrund§8] - §7Schematic ablehnen +CHECK_HELP_CANCEL=§8/§echeck cancel §8- §7Bricht den Prüfvorgang ab +CHECK_LIST_HEADER=§e§lZu prüfen sind {0} Schematics +CHECK_LIST_TO_CHECK=§8{0} §7{1} §e{2} +CHECK_LIST_TO_CHECK_HOVER=§eSchematic prüfen +CHECK_LIST_CHECKING=§8{0} §7{1} §e{2} §7wird geprüft von §e{3} +CHECK_LIST_CHECKING_HOVER=§eZum Prüfer +CHECK_SCHEMATIC_ALREADY_CHECKING=§cDu prüfst schon eine Schematic! +CHECK_SCHEMATIC_OWN=§cDu kannst nicht deine eigenen Schematics prüfen. +CHECK_SCHEMATIC_PREVIOUS=§7{0} von {1}§8: §e{2} +CHECK_INVALID_RANK=§cUnbekannter Schematicrang. +CHECK_ABORT=§aDer Prüfvorgang wurde abgebrochen! +CHECK_NEXT=Nächste Frage +CHECK_ACCEPT=Annehmen +CHECK_DECLINE=Ablehnen +CHECK_RANK=§aRang {0}: {1} +CHECK_RANK_HOVER=§aMit diesem Rang freigeben +CHECK_ACCEPTED=§aDein §e{0} {1} §ewurde freigegeben§8! +CHECK_ACCEPTED_TEAM=§7Die Schematic §e{0} §7von §e{1} §7ist nun freigegeben! +CHECK_DECLINED=§cDein §e{0} {1} §cwurde abgelehnt§8: §c{2} +CHECK_DECLINED_TEAM=§7Die Schematic §e{0} §7von §e{1} §awurde aufgrund von §e{2} §7abgelehnt! \ No newline at end of file From 82d350f3eeace6cb9d7ba1c2876ab2dfd61f2876 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 14:25:34 +0100 Subject: [PATCH 05/11] Test bundle clear Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/Message.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/de/steamwar/bungeecore/Message.java b/src/de/steamwar/bungeecore/Message.java index 1e5e0c06..0d533ab7 100644 --- a/src/de/steamwar/bungeecore/Message.java +++ b/src/de/steamwar/bungeecore/Message.java @@ -35,6 +35,10 @@ import java.util.ResourceBundle; public class Message { private Message(){} + static{ + ResourceBundle.clearCache(); + } + public static TextComponent parseToComponent(String message, boolean prefixed, CommandSender sender, Object... params){ return new TextComponent(TextComponent.fromLegacyText(parse(message, prefixed, sender, params))); } From 3c4c10288f5106674c928120927f51ef35fab1c7 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 14:29:20 +0100 Subject: [PATCH 06/11] Test bundle clear Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/Message.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/Message.java b/src/de/steamwar/bungeecore/Message.java index 0d533ab7..d66b54a8 100644 --- a/src/de/steamwar/bungeecore/Message.java +++ b/src/de/steamwar/bungeecore/Message.java @@ -36,7 +36,7 @@ public class Message { private Message(){} static{ - ResourceBundle.clearCache(); + ResourceBundle.clearCache(ResourceBundle.getBundle("de.steamwar.messages.BungeeCore").getClass().getClassLoader()); } public static TextComponent parseToComponent(String message, boolean prefixed, CommandSender sender, Object... params){ From f431fa7147f6da807ed9943d53bfa8d7232b080a Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sat, 19 Dec 2020 14:31:41 +0100 Subject: [PATCH 07/11] Test bundle clear Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/Message.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/de/steamwar/bungeecore/Message.java b/src/de/steamwar/bungeecore/Message.java index d66b54a8..1e5e0c06 100644 --- a/src/de/steamwar/bungeecore/Message.java +++ b/src/de/steamwar/bungeecore/Message.java @@ -35,10 +35,6 @@ import java.util.ResourceBundle; public class Message { private Message(){} - static{ - ResourceBundle.clearCache(ResourceBundle.getBundle("de.steamwar.messages.BungeeCore").getClass().getClassLoader()); - } - public static TextComponent parseToComponent(String message, boolean prefixed, CommandSender sender, Object... params){ return new TextComponent(TextComponent.fromLegacyText(parse(message, prefixed, sender, params))); } From 0e31a6cd904485b18e25ee774170e9b7b57e04de Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 20 Dec 2020 13:55:50 +0100 Subject: [PATCH 08/11] Hotfix check list Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/CheckedSchematic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java index ab916d4c..dd0280e6 100644 --- a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java +++ b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java @@ -50,7 +50,7 @@ public class CheckedSchematic { } public static List previousChecks(String schemName, int schemOwner){ - ResultSet rs = SQL.select("SELECT FROM CheckedSchematics WHERE SchemName = ? AND SchemOwner = ? ORDER BY EndTime ASC", schemName, schemOwner); + ResultSet rs = SQL.select("SELECT * FROM CheckedSchematics WHERE SchemName = ? AND SchemOwner = ? ORDER BY EndTime ASC", schemName, schemOwner); List schematics = new ArrayList<>(); try { while(rs.next()) From f0c2fad21826e195b56b09247c466388809abd25 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 20 Dec 2020 14:02:24 +0100 Subject: [PATCH 09/11] Hotfix check list Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/CheckedSchematic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java index dd0280e6..bd7e1966 100644 --- a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java +++ b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java @@ -50,7 +50,7 @@ public class CheckedSchematic { } public static List previousChecks(String schemName, int schemOwner){ - ResultSet rs = SQL.select("SELECT * FROM CheckedSchematics WHERE SchemName = ? AND SchemOwner = ? ORDER BY EndTime ASC", schemName, schemOwner); + ResultSet rs = SQL.select("SELECT * FROM CheckedSchematic WHERE SchemName = ? AND SchemOwner = ? ORDER BY EndTime ASC", schemName, schemOwner); List schematics = new ArrayList<>(); try { while(rs.next()) From 03a0ed889887aaf9b66342f1731c91bb41f51517 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 20 Dec 2020 14:05:39 +0100 Subject: [PATCH 10/11] Hotfix check Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/CheckedSchematic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java index bd7e1966..0424e4aa 100644 --- a/src/de/steamwar/bungeecore/sql/CheckedSchematic.java +++ b/src/de/steamwar/bungeecore/sql/CheckedSchematic.java @@ -41,7 +41,7 @@ public class CheckedSchematic { validator = rs.getInt("Validator"); startTime = rs.getTimestamp("StartTime"); endTime = rs.getTimestamp("EndTime"); - reason = rs.getString("Reason"); + reason = rs.getString("DeclineReason"); } public static void create(String schemName, int schemOwner, int validator, Timestamp startTime, Timestamp endTime, String reason){ From e5dd2a69ad42ab9d75913743129b231cc68f3e4e Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 20 Dec 2020 17:22:55 +0100 Subject: [PATCH 11/11] Hotfix check Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/commands/CheckCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/commands/CheckCommand.java b/src/de/steamwar/bungeecore/commands/CheckCommand.java index 65330e57..9aaed515 100644 --- a/src/de/steamwar/bungeecore/commands/CheckCommand.java +++ b/src/de/steamwar/bungeecore/commands/CheckCommand.java @@ -258,7 +258,7 @@ public class CheckCommand extends BasicCommand { for(int i = 0; i < r.size(); i++){ Message.sendPrefixless("CHECK_RANK", checker, Message.parse("CHECK_RANK_HOVER", checker), - new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check allow " + (i+1)), + new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/check accept " + (i+1)), i+1, r.get(i)); Message.sendPrefixless("SPACER", checker); }