Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
здесь это не требуется, у рандом тп обычно нету аргументовКогда игрок вводит УСПЕШНО команду (мало ли он без аргументов ввёл),
А как посмотреть время оставшееся до разблокировки команды?Я бы сделал просто.
Создаёшь HashSet<Player>.
Когда игрок вводит УСПЕШНО команду (мало ли он без аргументов ввёл), то заносишь его в этот лист и запускаешь задачу с задержкой на время, через которое этого игрока удалить нужно с этого листа. Ну и конечно же перед вводом команды проверяешь, есть ли игрок в этом листе или нет. Если есть, то задача его ещё не удалила, а значит установленное время ещё не прошло. И говоришь ему мол гуляй.
Тогда хеш мап юзай и никаких тасков не надов. Имя игрока и время последнего юзания в этот массив кидай.А как посмотреть время оставшееся до разблокировки команды?
А можно код, пожалуйста, а то я с временем на яве не работал?Тогда хеш мап юзай и никаких тасков не надов. Имя игрока и время последнего юзания в этот массив кидай.
а погуглить?А можно код, пожалуйста, а то я с временем на яве не работал?
Это оно?Посмотри в essentials. Там есть и таймеры и задершки, датадифф и датаформат.
public void cooldown(boolean check)
throws Exception
{
Calendar time = new GregorianCalendar();
if (this.teleportOwner.getLastTeleportTimestamp() > 0L)
{
double cooldown = this.ess.getSettings().getTeleportCooldown();
Calendar earliestTime = new GregorianCalendar();
earliestTime.add(13, -(int)cooldown);
earliestTime.add(14, -(int)(cooldown * 1000.0D % 1000.0D));
long earliestLong = earliestTime.getTimeInMillis();
Long lastTime = Long.valueOf(this.teleportOwner.getLastTeleportTimestamp());
if (lastTime.longValue() > time.getTimeInMillis())
{
this.teleportOwner.setLastTeleportTimestamp(time.getTimeInMillis());
return;
}
if ((lastTime.longValue() > earliestLong) && (!this.teleportOwner.isAuthorized("essentials.teleport.cooldown.bypass")))
{
time.setTimeInMillis(lastTime.longValue());
time.add(13, (int)cooldown);
time.add(14, (int)(cooldown * 1000.0D % 1000.0D));
throw new Exception(I18n.tl("timeBeforeTeleport", new Object[] { DateUtil.formatDateDiff(time.getTimeInMillis()) }));
}
}
if (!check) {
this.teleportOwner.setLastTeleportTimestamp(time.getTimeInMillis());
}
}
А как посмотреть время оставшееся до разблокировки команды?
System.currentTimeMillis();
Ну да ты на правильном пути. Там есть и сами шедулеры и проверка на движение и тд и тп.Это оно?
Java:public void cooldown(boolean check) throws Exception { Calendar time = new GregorianCalendar(); if (this.teleportOwner.getLastTeleportTimestamp() > 0L) { double cooldown = this.ess.getSettings().getTeleportCooldown(); Calendar earliestTime = new GregorianCalendar(); earliestTime.add(13, -(int)cooldown); earliestTime.add(14, -(int)(cooldown * 1000.0D % 1000.0D)); long earliestLong = earliestTime.getTimeInMillis(); Long lastTime = Long.valueOf(this.teleportOwner.getLastTeleportTimestamp()); if (lastTime.longValue() > time.getTimeInMillis()) { this.teleportOwner.setLastTeleportTimestamp(time.getTimeInMillis()); return; } if ((lastTime.longValue() > earliestLong) && (!this.teleportOwner.isAuthorized("essentials.teleport.cooldown.bypass"))) { time.setTimeInMillis(lastTime.longValue()); time.add(13, (int)cooldown); time.add(14, (int)(cooldown * 1000.0D % 1000.0D)); throw new Exception(I18n.tl("timeBeforeTeleport", new Object[] { DateUtil.formatDateDiff(time.getTimeInMillis()) })); } } if (!check) { this.teleportOwner.setLastTeleportTimestamp(time.getTimeInMillis()); } }