SteamWar/BungeeCore
Archiviert
13
2

Add Whois show Playtime #126

Manuell gemergt
YoyoNow hat 4 Commits von whois-playtime nach master 2020-10-12 12:42:25 +02:00 zusammengeführt
3 geänderte Dateien mit 66 neuen und 1 gelöschten Zeilen
Nur Änderungen aus Commit e334045364 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -214,7 +214,7 @@ public class BungeeCore extends Plugin {
return;
}
config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(configFile);
}catch(IOException e){
}catch(Exception e){
log("Could not save/load config.yml", e);
ProxyServer.getInstance().stop();
return;

Datei anzeigen

@ -51,6 +51,7 @@ public class WhoisCommand extends BasicCommand {
BungeeCore.send(player, "§7Username§8: §e" + user.getUserName());
BungeeCore.send(player, "§7UUID§8: §e" + user.getUuid().toString(), "", new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, user.getUuid().toString()));
BungeeCore.send(player, "§7ID§8: §e" + user.getId());
BungeeCore.send(player, "§7Online Time§8: §e" + parseTime(user.getOnlinetime()));
Veraltet
Review

Bitte einen normalen String-Formatter oder vgl.bares nutzen und nix selbstgebasteltes. Notfalls halt immer in Spielstunden angeben.

Bitte einen normalen String-Formatter oder vgl.bares nutzen und nix selbstgebasteltes. Notfalls halt immer in Spielstunden angeben.
Team team = Team.get(user.getTeam());
BungeeCore.send(player, "§7Team§8: §e" + team.getTeamName());
@ -62,4 +63,55 @@ public class WhoisCommand extends BasicCommand {
player.sendMessage(user.muteMessage());
}
}
public static String parseTime(int seconds) {
if (seconds < 60) {
return seconds + "s";
}
int minutes = seconds / 60;
int s = 60 * minutes;
int secondsLeft = seconds - s;
if (minutes < 60) {
if (secondsLeft > 0) {
return String.valueOf(minutes + "m" + " " + secondsLeft + "s");
}
return String.valueOf(minutes + "m");
}
if (minutes < 1440) {
String time = "";
int hours = minutes / 60;
time = hours + "h";
int inMins = 60 * hours;
int leftOver = minutes - inMins;
if (leftOver >= 1) {
time = time + " " + leftOver + "m";
}
if (secondsLeft > 0) {
time = time + " " + secondsLeft + "s";
}
return time;
}
String time = "";
int days = minutes / 1440;
time = days + "d";
int inMins = 1440 * days;
int leftOver = minutes - inMins;
if (leftOver >= 1) {
if (leftOver < 60) {
time = time + " " + leftOver + "m";
} else {
int hours = leftOver / 60;
time = time + " " + hours + "h";
int hoursInMins = 60 * hours;
int minsLeft = leftOver - hoursInMins;
if (leftOver >= 1) {
time = time + " " + minsLeft + "m";
}
}
}
if (secondsLeft > 0) {
time = time + " " + secondsLeft + "s";
}
return time;
}
}

Datei anzeigen

@ -233,4 +233,17 @@ public class SteamwarUser {
throw new SecurityException(e);
}
}
public int getOnlinetime() {
ResultSet set = SQL.select("SELECT StartTime, EndTime FROM Session WHERE UserID = ?", id);
long mili = 0;
try {
while (set.next()) {
mili += (set.getTimestamp("EndTime").getTime() - set.getTimestamp("StartTime").getTime());
}
Veraltet
Review

Nope, das machst du schön alles per SQL, wir müssen doch hier nicht hunderte an Datensätzen runterladen!

Nope, das machst du schön alles per SQL, wir müssen doch hier nicht hunderte an Datensätzen runterladen!
Veraltet
Review

Nutze dazu SELECT SUM(UNIX_TIMESTAMP(EndTime) - UNIX_TIMESTAMP(StartTime)) as Playtime FROM Session WHERE UserID = ?

Nutze dazu SELECT SUM(UNIX_TIMESTAMP(EndTime) - UNIX_TIMESTAMP(StartTime)) as Playtime FROM Session WHERE UserID = ?
}catch (SQLException e){
e.printStackTrace();
}
return (int) (mili / 1000);
}
}