Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Спасибо, работает

Там же есть пример:Че-то я не догоняю, как этим пользоваться?
PlayerCooldown pc = Cooldown.getCooldown("WandCooldown", player.getName(), 15000);
if(pc.isOver())
let player use magic wand
pc.reset();
else
player.sendMessage("You have: " + pc.getTimeLeft() + "Seconds left" );
}
А как начать сам отсчет?Там же есть пример:
"WandCooldown" - имя кулдаунаКод:PlayerCooldown pc = Cooldown.getCooldown("WandCooldown", player.getName(), 15000); if(pc.isOver()) let player use magic wand pc.reset(); else player.sendMessage("You have: " + pc.getTimeLeft() + "Seconds left" ); }
player.getName() - имя игрока, для которого он назначается
15000 - 15 секунд
PlayerCooldown pc = Cooldown.getCooldown("WandCooldown", player.getName(), 15000);
if(pc.isOver())
PlayerCooldown pc = Cooldown.getCooldown("WandCooldown", player.getName(), 15000);
if(pc.isOver()){
pc.reset();
}else{player.sendMessage("You have: " + pc.getTimeLeft() + "Seconds left" );}
И то, и другое имеется. Вот мой код:Разумеется для работы нужно как минимум иметь класс "Cooldown", взятый по ссылке второго поста, и объект "player".
PlayerCooldown pc = Cooldown.getCooldown("ThiefSearch", player.getName(), 3000);
if(pc.isOver()){
sender.sendMessage(ChatColor.YELLOW + "Вы скрылись от стражи");
this.getConfig().set("Guards.wanted." + sender.getName(), 0);
this.getConfig().set("Thiefs." + sender.getName() + ".target." + player.getName(), 0);
this.saveConfig();
pc.reset();
}
И в чем проблема?И то, и другое имеется. Вот мой код:
Код:PlayerCooldown pc = Cooldown.getCooldown("ThiefSearch", player.getName(), 3000); if(pc.isOver()){ sender.sendMessage(ChatColor.YELLOW + "Вы скрылись от стражи"); this.getConfig().set("Guards.wanted." + sender.getName(), 0); this.getConfig().set("Thiefs." + sender.getName() + ".target." + player.getName(), 0); this.saveConfig(); pc.reset(); }
else if(cmd.getName().equalsIgnoreCase("stats")){
Player player = null;
try{
player = (Player)sender;
}catch (Exception e){
sender.sendMessage(ChatColor.RED + "Only players can use this command!");
return true;
}
PlayerCooldown pc = Cooldown.getCooldown("StatsCooldown", player.getName(), 15000);
if(pc.isOver()){
sender.sendMessage(ChatColor.DARK_PURPLE + "Статистика игрока " + player.getDisplayName());
pc.reset();
}else{
sender.sendMessage("You have: " + pc.getTimeLeft() + "Seconds left" );
}
return true;
}
public class Cooldown {
private String player;
private long cooldown;
private String key;
public static HashMap<String, Cooldown> cooldowns = new HashMap<String, Cooldown>();
public Cooldown(String player, long cooldown, String key) {
this.player = player;
this.cooldown = cooldown;
this.key = key;
}
public String getPlayer() {
return this.player;
}
public long getCooldown() {
return this.cooldown;
}
public String getKey() {
return this.key;
}
public static void setCooldown(String player, long cooldown, String title) {
cooldowns.put(player + title, new Cooldown(player, System.currentTimeMillis() + cooldown, title));
}
public static boolean hasCooldown(String player, String title) {
if (cooldowns.get(player + title) == null) {
return false;
}
if (getCooldown(player, title) == 0) {
return false;
}
if (cooldowns.get(player + title).getCooldown() > System.currentTimeMillis()) {
return true;
}
return false;
}
public static long getCooldown(String player, String title) {
return (cooldowns.get(player + title).getCooldown() - System.currentTimeMillis()) / 1000;
}
}
Извиняйте, экстрасенсы в отпуске. Возможно у вас дело и не доходит до кулдауна, ставьте якоря по коду и проверяйте в каком месте ошибка.Не работает Cooldown вот код:
Java:else if(cmd.getName().equalsIgnoreCase("stats")){ Player player = null; try{ player = (Player)sender; }catch (Exception e){ sender.sendMessage(ChatColor.RED + "Only players can use this command!"); return true; } PlayerCooldown pc = Cooldown.getCooldown("StatsCooldown", player.getName(), 15000); if(pc.isOver()){ sender.sendMessage(ChatColor.DARK_PURPLE + "Статистика игрока " + player.getDisplayName()); pc.reset(); }else{ sender.sendMessage("You have: " + pc.getTimeLeft() + "Seconds left" ); } return true; }
На вкус и цвет)Зачем всё так усложнять? Ведь можно использовать обычный Scheduler
Пользователь ввел команду и получил то, что просил только через минуту? Бред.Зачем всё так усложнять? Ведь можно использовать обычный Scheduler
Пользователь ввел команду и получил то, что просил только через минуту? Бред.
Вернее это совершенно разные функции, когда-то нужна задержка от действия до использования, а когда-то задержка между использованиями.
Чем пользоваться? Запуском через определенное время? Просветите меня, такого неумеющего, как можно сделать таймаут между действиями при помощи отложенного запуска.Процитированное мной сообщение бред. Пользоваться надо уметь.
Объясни по-человеческиЧем пользоваться? Запуском через определенное время? Просветите меня, такого неумеющего, как можно сделать таймаут между действиями при помощи отложенного запуска.
Что тут объяснять? Вы понимаете разницу между "действием через определенное время после ввода"(то что делает Scheduler) и "недоступностью повторного использования определенное время"?Объясни по-человечески
Возможно он хранит хэшмап <Игрок, булеан> и когда игрок заюзает команду то переводит булеан в true, и шедулит таск который через какое-то время возвращает этот булеан в false. А при вводе команы проверяет.Что тут объяснять? Вы понимаете разницу между "действием через определенное время после ввода"(то что делает Scheduler) и "недоступностью повторного использования определенное время"?