Войти или зарегистрироваться

Помогите Как сделать проверку на изменение статистики

  • Автор темы Автор темы JayRoon
  • Дата начала Дата начала

JayRoon

Участник
Заблокирован
Пользователь
Баллы
31
Имя в Minecraft
Krongss_FUR
Вопрос в шапке может крайне не понятный, но.
Мне надо, наиграл к примеру игрок 10 минут/1 час/день и т.д и в консоль выводится любое сообщение.
Я попробовал начало будет ли писать в консоль сообщение при изменение статистики с новым значением с статистикой так -
Код:
    @EventHandler
    public void updateStatistic(PlayerStatisticIncrementEvent e) {
        if(e.getStatistic() == Statistic.PLAY_ONE_MINUTE) {
               System.out.println(e.getNewValue());
            }
        }
В итоге ничего не происходит в консоли. Ну вопрос остаётся, какую делать проверку на то что игрок наиграл к примеру первые 10 минут и первый час?
 
Не знаю, разумно ли это, на как вариант если тебе нужно только время, то запустить например при входе игрока long startTime = System.currentTimeMillis() (вроде так)
И проверять в определенный момент равно ли startTime определенному числу.
Если переводить в минуты то это вроде (startTime / 1000 / 60) в часы (startTime / 1000 / 60 / 60)
 
Не знаю, разумно ли это, на как вариант если тебе нужно только время, то запустить например при входе игрока long startTime = System.currentTimeMillis() (вроде так)
И проверять в определенный момент равно ли startTime определенному числу.
Если переводить в минуты то это вроде (startTime / 1000 / 60) в часы (startTime / 1000 / 60 / 60)
А если к примеру надо проверять сколько игрок проиграл на сервере каждый час? мне надо что бы каждый час проверялось сколько там игрок играл, и я считаю что легче было бы если бы делали через статистику.
 
Таймером можно по идее
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Игрок " player.getName + " отиграл " + (startTime/1000/60));
}
};

Timer timer = new Timer("PlayingTime");

long delay = 60000*60L;
timer.schedule(task, delay);


Только вот я не уверен, он повторяющийся или одноразовый
 
Таймером можно по идее
TimerTask task = new TimerTask() {
public void run() {
System.out.println("Игрок " player.getName + " отиграл " + (startTime/1000/60));
}
};

Timer timer = new Timer("PlayingTime");

long delay = 60000*60L;
timer.schedule(task, delay);


Только вот я не уверен, он повторяющийся или одноразовый
Я теперь не уверен вообще в чём либо, можно даже такое велосипед небольшой это назвать. Т.к надо начало фиксировать наиграл ли это время игрок, запускать шедулер и ещё что то. Так можно выполнить через ивент это?
Просто фиксировать, если 1 час к примеру игрок наиграл(1 час - каждый новый наигранный час) и выполнять код и выполнить через ивент?
 
Назад
Верх