diff --git a/CommonCore b/CommonCore index fc1e7c6..4eadcb4 160000 --- a/CommonCore +++ b/CommonCore @@ -1 +1 @@ -Subproject commit fc1e7c60d7eed04aebc336c3c69de0dcdf1d002e +Subproject commit 4eadcb4b09c0747cd1726c7f6cfe86ff07e59ea2 diff --git a/src/de/steamwar/bungeecore/listeners/BanListener.java b/src/de/steamwar/bungeecore/listeners/BanListener.java index 97165d2..8776dbb 100644 --- a/src/de/steamwar/bungeecore/listeners/BanListener.java +++ b/src/de/steamwar/bungeecore/listeners/BanListener.java @@ -24,24 +24,20 @@ import de.steamwar.bungeecore.Message; import de.steamwar.bungeecore.commands.PunishmentCommand; import de.steamwar.bungeecore.commands.WebpasswordCommand; import de.steamwar.bungeecore.listeners.mods.Forge; +import de.steamwar.messages.ChatSender; import de.steamwar.sql.BannedUserIPs; import de.steamwar.sql.Punishment; import de.steamwar.sql.SteamwarUser; -import de.steamwar.messages.ChatSender; -import de.steamwar.sql.UserPerm; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.chat.ClickEvent; -import net.md_5.bungee.api.chat.ComponentBuilder; -import net.md_5.bungee.api.chat.HoverEvent; -import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.connection.PendingConnection; -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.format.DateTimeFormatter; import java.util.List; +import java.util.stream.Collectors; public class BanListener extends BasicListener { @@ -80,25 +76,17 @@ public class BanListener extends BasicListener { + (perma?"perma":highestBan.toLocalDateTime().format(DateTimeFormatter.ofPattern("dd.MM.yyyy_HH:mm"))) + " Bannumgehung"); - for (ProxiedPlayer target : ProxyServer.getInstance().getPlayers()){ - if (SteamwarUser.get(target.getUniqueId()).hasPerm(UserPerm.TEAM) - && (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())); - - for(BannedUserIPs banned : ips) { + ChatSender.serverteamReceivers().forEach(sender -> sender.system( + "BAN_AVOIDING_ALERT", + new Message("BAN_AVOIDING_BAN_HOVER"), + clickEvent, + user.getUserName(), + ips.stream().map(banned -> { SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID()); - potentialBan.append(Message.parse("BAN_AVOIDING_LIST", target, bannedUser.getUserName(), - banned.getTimestamp().toLocalDateTime().format(DateTimeFormatter.ofPattern(Message.parse("TIMEFORMAT", target))))); - } - - 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(clickEvent); - target.sendMessage(msg); - } - } + return sender.parseToLegacy("BAN_AVOIDING_LIST", bannedUser.getUserName(), + banned.getTimestamp().toLocalDateTime().format(DateTimeFormatter.ofPattern(sender.parseToLegacy("TIMEFORMAT")))); + }).collect(Collectors.joining(" ")) + )); } Forge.onServerConnected(event); diff --git a/src/de/steamwar/bungeecore/listeners/ChatListener.java b/src/de/steamwar/bungeecore/listeners/ChatListener.java index 8690c98..7520244 100644 --- a/src/de/steamwar/bungeecore/listeners/ChatListener.java +++ b/src/de/steamwar/bungeecore/listeners/ChatListener.java @@ -46,13 +46,6 @@ public class ChatListener extends BasicListener { private static final List rankedModes = ArenaMode.getAllModes().stream().filter(ArenaMode::isRanked).map(ArenaMode::getSchemType).collect(Collectors.toList()); - private static final Set coloredTeams = new HashSet<>(); - static { - coloredTeams.add(12); - coloredTeams.add(54); - coloredTeams.add(285); - } - @EventHandler public void onChatEvent(ChatEvent e) { if(!(e.getSender() instanceof ProxiedPlayer)) @@ -101,7 +94,7 @@ public class ChatListener extends BasicListener { public static void sendChat(ChatSender sender, Stream receivers, String format, ChatSender msgReceiver, String message) { SteamwarUser user = sender.user(); - final String coloredMessage = (user.prefix() != UserPerm.emptyPrefix || coloredTeams.contains(user.getTeam())) ? ChatColor.translateAlternateColorCodes('&', message) : message; + final String coloredMessage = user.hasPerm(UserPerm.COLOR_CHAT) ? ChatColor.translateAlternateColorCodes('&', message) : message; if(chatFilter(sender, coloredMessage)) return; diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index 6a690ef..fff1abf 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -134,8 +134,8 @@ BAN_UNTIL=§7You are §e§lbanned §euntil {0}§8: §e{1} UNBAN_ERROR=§cThe player isn't banned. UNBAN=§7You have §e§lunbanned §e{0}. -BAN_AVOIDING_ALERT=§cPotential ban bypass by §r{0}§c: §c -BAN_AVOIDING_LIST={0} §e{1} §c +BAN_AVOIDING_ALERT=§cPotential ban bypass by §r{0}§c: {1} +BAN_AVOIDING_LIST=§c{0} §e{1} BAN_AVOIDING_BAN_HOVER=§cBan player because of bann bypass. MUTE_TEAM={0} §e{1} §7was §e§lmuted§7 by §e{2} {3}§8: §f{4} diff --git a/src/de/steamwar/messages/BungeeCore_de.properties b/src/de/steamwar/messages/BungeeCore_de.properties index 95c01db..fcb2cf0 100644 --- a/src/de/steamwar/messages/BungeeCore_de.properties +++ b/src/de/steamwar/messages/BungeeCore_de.properties @@ -119,8 +119,8 @@ BAN_UNTIL=§7Du bist §ebis zum {0} §e§lgebannt§8. §7Grund§8: §e{1} UNBAN_ERROR=§cDer Spieler ist nicht gebannt. UNBAN=§7Du hast §e{0} §e§lentbannt. -BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: §c -BAN_AVOIDING_LIST={0} §e{1} §c +BAN_AVOIDING_ALERT=§cMögliche Bannumgehung durch §r{0}§c: {1} +BAN_AVOIDING_LIST=§c{0} §e{1} BAN_AVOIDING_BAN_HOVER=§cBanne Spieler wegen Bannumgehung MUTE_TEAM={0} §e{1} §7wurde von §e{2} {3} §e§lgemuted§8. §7Grund§8: §f{4}