Add event showtable

This commit is contained in:
2026-08-05 20:30:20 +02:00
parent a18098b8f4
commit 507b7c2569
3 changed files with 53 additions and 10 deletions
@@ -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]
@@ -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]
@@ -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<Integer, Integer> 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<Integer, Integer> 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<Integer, Integer> 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);