Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем sasha2003, 22 апр 2017.

  1. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Помогите сделать, чтобы команду можно было использовать раз в 60 минут!
     
  2. Хостинг MineCraft
    <
  3. DiamondDen

    DiamondDen Активный участник Пользователь

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    А самому?
     
  4. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Незнаю как!
     
  5. AtomicScience

    AtomicScience Активный участник Пользователь

    Баллы:
    76
  6. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Нужно в свой вставить плагин)))
     
  7. VeryNothing

    VeryNothing Новичок Пользователь Заблокирован

    Баллы:
    21
    Имя в Minecraft:
    null
    @14 лет
    @не знает банальных правил русского языка
     
  8. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    ....
     
  9. AtomicScience

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Лол, и что?
     
  10. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Код:
    @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;
        }
    Что я делаю не так?
     
  11. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Щас включу способности Ванги. Кидай весь что связан с этой командой, тот же класс Booster
     
  12. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Тут всё работало до того, как добавил шедулер!
    Шедулер сам правильно сделан?
     
  13. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Шедулер не правильно сделал
     
  14. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    напиши как правильно))
     
  15. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    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);
     
  16. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Работает! Но есть одно НО! Мне нужна задержка в 15 сек, после того как я использую комнду,чтобы снова использовать команду!
     
  17. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    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--;
    }
    }
    Вроде правильно написал, а вообще хз проверь, просто с планшета писал[DOUBLEPOST=1492897139,1492896552][/DOUBLEPOST]Ой не правильно написал кое что

    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--;
    }
    }
     
  18. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Ща чекну![DOUBLEPOST=1492897619][/DOUBLEPOST]Так должно быть?
    Код:
    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--;
        }
        
     
  19. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Нет, отдельный класс для таймера делай
     
  20. Автор темы
    sasha2003

    sasha2003 Активный участник Пользователь

    Баллы:
    76
    Сейчас сделаю
     
  21. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Я же написал public class StartCountdown extends BukkitRunnable
     

Поделиться этой страницей