Add some QOL to EventCommand and EventRescheduleCommand #520
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/BungeeCore#520
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "QOLEventCommands" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
@ -88,3 +93,2 @@
if(fight.hasFinished()){
switch(fight.getErgebnis()){
if (fight.hasFinished() || fight.getErgebnis() != 0) {
Bitte hier lieber EventFight anpassen, dass hasFinished auch bei ergebnis != 0 true zurück gibt. Das macht das ganze cleaner
Wollte ich aktuell nicht machen, wegen CommonCore update! Da bin ich mir nie ganz sicher, wie ich das richtig machen muss
CommonCore ändern, Commiten, sobald es dort auf dem Master ist, Reload im Gitfenster und CommonCore-Commitnummer updaten
@ -117,0 +125,4 @@
return new TypeMapper<>() {
@Override
public Team map(Chatter sender, PreviousArguments previousArguments, String s) {
if ("PUB".equalsIgnoreCase(s) || "public".equalsIgnoreCase(s)) {
Gibt Team.get(Name) nicht auch gelöschte teams zurück? (D.h. dieser Sonderfall unnötig)?
Nein tut es nicht
@ -117,0 +136,4 @@
List<String> teams = new ArrayList<>();
Event currentEvent = Event.get();
for (EventFight fight : EventFight.getEvent(currentEvent.getEventID())) {
if (fight.hasFinished() || fight.getErgebnis() != 0) continue;
Siehe hasFinished
@ -117,0 +145,4 @@
teams.add(blue.getTeamName());
teams.add(blue.getTeamKuerzel());
}
return teams;
Teams wird massenhaft Duplikate enthalten, ggf. ein Set verwenden, wenn das Backend das nicht ordentlich reduziert.
@ -64,2 +65,4 @@
sender.system("EVENTRESCHEDULE_NO_FIGHT");
}
private TypeMapper<Team> eventTeam(Function<EventFight, Integer> teamMapper) {
Starke Codeduplication, bitte mit EventCommand generalisieren.
Ähm wie genau stellst du dir das vor? Tabcompleted beides nicht das gleiche, also klar das map könnte ich irgendwie generalisieren, aber den Rest?
Du hast halt einmal eine generische Condition (war das ein Predicate?) und einmal einen BiConsumer oder ähnlich?
Ich schaue es mir mal an ok
@ -66,0 +83,4 @@
}
List<String> teams = new ArrayList<>();
for (EventFight fight : EventFight.getEvent(currentEvent.getEventID())) {
if (fight.hasFinished() || fight.getErgebnis() != 0) continue;
Siehe hasFinished
@ -117,0 +146,4 @@
}
@ClassMapper(Team.class)
public TypeMapper<Team> eventTeams() {
Müsste der nicht local sein oder geht das auch ohne?
Guter Punkt ändere ich
@ -117,0 +148,4 @@
@ClassMapper(Team.class)
public TypeMapper<Team> eventTeams() {
return eventTeam(eventFight -> {
if (eventFight.getStartTime().after(new Timestamp(System.currentTimeMillis()))) return Collections.emptyList();
Funktioniert das so mit dem Timestamp?
Ansonsten über Instant.now().toTimestamp() konstruieren.
So hast du es schon beim EventStarter gemacht, deswegen so übernommen