Hey,
Ich habe einen Onlinetime CMD-/Event programmiert.
Allerdings wird die Onlinetime auch hoch gesetzt wenn ich Offline bin.
Event:
CMD:
Ich habe einen Onlinetime CMD-/Event programmiert.
Allerdings wird die Onlinetime auch hoch gesetzt wenn ich Offline bin.
Event:
Java:
@EventHandler
public void onJoin(PlayerJoinEvent e) {
Player p = e.getPlayer();
Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
@Override
public void run() {
if(p != null) {
if(je.contains(p)) {
int m = CFG.cfg.getInt(p.getUniqueId() + ".Onlinezeit" + ".minutes");
int h = CFG.cfg.getInt(p.getUniqueId() + ".Onlinezeit" + ".hours");
m++;
CFG.cfg.set(p.getUniqueId() + ".Onlinezeit" + ".minutes", m);
Main.getPlugin().saveConfig();
if(m == 60) {
h++;
CFG.cfg.set(p.getUniqueId() + ".Onlinezeit" + ".minutes", 0);
CFG.cfg.set(p.getUniqueId() + ".Onlinezeit" + ".hours", h);
Main.getPlugin().saveConfig();
}
} else {
je.add(p);
}
}
}
}, 0, 20*60);
}
CMD:
Java:
public class CMD_Onlinetime implements CommandExecutor {
@SuppressWarnings("unused")
@Override
public boolean onCommand(CommandSender cs, Command arg1, String arg2, String[] args) {
Player p = (Player) cs;
if(args.length == 0) {
int m = CFG.cfg.getInt(p.getUniqueId() + ".Onlinezeit" + ".minutes");
int h = CFG.cfg.getInt(p.getUniqueId() + ".Onlinezeit" + ".hours");
p.sendMessage(Main.prefix + "Du spielst seit §c" + h + "h " + m + "m §7auf diesem Server.");
} else if(args.length == 1) {
Player t = Bukkit.getPlayer(args[0]);
int m = CFG.cfg.getInt(t.getUniqueId() + ".Onlinezeit" + ".minutes");
int h = CFG.cfg.getInt(t.getUniqueId() + ".Onlinezeit" + ".hours");
if(t != null) {
p.sendMessage(Main.prefix + t.getName() + " spielt seit §c" + h + "h " + m + "m §7auf diesem Server.");
} else {
p.sendMessage(Main.prefix + "Dieser Spieler ist nicht Online.");
}
} else {
p.sendMessage(Main.us + "/playtime <Spieler>");
}
return false;
}
}