- Баллы
- 76
Всем ку. Мне нужно каждые 5 минут сохранять время проведенное на сервере игроком в конфиг (для теста сделал каждые 3 секунды). Проблема заключается в том, что при сохранении накидывается лишнее время. Я долго с этим возился и не смог разобраться, попрошу не гнобить ☹️
PHP:
public static void runnableForSave(Main main, Player p)
{
int taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(main, new Runnable()
{
@Override
public void run()
{
if(playerInFile(p))
{
long s = System.currentTimeMillis();
long get = playerTime.get(p.getUniqueId());
int o = (int) (s-get);
int del = o/1000;
int getco = db.getInt(p.getName()+".time");
int tp = del + getco;
db.set(p.getName()+".time", tp);
long gen = playerTime.get(p.getUniqueId());
int ma = (int) (s - gen);
int m = ma/1000;
int getconf = db.getInt(p.getName()+".lvlprint");
int to = m+getconf;
db.set(p.getName()+".lvlprint", to);
Bukkit.getLogger().info("TIME IS: "+tp);
Bukkit.getLogger().info("LVLPRINT IS: "+to);
saveData();
}
else
{
Utilas.addPlayer(p, Utilas.minusTime(p, Utilas.playerTime.get(p.getUniqueId())), 1, 0, Utilas.minusTime(p, Utilas.playerTime.get(p.getUniqueId())));
}
}
}, 0, 60);
runnableMap.put(p.getUniqueId(), taskID);
}