Помогите Разовая Команда

sasha2003

Активный участник
Пользователь
Баллы
76
Помогите сделать, чтобы команду можно было использовать раз в 60 минут!
 
Нужно в свой вставить плагин)))
 
Код:
@Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player p = (Player)sender;
        if (command.getName().equalsIgnoreCase("thx")) {
            for (Booster booster2 : Booster.getBoosters(p.getName())) {
                if (booster2.getDuration() >= 1) {
                    if (booster2.getMultiplier() >= 2.0) {
                        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask((Plugin) this, new Runnable() {
                            public void run() {
                                Main.econ.depositPlayer(p, 3);
                                isThx(p);
                                booster2.addTime(1);
                            }
                        }, 20L * 15L);
                    } else {
                        p.sendMessage("§cНа данный момент нет активных бустеров!");
                    }
                } else {
                    p.sendMessage("§cНа данный момент нет активных бустеров!");
                }
            }
        }
        return true;
    }

Что я делаю не так?
 
Щас включу способности Ванги. Кидай весь что связан с этой командой, тот же класс Booster
 
Шедулер не правильно сделал
 
public static Main instance;

public void onEnable() {
instance = this;
} // Это в главный класс закинь или если есть такое измени в шедулере Main.instance на свое

Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.instance, new Runnable() {
public void run() {
Main.econ.depositPlayer(p, 3);
isThx(p);
booster2.addTime(1);
}
}, 20L * 15L);
 
Работает! Но есть одно НО! Мне нужна задержка в 15 сек, после того как я использую комнду,чтобы снова использовать команду!
 
if (StartCountdown.time == 0) {
StartCountdown scd = new StartCountdown ();
scd.runTaskTimer (Main.instance, 0, 20);
//TODO: код, который выше был
} else {
//TODO: отправка сообщения о том что команда еще не доступна
}

public class StartCountdown extends BukkitRunnable {

public static int time = 15;

public void run () {
time--;
}
}
Вроде правильно написал, а вообще хз проверь, просто с планшета писал
Ой не правильно написал кое что

if (StartCountdown.time == 0) {
StartCountdown.time = 15;
StartCountdown scd = new StartCountdown ();
scd.runTaskTimer (Main.instance, 0, 20);
//TODO: код, который выше был
} else {
//TODO: отправка сообщения о том что команда еще не доступна
}

public class StartCountdown extends BukkitRunnable {

public static int time = 0;

public void run () {
time--;
}
}
 
if (StartCountdown.time == 0) {
StartCountdown scd = new StartCountdown ();
scd.runTaskTimer (Main.instance, 0, 20);
//TODO: код, который выше был
} else {
//TODO: отправка сообщения о том что команда еще не доступна
}

public class StartCountdown extends BukkitRunnable {

public static int time = 15;

public void run () {
time--;
}
}
Вроде правильно написал, а вообще хз проверь, просто с планшета писал
Ой не правильно написал кое что

if (StartCountdown.time == 0) {
StartCountdown.time = 15;
StartCountdown scd = new StartCountdown ();
scd.runTaskTimer (Main.instance, 0, 20);
//TODO: код, который выше был
} else {
//TODO: отправка сообщения о том что команда еще не доступна
}

public class StartCountdown extends BukkitRunnable {

public static int time = 0;

public void run () {
time--;
}
}

Ща чекну!
Так должно быть?
Код:
public class THX extends BukkitRunnable implements CommandExecutor {
   
    public static int time = 0;
   
    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        Player p = (Player)sender;
        if (command.getName().equalsIgnoreCase("thx")) {
            for (Booster booster2 : Booster.getBoosters(p.getName())) {
                if (booster2.getDuration() >= 1) {
                    if (booster2.getMultiplier() >= 2.0) {
                        if (THX.time == 0) {
                            THX.time = 15;
                            THX thx = new THX();
                            thx.runTaskTimer(Main.instance, 0, 20);
                        } else {
                            p.sendMessage(ChatColor.RED + "Вы уже забрали награду за этот бустер");
                        }
                    } else {
                        p.sendMessage("§cНа данный момент нет активных бустеров!");
                    }
                } else {
                    p.sendMessage("§cНа данный момент нет активных бустеров!");
                }
            }
        }
        return true;
    }
   
    public void run() {
        time--;
    }
 
Нет, отдельный класс для таймера делай
 
Я же написал public class StartCountdown extends BukkitRunnable
 
Назад
Верх