1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Вопрос оптимизации

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

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

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

    Баллы:
    76
    Всем привет. Мне нужно часто проверять несколько строк в конфиге, и тут у меня встал вопрос: Как лучше эту проверку реализовать? Либо при входе игрока запускать runTaskTimer минуты на 3, либо через player move event. Какой вариант будет более лучшим и как сильно будет идти нагрузка на сервер, если делать проверку через player move event ?
     
  2. Dereku

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

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Уже не правильно. Сохраняй значения из конфига себе в переменную (лист, мапа, что ниб ещё), и уже потом запускай таск. PlayerMoveEvent в принципе один из самых горячих событий и использовать его для обновления чего либо не есть хорошо.
     
  3. bristol

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

    Баллы:
    46
    Лучше запускать один асинхронный шедуляр и в нем уже осуществлять проверку каждого из онлайн игроков.
     
  4. Автор темы
    reZero

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

    Баллы:
    76
    А что ты имел ввиду под "один из самых горячих событий" ?
     
  5. alexandrage

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

    Баллы:
    173
    Код:
    public class Scheduler extends BukkitRunnable {
        Plugin plugin;
    
        public Scheduler(Plugin plugin) {
            this.plugin = plugin;
        }
    
        @Override
        public void run() {
            FileConfiguration cfg = this.plugin.getConfig();
            for (Player player : Bukkit.getOnlinePlayers()) {
                //TODO
            }
        }
    }
     
  6. bristol

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

    Баллы:
    46
    Скорее всего, он имел ввиду, что это событие вызывается чаще всех.
     
  7. Автор темы
    reZero

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

    Баллы:
    76
    Всем спасибо, учёл все ваши замечания и советы
     
Статус темы:
Закрыта.

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