SteamWar/BungeeCore
Archiviert
13
2

Playtime Command #285

Zusammengeführt
Lixfel hat 24 Commits von Playtime_Command nach master 2022-01-01 21:04:49 +01:00 zusammengeführt
3 geänderte Dateien mit 54 neuen und 1 gelöschten Zeilen

Datei anzeigen

@ -127,6 +127,7 @@ public class BungeeCore extends Plugin {
new VerifyCommand();
new ReplayCommand();
new GDPRQuery();
new PlaytimeCommand();
// Punishment Commands:
new PunishmentCommand("ban", Punishment.PunishmentType.Ban);

Datei anzeigen

@ -0,0 +1,49 @@
/*
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Bitte hier noch unseren AGPL-Licence Header als Kommentar davorpacken.

Bitte hier noch unseren AGPL-Licence Header als Kommentar davorpacken.
This file is a part of the SteamWar software.
Copyright (C) 2020 SteamWar.de-Serverteam
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Annotationen werden eigentlich immer vor den methoden Kopf geschrieben, in einzelnen Zeilen.

Annotationen werden eigentlich immer vor den methoden Kopf geschrieben, in einzelnen Zeilen.
along with this program. If not, see <https://www.gnu.org/licenses/>.
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Hiervor bitte auch wirklich prüfen, ob sender ein ProxiedPlayer ist (und ansonsten einfach vorher returnen). Ist immer etwas ungeil, wenn (berechtigte) Fehler fliegen, die landen dann nämlich alle in der Fehlerdatenbank.

Hiervor bitte auch wirklich prüfen, ob sender ein ProxiedPlayer ist (und ansonsten einfach vorher returnen). Ist immer etwas ungeil, wenn (berechtigte) Fehler fliegen, die landen dann nämlich alle in der Fehlerdatenbank.
*/
package de.steamwar.bungeecore.commands;
import de.steamwar.bungeecore.Message;
import de.steamwar.bungeecore.sql.SteamwarUser;
import net.md_5.bungee.api.CommandSender;
import net.md_5.bungee.api.connection.ProxiedPlayer;
import org.apache.commons.lang3.LocaleUtils;
import java.text.DecimalFormat;
import java.text.NumberFormat;
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Über Spaces könnte man sich hier streiten, aber das tuen Lixfel und ich uns glaube überall und immer.

Über Spaces könnte man sich hier streiten, aber das tuen Lixfel und ich uns glaube überall und immer.
import java.util.Locale;
public class PlaytimeCommand extends BasicCommand{
public PlaytimeCommand() {
super("playtime", null);
}
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Genauso hier ;)

Genauso hier ;)
Veraltet
Review

Hier nichts Leerzeile

Hier nichts Leerzeile
Veraltet
Review

Warum ist hier wieder eine Leerzeile

Warum ist hier wieder eine Leerzeile
Veraltet
Review

weils schön aussieht

weils schön aussieht
Veraltet
Review

NEIN!

NEIN!
@Override
YoyoNow markierte diese Unterhaltung als gelöst
Review

Hier meinte ich ein Space nach if

Hier meinte ich ein Space nach `if`
public void execute(CommandSender sender, String[] strings) {
if(!(sender instanceof ProxiedPlayer))
Veraltet
Review

Ich würde mir noch wünschen, dass dieses DecimalFormat vllt auch im deutschen dann mit ',' ist. Ich wüsste aber nicht wie der DecimalFormat genaut funktioniert.

Ich würde mir noch wünschen, dass dieses DecimalFormat vllt auch im deutschen dann mit ',' ist. Ich wüsste aber nicht wie der DecimalFormat genaut funktioniert.
Veraltet
Review
format = NumberFormat.getNumberInstance(locale);
format.setMaximumFractionDigits(2);
``` format = NumberFormat.getNumberInstance(locale); format.setMaximumFractionDigits(2); ```
Veraltet
Review

Ein TIME_FORMAT gibt es nicht, dass hast du umbenannt in DECIMAL_FORMAT.

Ein `TIME_FORMAT` gibt es nicht, dass hast du umbenannt in `DECIMAL_FORMAT`.
return;
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Vllt sollte hier eine neue Nachricht gewählt werden, damit der User besser versteht was für ein Wert er erhält.

Vllt sollte hier eine neue Nachricht gewählt werden, damit der User besser versteht was für ein Wert er erhält.
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Diese Variable könnte man inlinen, da diese nur einmal verwendet wird.

Diese Variable könnte man inlinen, da diese nur einmal verwendet wird.
NumberFormat format = NumberFormat.getNumberInstance(((ProxiedPlayer)sender).getLocale());
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Vllt sollte man auch eine Zeile mehr hier hinter schmeißen.

Vllt sollte man auch eine Zeile mehr hier hinter schmeißen.
Veraltet
Review

Hier bitte die Locale des Spielers nutzen. Du könntest es auch mit:

String s = Message.parse("TIME_FORMAT", sender);
new DecimalFormat(s).format(...)

lösen. Und dann müsste in der .properties datei ein key für 'TIME_FORMAT'.

Hier bitte die Locale des Spielers nutzen. Du könntest es auch mit: ```java String s = Message.parse("TIME_FORMAT", sender); new DecimalFormat(s).format(...) ``` lösen. Und dann müsste in der `.properties` datei ein key für 'TIME_FORMAT'.
Veraltet
Review

Hier wtf?

Hier wtf?
Veraltet
Review

HOURS_PLAYED:

Message.send("HOURS_PLAYED", sender, format);
`HOURS_PLAYED`: ```java Message.send("HOURS_PLAYED", sender, format); ```
Veraltet
Review

YoyoNow, sr, aber dein Lösungsanschlag hier ist schlicht falsch. Das mit NumberFormat ist der korrekte Weg (wenn auch mit player.getLocale()).

YoyoNow, sr, aber dein Lösungsanschlag hier ist schlicht falsch. Das mit NumberFormat ist der korrekte Weg (wenn auch mit player.getLocale()).
Veraltet
Review

Sr, das kann so nicht funktionieren und ist im allgemeinen nicht ganz so schön. Bitte zurück zu NumberFormat.
YoyoNow hat da einen ganz schlechten Tipp/Empfehlung gegeben, sr.

Sr, das kann so nicht funktionieren und ist im allgemeinen nicht ganz so schön. Bitte zurück zu NumberFormat. YoyoNow hat da einen ganz schlechten Tipp/Empfehlung gegeben, sr.
Veraltet
Review

Ich habe nur auch eine alternative gesagt, nicht welche man verwenden soll.

Ich habe nur auch eine alternative gesagt, nicht welche man verwenden soll.
Veraltet
Review

Was zum Henker machst du denn da schon wieder? Vergiss LocalUtils und DECIMAL_FORMAT. Nimm NumberFormat.getNumberInstance(((ProxiedPlayer)sender).getLocale()).

Dein Code kann nicht funktionieren, denn wie sollen die LocaleUtils denn aus deinem String "###,##" die korrekte Sprache herausfinden, um diese dann dem NumberFormat zu übergeben? NumberFormat weiß selbst, wie die Zahlen in einer Sprache korrekt formatiert werden.

Was zum Henker machst du denn da schon wieder? Vergiss LocalUtils und DECIMAL_FORMAT. Nimm `NumberFormat.getNumberInstance(((ProxiedPlayer)sender).getLocale())`. Dein Code kann nicht funktionieren, denn wie sollen die LocaleUtils denn aus deinem String "###,##" die korrekte Sprache herausfinden, um diese dann dem NumberFormat zu übergeben? NumberFormat weiß selbst, wie die Zahlen in einer Sprache korrekt formatiert werden.
format.setMaximumFractionDigits(2);
String formattedText = format.format((SteamwarUser.get((ProxiedPlayer) sender).getOnlinetime() / (double) 3600));
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Hier keine Leerzeile.

Hier keine Leerzeile.
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Was machst du hier?

Was machst du hier?
Message.send("HOURS_PLAYED", sender, formattedText);
zOnlyKroks markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Sr, dass es mir erst jetzt aufgefallen ist: Das Message-System funktioniert da etwas anders. Parameter werden einfach hinten als Argumente drangehängt. In dem Fall also einfach: Message.send("HOURS_PLAYED", sender, formattedText).

Sr, dass es mir erst jetzt aufgefallen ist: Das Message-System funktioniert da etwas anders. Parameter werden einfach hinten als Argumente drangehängt. In dem Fall also einfach: `Message.send("HOURS_PLAYED", sender, formattedText)`.
}
}

Datei anzeigen

@ -568,4 +568,7 @@ GDPR_STATUS_WORLD=§7Packe Bauwelten...
GDPR_STATUS_INVENTORIES=§7Suche und packe Inventare...
GDPR_STATUS_DATABASE=§7Packe Datenbankinhalte...
GDPR_STATUS_LOGS=§7Suche und packe logs...
GDPR_STATUS_FINISHED=§7Packen abgeschlossen
GDPR_STATUS_FINISHED=§7Packen abgeschlossen
#Playtime Command
HOURS_PLAYED=§7Deine Spielzeit beträgt§8: §e{0}h