Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
public class CooldownManager {
public static HashMap<String, Cooldown> cooldowns = new HashMap<>();
public static void setCooldown(String player, String value, int time) {
double delay = System.currentTimeMillis() + time;
cooldowns.put(player + value, new Cooldown(player, value, delay));
}
public static String getCooldown(String player, String value) {
return String.format("%.1f", (cooldowns.get(player + value).getTime() - System.currentTimeMillis()) / 1000);
}
public static boolean hasCooldown(String player, String value) {
String pv = player + value;
if(!cooldowns.containsKey(pv) || cooldowns.get(pv).getTime() <= System.currentTimeMillis()) {
cooldowns.remove(pv);
return false;
}
return true;
}
private static class Cooldown {
private final String player;
private final String value;
private final double time;
public Cooldown(String player, String value, double time) {
this.player = player;
this.value = value;
this.time = time;
}
public String getPlayer() {
return player;
}
public String getValue() {
return value;
}
public double getTime() {
return time;
}
}
}
if(CooldownManager.hasCooldown(player.getName(), "command"))
player.sendMessage(Util.colored(instance.getMessages().getString("command_cooldown")
.replaceAll("%sec%", String.valueOf(CooldownManager.getCooldown(player.getName(), "command")))));
event.setCancelled(true);
return;
}
CooldownManager.setCooldown(player.getName(), "command", instance.getConfig().getInt("Settings.cooldown_time"));
Перед окончанием действия команды надо 2 код вставить?Код:public class CooldownManager { public static HashMap<String, Cooldown> cooldowns = new HashMap<>(); public static void setCooldown(String player, String value, int time) { double delay = System.currentTimeMillis() + time; cooldowns.put(player + value, new Cooldown(player, value, delay)); } public static String getCooldown(String player, String value) { return String.format("%.1f", (cooldowns.get(player + value).getTime() - System.currentTimeMillis()) / 1000); } public static boolean hasCooldown(String player, String value) { String pv = player + value; if(!cooldowns.containsKey(pv) || cooldowns.get(pv).getTime() <= System.currentTimeMillis()) { cooldowns.remove(pv); return false; } return true; } private static class Cooldown { private final String player; private final String value; private final double time; public Cooldown(String player, String value, double time) { this.player = player; this.value = value; this.time = time; } public String getPlayer() { return player; } public String getValue() { return value; } public double getTime() { return time; } } }
Потом после ввода команды:
Код:if(CooldownManager.hasCooldown(player.getName(), "command")) { player.sendMessage(Util.colored(instance.getMessages().getString("command_cooldown") .replaceAll("%sec%", String.valueOf(CooldownManager.getCooldown(player.getName(), "command"))))); event.setCancelled(true); return; } CooldownManager.setCooldown(player.getName(), "command", instance.getConfig().getInt("Settings.cooldown_time"));
Да. Это нужно в ивенте PlayerCommandPreprocessEvent вставлять.Перед окончанием действия команды надо 2 код вставить?
Нужно кулдовн, только для 1 команды. Нельзя в onCommand вставить тот 2 код?Да. Это нужно в ивенте PlayerCommandPreprocessEvent вставлять.