From 507b7c25699c33d893c7870480f1e5309b90c874 Mon Sep 17 00:00:00 2001 From: Sakziea Date: Wed, 5 Aug 2026 19:20:27 +0200 Subject: [PATCH] Add event showtable --- .../steamwar/messages/BungeeCore.properties | 4 +- .../messages/BungeeCore_de.properties | 4 +- .../velocitycore/commands/EventCommand.java | 55 ++++++++++++++++--- 3 files changed, 53 insertions(+), 10 deletions(-) diff --git a/VelocityCore/src/de/steamwar/messages/BungeeCore.properties b/VelocityCore/src/de/steamwar/messages/BungeeCore.properties index e41aa576..8ca21d33 100644 --- a/VelocityCore/src/de/steamwar/messages/BungeeCore.properties +++ b/VelocityCore/src/de/steamwar/messages/BungeeCore.properties @@ -272,7 +272,7 @@ CHALLENGE_ACCEPT_HOVER = §aAccept challenge EVENT_TIME_FORMAT = HH:mm EVENT_DATE_FORMAT = dd.MM. EVENT_TEAM_USAGE = §8/§7event team §8[§eTeam§8] - §7To teleport to a fight -EVENT_SHOW_USAGE = §8/§7event show §8[§eEvent§8] - §7To show the fights of that Event +EVENT_SHOW_FIGHTS_USAGE = §8/§7event showfights §8[§eEvent§8] - §7To show the fights of that Event EVENT_NO_TEAM = §cThis team does not exist EVENT_NO_FIGHT_TEAM = §cThis team has no current fight EVENT_NO_CURRENT = §cThere is no event taking place currently @@ -286,6 +286,8 @@ EVENT_CURRENT_EVENT = §e§l{0} EVENT_CURRENT_FIGHT = §7{0} §{1}{2}§8 vs §{3}{4} EVENT_CURRENT_FIGHT_WIN = §8: §7Victory §{0}{1} EVENT_CURRENT_FIGHT_DRAW = §8: §7Draw +EVENT_TEAM_TABLE = §{0}{1}{2} §8 with §e{3} §7points +EVENT_SHOW_TABLE_USAGE = §8/§7event showtable §8[§eEvent§8] - §7To show the table of that Event #EventRescheduleCommand EVENTRESCHEDULE_USAGE = §8/§7eventreschedule §8[§eTeam1§8] [§eTeam2§8] diff --git a/VelocityCore/src/de/steamwar/messages/BungeeCore_de.properties b/VelocityCore/src/de/steamwar/messages/BungeeCore_de.properties index 0de71aa0..60abb321 100644 --- a/VelocityCore/src/de/steamwar/messages/BungeeCore_de.properties +++ b/VelocityCore/src/de/steamwar/messages/BungeeCore_de.properties @@ -254,7 +254,7 @@ CHALLENGE_ACCEPT_HOVER = §aHerausforderung annehmen EVENT_TIME_FORMAT = HH:mm EVENT_DATE_FORMAT = dd.MM. EVENT_TEAM_USAGE=§8/§7event team §8[§eTeam§8] - §7Um dich zum Kampf zu teleportieren -EVENT_SHOW_USAGE = §8/§7event show §8[§eEvent§8] - §7Um die fights des Events zu zeigen +EVENT_SHOW_FIGHTS_USAGE = §8/§7event showfights §8[§eEvent§8] - §7Um die fights des Events zu zeigen EVENT_NO_TEAM = §cDieses Team gibt es nicht EVENT_NO_FIGHT_TEAM = §cDas Team kämpft derzeit nicht EVENT_NO_CURRENT = §cDerzeit findet kein Event statt @@ -268,6 +268,8 @@ EVENT_CURRENT_EVENT = §e§l{0} EVENT_CURRENT_FIGHT = §7{0} §{1}{2}§8 vs §{3}{4} EVENT_CURRENT_FIGHT_WIN = §8: §7Sieg §{0}{1} EVENT_CURRENT_FIGHT_DRAW = §8: §7Unentschieden +EVENT_TEAM_TABLE = §{0}{1}{2} §8 mit §e{3} §7Punkten +EVENT_SHOW_TABLE_USAGE = §8/§7event showtable §8[§eEvent§8] - §7Um die Tabelle des Events zu zeigen. #EventRescheduleCommand EVENTRESCHEDULE_USAGE = §8/§7eventreschedule §8[§eTeam1§8] [§eTeam2§8] diff --git a/VelocityCore/src/de/steamwar/velocitycore/commands/EventCommand.java b/VelocityCore/src/de/steamwar/velocitycore/commands/EventCommand.java index e90401af..cd34f121 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/commands/EventCommand.java +++ b/VelocityCore/src/de/steamwar/velocitycore/commands/EventCommand.java @@ -19,6 +19,7 @@ package de.steamwar.velocitycore.commands; +import com.google.protobuf.MapEntry; import de.steamwar.command.PreviousArguments; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeMapper; @@ -90,16 +91,54 @@ public class EventCommand extends SWCommand { sender.system("EVENT_TEAM_USAGE"); Event currentEvent = Event.get(); - eventShowPage(sender, currentEvent, 1); + eventShowFightsPage(sender, currentEvent, 1); } - @Register(value = "show", description = "EVENT_SHOW_USAGE") - public void eventShow(Chatter sender, Event event) { - eventShowPage(sender, event, 1); + @Register(value = "showtable", description = "EVENT_SHOW_TABLE_USAGE") + public void eventtable(Chatter sender, Event event) { + if (!Instant.now().isBefore(event.getEnd().toInstant())) return; + + Map Teampoints = new HashMap<>(); + + EventFight.getEvent(event.getEventID()).forEach(eventFight -> { + if (eventFight.hasFinished() && eventFight.getGroup().isPresent()) { + switch (eventFight.getErgebnis()) { + case 1: + //win blue + Teampoints.put(eventFight.getTeamBlue(), Teampoints.getOrDefault(eventFight.getTeamBlue(), 0) + eventFight.getGroup().get().getPointsPerWin()); + Teampoints.put(eventFight.getTeamRed(), Teampoints.getOrDefault(eventFight.getTeamRed(),0) + eventFight.getGroup().get().getPointsPerLoss()); + break; + case 2: + //win red + Teampoints.put(eventFight.getTeamBlue(), Teampoints.getOrDefault(eventFight.getTeamBlue(),0) + eventFight.getGroup().get().getPointsPerLoss()); + Teampoints.put(eventFight.getTeamRed(), Teampoints.getOrDefault(eventFight.getTeamRed(),0) + eventFight.getGroup().get().getPointsPerWin()); + break; + default: + //draw + Teampoints.put(eventFight.getTeamBlue(), Teampoints.getOrDefault(eventFight.getTeamBlue(),0) + eventFight.getGroup().get().getPointsPerDraw()); + Teampoints.put(eventFight.getTeamRed(), Teampoints.getOrDefault(eventFight.getTeamRed(),0) + eventFight.getGroup().get().getPointsPerDraw()); + } + } + }); + Map Teampointssortet = Teampoints.entrySet() + .stream() + .sorted(Map.Entry.comparingByValue()) + .collect(Collectors.toMap( + Map.Entry::getKey, + Map.Entry::getValue, + (a , b) -> a, + LinkedHashMap::new + )); + + for (Map.Entry entry : Teampointssortet.entrySet()) { + Component finalmessage = sender.parse("EVENT_TEAM_TABLE",Team.byId(entry.getKey()).getTeamColor(), Team.byId(entry.getKey()).getTeamKuerzel(), Team.byId(entry.getKey()).getTeamName(), entry.getValue()); + finalmessage = finalmessage.clickEvent(ClickEvent.runCommand("/team info " + Team.byId(entry.getKey()).getTeamName())); + sender.sendMessage(finalmessage); + } } - @Register(value = "show", description = "EVENT_SHOW_USAGE") - public void eventShowPage(Chatter sender, Event event, int page) { + @Register(value = "showfights", description = "EVENT_SHOW_FIGHTS_USAGE") + public void eventShowFightsPage(Chatter sender, Event event, @AllowNull @OptionalValue("1") int page) { if (!Instant.now().isBefore(event.getEnd().toInstant())) return; int pagecount = sendEventPage(sender, event, page); @@ -112,7 +151,7 @@ public class EventCommand extends SWCommand { if (pagecount != 0 && page != 1) { finalmessage = sender.parse("UTIL_LIST_BACK_ARROW"); - finalmessage = finalmessage.clickEvent(ClickEvent.runCommand("/event show " + event.getEventName() + " " + prevpage)); + finalmessage = finalmessage.clickEvent(ClickEvent.runCommand("/event showfights " + event.getEventName() + " " + prevpage)); finalmessage = finalmessage.append(pagenumber); } else { finalmessage = pagenumber; @@ -120,7 +159,7 @@ public class EventCommand extends SWCommand { if (pagecount != 0 && pagecount > page) { Component nextbutton = sender.parse("UTIL_LIST_NEXT"); - nextbutton = nextbutton.clickEvent(ClickEvent.runCommand("/event show " + event.getEventName() + " " + nextpage)); + nextbutton = nextbutton.clickEvent(ClickEvent.runCommand("/event showfights " + event.getEventName() + " " + nextpage)); finalmessage = finalmessage.append(nextbutton); } sender.sendMessage(finalmessage);