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

[Решено] Проблемы с циклом

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

Статус темы:
Закрыта.
  1. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Столкнулся с проблемой, цикл не останавливается. Вот цикл:
    Код:
        public void startGame() {
            this.waiting.cancel();
            current = GameState.GAME;
            for(Player player : Bukkit.getOnlinePlayers()) {
                Gamer gamer = new Gamer(player);
                this.players.put(player, gamer);
                player.sendMessage(SkyWars.this.getPrefix() + "Игра началась!");
                player.playSound(player.getLocation(), Sound.LEVEL_UP, 10, 1);
            }
            Util.clearPlayers();
            new Game();
        }
    Вызываю его так:
    Код:
        public static void startPreCageTimer()
        {
            new BukkitRunnable() {
                public void run() {
                    SkyWars.getInstance().startGame();
                }
            }.runTaskLater(SkyWars.getInstance(), 30L);
        }
     
  2. Хостинг MineCraft
    <
  3. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Да должен остановиться[DOUBLEPOST=1478362244,1478362145][/DOUBLEPOST]Как понимаешь, что не останавливается?
     
  4. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    3 раза пишет "Игра началась"
     
  5. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Странно..[DOUBLEPOST=1478362469,1478362419][/DOUBLEPOST]Логи? Может быть?
     
  6. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Ничего особенного не нашел, просто 3 раза выполняет одно и тоже. Из ошибок лишь скорборд, ибо в Game он уже теряет регистрацию, а второй раз его, соответственно, разрегистрировать нельзя
     
  7. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Может быть ты случайно его три раза вызываешь?
     
  8. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Во всех шедулерах runTaskLater, невозможно. Похожие проблемы в checkEnd(), вызываю один раз - отрабатывает 3
     
  9. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Хм..Не знаю.. @Mr_RoboMan Приходи!!
     
  10. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Вот еще немного кода
    Код:
        public static void startThirdTimer()
        {
            new BukkitRunnable() {
                public void run() {
                    for(Player player : Bukkit.getOnlinePlayers()) {
                        player.sendTitle("§2SkyWars", "§aШо-то там");
                        player.playSound(player.getLocation(), Sound.ENDERDRAGON_GROWL, 10, 1);
                    }
                    startFourTimer();
                }
            }.runTaskLater(SkyWars.getInstance(), 36L);
        }
    . В других плагинах таких бед не возникает
     
  11. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Хм..Не знаю.. @Dereku Приходи!!
     
  12. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Ну если на то пошло то @alexandrage
    И сорцы остальные пока можешь кинуть.
     
  13. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Зачем? Больше я нигде не задействую эти методы.
     
  14. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Iterator, Stream API (Java 8).
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    SkyWars.this or SkyWars.getInstance() WAT?
     
  16. Автор темы
    DonDays

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

    Баллы:
    96
    Имя в Minecraft:
    DonDays
    Там шедулер[DOUBLEPOST=1478411473,1478411210][/DOUBLEPOST]Во всем разобрался, пришлось переписать несколько таймеров, проблема была в том, что один из таймеров зациклился.
     
Статус темы:
Закрыта.

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