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

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

Discussion in 'Разработка плагинов для новичков' started by sasha2003, Apr 22, 2017.

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

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

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

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

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

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

    Trophy Points:
    76
    Незнаю как!
     
  5. AtomicScience

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

    Trophy Points:
    76
    ReActions
     
  6. Автор темы
    sasha2003

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

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

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

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

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

    Trophy Points:
    76
    ....
     
  9. AtomicScience

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

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

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

    Trophy Points:
    76
    Code:
    @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 Активный участник Пользователь

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

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

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

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

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

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

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

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

    Trophy Points:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    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 Активный участник Пользователь

    Trophy Points:
    76
    Ща чекну![DOUBLEPOST=1492897619][/DOUBLEPOST]Так должно быть?
    Code:
    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 Активный участник Пользователь

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

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

    Trophy Points:
    76
    Сейчас сделаю
     
  21. HunterGaming

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

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

Share This Page