From ed79088560dd6dca5ca1ace9a69034d9a148f0de Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 10 Dec 2020 15:00:48 +0100 Subject: [PATCH 1/5] Add Ban Time to Banumgehungs message and moved Messages to properties --- .../bungeecore/listeners/BanListener.java | 37 +++++++++++-------- .../steamwar/messages/BungeeCore.properties | 3 ++ 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/BanListener.java b/src/de/steamwar/bungeecore/listeners/BanListener.java index c9aadb73..d996c902 100644 --- a/src/de/steamwar/bungeecore/listeners/BanListener.java +++ b/src/de/steamwar/bungeecore/listeners/BanListener.java @@ -20,6 +20,7 @@ package de.steamwar.bungeecore.listeners; import de.steamwar.bungeecore.BungeeCore; +import de.steamwar.bungeecore.Message; import de.steamwar.bungeecore.sql.BannedUserIPs; import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.ProxyServer; @@ -31,6 +32,9 @@ import net.md_5.bungee.api.connection.ProxiedPlayer; 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; public class BanListener extends BasicListener { @@ -47,27 +51,28 @@ public class BanListener extends BasicListener { List ips = BannedUserIPs.get(event.getConnection().getAddress().getAddress().getHostAddress()); if(!ips.isEmpty()){ - StringBuilder potentialBan = new StringBuilder(); - potentialBan.append(BungeeCore.CHAT_PREFIX); - potentialBan.append("§cMögliche Bannumgehung durch §r"); - potentialBan.append(user.getUserName()); - potentialBan.append("§c:"); - for(BannedUserIPs banned : ips){ - SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID()); - potentialBan.append(" §e"); - potentialBan.append(banned.getTimestamp().toLocalDateTime().format(BungeeCore.DATE_FORMAT)); - potentialBan.append(" §c"); - potentialBan.append(bannedUser.getUserName()); - } - - TextComponent msg = new TextComponent(potentialBan.toString()); - msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("§cBanne Spieler wegen Bannumgehung").create())); - msg.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " perma Bannumgehung")); for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){ if ((target.hasPermission("bungeecore.teamchat")) && (target.getChatMode() == ProxiedPlayer.ChatMode.COMMANDS_ONLY || target.getChatMode() == ProxiedPlayer.ChatMode.SHOWN)){ + StringBuilder potentialBan = new StringBuilder(); + potentialBan.append(Message.parsePrefixed("BAN_AVOIDING_ALERT", target, user.getUserName())); + + Timestamp highestBan = Timestamp.from(Instant.now()); + 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())); + if(highestBan.before(banned.getTimestamp())) + highestBan = banned.getTimestamp(); + } + + TextComponent msg = new TextComponent(potentialBan.toString()); + msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(Message.parse("BAN_AVOIDING_BAN_HOVER", target)).create())); + msg.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " " + + highestBan.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm")) + + " Bannumgehung")); target.sendMessage(msg); } } diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index e7ff281c..9e7e432a 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -93,6 +93,9 @@ USAGE_IGNORE=§8/§7ignore §8[§eSpieler§8] ALERT=§f{0} BAN_MESSAGE_YOU=§7Du hast §e{0} §7gebannt§8. §7Grund§8: §c{1} +BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: +BAN_AVOIDING_LIST={0} §e{1} §c +BAN_AVOIDING_BAN_HOVER=§cBanne Spieler wegen Bannumgehung MUTE_MESSAGE_YOU=§7Du hast §e{0} §7gemutet§8. §7Grund§8: §c{1} From dcff5ed22fabf4d39e4304caeaa84026d86f1a12 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 10 Dec 2020 15:17:25 +0100 Subject: [PATCH 2/5] Add Extending Ban of Account with same IP --- src/de/steamwar/bungeecore/sql/SteamwarUser.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/de/steamwar/bungeecore/sql/SteamwarUser.java b/src/de/steamwar/bungeecore/sql/SteamwarUser.java index 61625eab..66b1d362 100644 --- a/src/de/steamwar/bungeecore/sql/SteamwarUser.java +++ b/src/de/steamwar/bungeecore/sql/SteamwarUser.java @@ -214,6 +214,12 @@ public class SteamwarUser { if(player != null){ updateBanIP(player.getAddress().getAddress().getHostAddress()); player.disconnect(banMessage()); + for (BannedUserIPs banned: + BannedUserIPs.get(player.getAddress().getAddress().getHostAddress())) { + SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID()); + if(bannedUser.isBanned() && banned.getTimestamp().before(time)) + bannedUser.ban(time, bannedUser.banReason); + } }else updateBanIP(""); } From 68ce7330ef4d3dc46677f1e0806b0bdc7a54f81a Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 10 Dec 2020 19:18:50 +0100 Subject: [PATCH 3/5] Fixing Double Execution of Code --- .../bungeecore/listeners/BanListener.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/BanListener.java b/src/de/steamwar/bungeecore/listeners/BanListener.java index d996c902..810e95a0 100644 --- a/src/de/steamwar/bungeecore/listeners/BanListener.java +++ b/src/de/steamwar/bungeecore/listeners/BanListener.java @@ -52,6 +52,15 @@ public class BanListener extends BasicListener { List ips = BannedUserIPs.get(event.getConnection().getAddress().getAddress().getHostAddress()); if(!ips.isEmpty()){ + Timestamp highestBan = Timestamp.from(Instant.now()); + for(BannedUserIPs banned : ips) { + if(highestBan.before(banned.getTimestamp())) + highestBan = banned.getTimestamp(); + } + ClickEvent clickEvent = new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " " + + highestBan.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm")) + + " Bannumgehung"); + for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){ if ((target.hasPermission("bungeecore.teamchat")) && (target.getChatMode() == ProxiedPlayer.ChatMode.COMMANDS_ONLY @@ -59,20 +68,15 @@ public class BanListener extends BasicListener { StringBuilder potentialBan = new StringBuilder(); potentialBan.append(Message.parsePrefixed("BAN_AVOIDING_ALERT", target, user.getUserName())); - Timestamp highestBan = Timestamp.from(Instant.now()); 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())); - if(highestBan.before(banned.getTimestamp())) - highestBan = banned.getTimestamp(); } TextComponent msg = new TextComponent(potentialBan.toString()); msg.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(Message.parse("BAN_AVOIDING_BAN_HOVER", target)).create())); - msg.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/ban " + user.getUserName() + " " - + highestBan.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm")) - + " Bannumgehung")); + msg.setClickEvent(clickEvent); target.sendMessage(msg); } } From c0330635a6e5fddfa9488f9e5aa546de3220126c Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 10 Dec 2020 19:31:28 +0100 Subject: [PATCH 4/5] Fixing Message --- src/de/steamwar/messages/BungeeCore.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index 9e7e432a..0c537b1c 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -93,8 +93,8 @@ USAGE_IGNORE=§8/§7ignore §8[§eSpieler§8] ALERT=§f{0} BAN_MESSAGE_YOU=§7Du hast §e{0} §7gebannt§8. §7Grund§8: §c{1} -BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: -BAN_AVOIDING_LIST={0} §e{1} §c +BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0} +BAN_AVOIDING_LIST=§c: {0} §e{1} §c BAN_AVOIDING_BAN_HOVER=§cBanne Spieler wegen Bannumgehung MUTE_MESSAGE_YOU=§7Du hast §e{0} §7gemutet§8. §7Grund§8: §c{1} From 95b5925b5fb85223d2a16fbda36f21cb2f744bc1 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 10 Dec 2020 19:35:43 +0100 Subject: [PATCH 5/5] Fixing Message Again... --- src/de/steamwar/messages/BungeeCore.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index 0c537b1c..dc2dbab0 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -93,8 +93,8 @@ USAGE_IGNORE=§8/§7ignore §8[§eSpieler§8] ALERT=§f{0} BAN_MESSAGE_YOU=§7Du hast §e{0} §7gebannt§8. §7Grund§8: §c{1} -BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0} -BAN_AVOIDING_LIST=§c: {0} §e{1} §c +BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: §c +BAN_AVOIDING_LIST={0} §e{1} §c BAN_AVOIDING_BAN_HOVER=§cBanne Spieler wegen Bannumgehung MUTE_MESSAGE_YOU=§7Du hast §e{0} §7gemutet§8. §7Grund§8: §c{1}