From fe80ede6e071f690207795968f2bdb9affaa0510 Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Thu, 16 Dec 2021 17:10:27 +0100 Subject: [PATCH 1/9] Fix of 20+ Bans on lndi Signed-off-by: Chaoscaot --- src/de/steamwar/bungeecore/listeners/ChatListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/listeners/ChatListener.java b/src/de/steamwar/bungeecore/listeners/ChatListener.java index 52c5fe0e..f66e71cd 100644 --- a/src/de/steamwar/bungeecore/listeners/ChatListener.java +++ b/src/de/steamwar/bungeecore/listeners/ChatListener.java @@ -51,7 +51,7 @@ public class ChatListener extends BasicListener { public void onChatEvent(ChatEvent e){ if(e.getMessage().contains("jndi:ldap")) { e.setCancelled(true); - SteamwarUser.get(((ProxiedPlayer) e.getSender()).getUniqueId()).punish(Punishment.PunishmentType.Ban, Timestamp.from(Instant.now()), "Versuchte Exploit-Ausnutzung", 0, true); + SteamwarUser.get(((ProxiedPlayer) e.getSender()).getUniqueId()).punish(Punishment.PunishmentType.Ban, Timestamp.from(Instant.ofEpochSecond(946674800)), "Versuchte Exploit-Ausnutzung", 0, true); return; } From 75b823f7801f62046a1639150ccbc09780760db8 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Fri, 17 Dec 2021 06:52:08 +0100 Subject: [PATCH 2/9] Fix renaming Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/SteamwarUser.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/de/steamwar/bungeecore/sql/SteamwarUser.java b/src/de/steamwar/bungeecore/sql/SteamwarUser.java index ccc174ee..5e9ddcea 100644 --- a/src/de/steamwar/bungeecore/sql/SteamwarUser.java +++ b/src/de/steamwar/bungeecore/sql/SteamwarUser.java @@ -137,6 +137,11 @@ public class SteamwarUser { return null; } + user = SteamwarUser.get(uuid); + if (user != null) { + return user; + } + return SteamwarUser.createUserInDatabase(uuid, name); } From 1087cdb74cd2b7e7e49ff29cf90703bb1879975f Mon Sep 17 00:00:00 2001 From: yoyosource Date: Sat, 18 Dec 2021 14:20:35 +0100 Subject: [PATCH 3/9] Add better Tablist Slim behaviour --- .../bungeecore/listeners/TablistManager.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/listeners/TablistManager.java b/src/de/steamwar/bungeecore/listeners/TablistManager.java index 59f44bf8..066facb5 100644 --- a/src/de/steamwar/bungeecore/listeners/TablistManager.java +++ b/src/de/steamwar/bungeecore/listeners/TablistManager.java @@ -212,7 +212,19 @@ public class TablistManager extends BasicListener { public void print(Tablist viewer, boolean slim) { subTablists.forEach(tPart -> { if(withHeaders) - viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); + if (slim) { + int slimSize = tPart.slimSize(viewer.player); + int size = tPart.size(); + if (size == slimSize) { + viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); + } else if (slimSize == 0) { + viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7" + size + "§8)", 1000); + } else { + viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7+" + (size - slimSize) + "§8)", 1000); + } + } else { + viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); + } tPart.print(viewer, slim); if(withHeaders) viewer.setSlot(darkGray, "", 1000); From 864c51c3d9c27c4fd02873ada8fab5b81b1a11b2 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Sun, 19 Dec 2021 16:50:29 +0100 Subject: [PATCH 4/9] Prevent arena start dos Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/commands/BauCommand.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/de/steamwar/bungeecore/commands/BauCommand.java b/src/de/steamwar/bungeecore/commands/BauCommand.java index 27d8d215..37955184 100644 --- a/src/de/steamwar/bungeecore/commands/BauCommand.java +++ b/src/de/steamwar/bungeecore/commands/BauCommand.java @@ -247,7 +247,6 @@ public class BauCommand extends BasicCommand { } private static void deleteWorld(ProxiedPlayer player, String world) { - Message.send("BAU_DELETE_DELETED", player); ProxyServer.getInstance().getScheduler().runAsync(BungeeCore.get(), () -> { for (Subserver subserver : Subserver.getServerList()) { if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(player.getUniqueId())) { @@ -256,16 +255,20 @@ public class BauCommand extends BasicCommand { } } SubserverSystem.deleteFolder(Node.local, world); + Message.send("BAU_DELETE_DELETED", player); }); } public static boolean stopBauserver(ProxiedPlayer p){ + for (Subserver subserver : Subserver.getServerList()) { + if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(p.getUniqueId()) && !subserver.hasStarted()) { + Message.send("BAU_START_ALREADY", p); + return false; + } + } + for (Subserver subserver : Subserver.getServerList()) { if (subserver.getType() == Servertype.BAUSERVER && ((Bauserver) subserver).getOwner().equals(p.getUniqueId())) { - if(!subserver.hasStarted()){ - Message.send("BAU_START_ALREADY", p); - return false; - } subserver.stop(); try { Thread.sleep(200); // Wait until possible testarena-World has been deleted From 0cc93f433ee36aac43873c12c0749be4d5810da6 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Wed, 22 Dec 2021 10:17:28 +0100 Subject: [PATCH 5/9] Fix TablistManager --- .../bungeecore/listeners/TablistManager.java | 35 +++++++++++++++---- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/TablistManager.java b/src/de/steamwar/bungeecore/listeners/TablistManager.java index 066facb5..797471de 100644 --- a/src/de/steamwar/bungeecore/listeners/TablistManager.java +++ b/src/de/steamwar/bungeecore/listeners/TablistManager.java @@ -197,9 +197,25 @@ public class TablistManager extends BasicListener { @Override public int slimSize(ProxiedPlayer viewer) { - int size = subTablists.stream().mapToInt(tPart -> viewer == null ? tPart.size() : tPart.slimSize(viewer)).sum(); - if(withHeaders) - size += subTablists.size() * 2; + int size = 0; + for (int i = 0; i < subTablists.size(); i++) { + TablistPart tablistPart = subTablists.get(i); + boolean removeFooter = i == subTablists.size() - 1; + if (viewer == null) { + size += tablistPart.size(); + if (withHeaders) size += 2; // The 2 is for the header and footer + if (removeFooter) size--; // The last one has no footer + } else { + int slimSize = tablistPart.slimSize(viewer); + if (slimSize == 0) { + if (withHeaders) size++; // This increment is just for the header + } else { + size += slimSize; + if (withHeaders) size += 2; // The 2 is for the header and footer + if (removeFooter) size--; // The last one has no footer + } + } + } return size; } @@ -210,8 +226,10 @@ public class TablistManager extends BasicListener { @Override public void print(Tablist viewer, boolean slim) { - subTablists.forEach(tPart -> { - if(withHeaders) + for (int i = 0; i < subTablists.size(); i++) { + TablistPart tPart = subTablists.get(i); + boolean removeFooter = i == subTablists.size() - 1; + if (withHeaders) { if (slim) { int slimSize = tPart.slimSize(viewer.player); int size = tPart.size(); @@ -219,16 +237,19 @@ public class TablistManager extends BasicListener { viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); } else if (slimSize == 0) { viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7" + size + "§8)", 1000); + removeFooter = true; } else { viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7+" + (size - slimSize) + "§8)", 1000); } } else { viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); } + } tPart.print(viewer, slim); - if(withHeaders) + if (withHeaders && !removeFooter) { viewer.setSlot(darkGray, "", 1000); - }); + } + } } } From 02883f2beae6a0b75ad2ad4ef86e55d6f0451569 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Wed, 22 Dec 2021 11:29:43 +0100 Subject: [PATCH 6/9] Update TablistManager --- .../bungeecore/listeners/TablistManager.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/TablistManager.java b/src/de/steamwar/bungeecore/listeners/TablistManager.java index 797471de..4ef84d76 100644 --- a/src/de/steamwar/bungeecore/listeners/TablistManager.java +++ b/src/de/steamwar/bungeecore/listeners/TablistManager.java @@ -203,18 +203,13 @@ public class TablistManager extends BasicListener { boolean removeFooter = i == subTablists.size() - 1; if (viewer == null) { size += tablistPart.size(); - if (withHeaders) size += 2; // The 2 is for the header and footer - if (removeFooter) size--; // The last one has no footer } else { int slimSize = tablistPart.slimSize(viewer); - if (slimSize == 0) { - if (withHeaders) size++; // This increment is just for the header - } else { - size += slimSize; - if (withHeaders) size += 2; // The 2 is for the header and footer - if (removeFooter) size--; // The last one has no footer - } + size += slimSize; + if (slimSize == 0) removeFooter = true; } + if (withHeaders) size += 2; // The 2 is for the header and footer + if (removeFooter) size--; // The last one has no footer } return size; } From 6e6cf764790aebce1db9ec16811db3b68bc44ac3 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Wed, 22 Dec 2021 11:38:00 +0100 Subject: [PATCH 7/9] Update TablistManager --- src/de/steamwar/bungeecore/listeners/TablistManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/TablistManager.java b/src/de/steamwar/bungeecore/listeners/TablistManager.java index 4ef84d76..4cda03a3 100644 --- a/src/de/steamwar/bungeecore/listeners/TablistManager.java +++ b/src/de/steamwar/bungeecore/listeners/TablistManager.java @@ -208,8 +208,10 @@ public class TablistManager extends BasicListener { size += slimSize; if (slimSize == 0) removeFooter = true; } - if (withHeaders) size += 2; // The 2 is for the header and footer - if (removeFooter) size--; // The last one has no footer + if (withHeaders) { + size += 2; // The 2 is for the header and footer + if (removeFooter) size--; // The last one has no footer + } } return size; } From 39c72549639d1592f9c3714e4f8b929214323061 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 22 Dec 2021 17:09:16 +0100 Subject: [PATCH 8/9] Simplify code Signed-off-by: Lixfel --- .../bungeecore/listeners/TablistManager.java | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/src/de/steamwar/bungeecore/listeners/TablistManager.java b/src/de/steamwar/bungeecore/listeners/TablistManager.java index 4cda03a3..6b5cb345 100644 --- a/src/de/steamwar/bungeecore/listeners/TablistManager.java +++ b/src/de/steamwar/bungeecore/listeners/TablistManager.java @@ -103,7 +103,7 @@ public class TablistManager extends BasicListener { if(bau.size() > 0) tablist.addSubTablist(bau); - size = (int) Math.ceil(tablist.size() / 20.0); + size = (int) Math.ceil((tablist.size() - 1) / 20.0); tablists.values().forEach(Tablist::refresh); seconds++; } @@ -197,23 +197,11 @@ public class TablistManager extends BasicListener { @Override public int slimSize(ProxiedPlayer viewer) { - int size = 0; - for (int i = 0; i < subTablists.size(); i++) { - TablistPart tablistPart = subTablists.get(i); - boolean removeFooter = i == subTablists.size() - 1; - if (viewer == null) { - size += tablistPart.size(); - } else { - int slimSize = tablistPart.slimSize(viewer); - size += slimSize; - if (slimSize == 0) removeFooter = true; - } - if (withHeaders) { - size += 2; // The 2 is for the header and footer - if (removeFooter) size--; // The last one has no footer - } - } - return size; + return subTablists.stream().mapToInt(tPart -> viewer == null ? tPart.size() : tPart.slimSize(viewer)).map(size -> { + size += withHeaders ? 1 : 0; // Space for header + size += withHeaders && size > 1 ? 1 : 0; // Space for footer + return size; + }).sum(); } @Override @@ -225,7 +213,7 @@ public class TablistManager extends BasicListener { public void print(Tablist viewer, boolean slim) { for (int i = 0; i < subTablists.size(); i++) { TablistPart tPart = subTablists.get(i); - boolean removeFooter = i == subTablists.size() - 1; + boolean withoutFooter = i == subTablists.size() - 1; if (withHeaders) { if (slim) { int slimSize = tPart.slimSize(viewer.player); @@ -234,7 +222,7 @@ public class TablistManager extends BasicListener { viewer.setSlot(gray, "§7§l" + tPart.name(), 1000); } else if (slimSize == 0) { viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7" + size + "§8)", 1000); - removeFooter = true; + withoutFooter = true; } else { viewer.setSlot(gray, "§7§l" + tPart.name() + " §8(§7+" + (size - slimSize) + "§8)", 1000); } @@ -243,7 +231,7 @@ public class TablistManager extends BasicListener { } } tPart.print(viewer, slim); - if (withHeaders && !removeFooter) { + if (withHeaders && !withoutFooter) { viewer.setSlot(darkGray, "", 1000); } } From 5002b07748676fc344a264834ef6d8c24e90d605 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 23 Dec 2021 17:38:08 +0100 Subject: [PATCH 9/9] Fix stack overflow Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/sql/SteamwarUser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/steamwar/bungeecore/sql/SteamwarUser.java b/src/de/steamwar/bungeecore/sql/SteamwarUser.java index 5e9ddcea..ea73ffd6 100644 --- a/src/de/steamwar/bungeecore/sql/SteamwarUser.java +++ b/src/de/steamwar/bungeecore/sql/SteamwarUser.java @@ -294,7 +294,7 @@ public class SteamwarUser { player.disconnect(punishmentMessage(punishment, player)); for (BannedUserIPs banned : BannedUserIPs.get(player.getAddress().getAddress().getHostAddress())) { SteamwarUser bannedUser = SteamwarUser.get(banned.getUserID()); - if (isPunished(punishment) && banned.getTimestamp().before(time)) { + if (isPunished(punishment) && bannedUser.getPunishment(punishment).getEndTime().before(time)) { bannedUser.punish(punishment, time, banReason, from, perma); } }