Playtime Command #285
@ -25,6 +25,9 @@ import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.connection.ProxiedPlayer;
|
||||
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.Format;
|
||||
import java.text.NumberFormat;
|
||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
|
||||
import java.util.Locale;
|
||||
|
||||
public class PlaytimeCommand extends BasicCommand{
|
||||
|
||||
@ -37,6 +40,10 @@ public class PlaytimeCommand extends BasicCommand{
|
||||
if(!(sender instanceof ProxiedPlayer))
|
||||
YoyoNow
hat
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.
Lixfel
hat
```
format = NumberFormat.getNumberInstance(locale);
format.setMaximumFractionDigits(2);
```
YoyoNow
hat
Ein Ein `TIME_FORMAT` gibt es nicht, dass hast du umbenannt in `DECIMAL_FORMAT`.
|
||||
return;
|
||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
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
YoyoNow
hat
Diese Variable könnte man inlinen, da diese nur einmal verwendet wird. Diese Variable könnte man inlinen, da diese nur einmal verwendet wird.
|
||||
Message.send("HOURS_PLAYED", sender, new DecimalFormat("###.##").format((SteamwarUser.get((ProxiedPlayer) sender).getOnlinetime() / (double) 3600)));
|
||||
NumberFormat format = NumberFormat.getNumberInstance(Locale.GERMAN);
|
||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
Vllt sollte man auch eine Zeile mehr hier hinter schmeißen. Vllt sollte man auch eine Zeile mehr hier hinter schmeißen.
YoyoNow
hat
Hier bitte die Locale des Spielers nutzen. Du könntest es auch mit:
lösen. Und dann müsste in der 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'.
YoyoNow
hat
Hier wtf? Hier wtf?
YoyoNow
hat
`HOURS_PLAYED`:
```java
Message.send("HOURS_PLAYED", sender, format);
```
Lixfel
hat
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()).
Lixfel
hat
Sr, das kann so nicht funktionieren und ist im allgemeinen nicht ganz so schön. Bitte zurück zu NumberFormat. 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.
YoyoNow
hat
Ich habe nur auch eine alternative gesagt, nicht welche man verwenden soll. Ich habe nur auch eine alternative gesagt, nicht welche man verwenden soll.
Lixfel
hat
Was zum Henker machst du denn da schon wieder? Vergiss LocalUtils und DECIMAL_FORMAT. Nimm 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);
|
||||
format.format((SteamwarUser.get((ProxiedPlayer) sender).getOnlinetime() / (double) 3600));
|
||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
Hier keine Leerzeile. Hier keine Leerzeile.
|
||||
|
||||
YoyoNow markierte diese Unterhaltung als gelöst
Veraltet
YoyoNow
hat
Was machst du hier? Was machst du hier?
|
||||
Message.send("HOURS_PLAYED", sender, format);
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
Lixfel
hat
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: 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)`.
|
||||
}
|
||||
}
|
||||
|
Über Spaces könnte man sich hier streiten, aber das tuen Lixfel und ich uns glaube überall und immer.