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

Помогите Event'ы

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

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

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Проблема такая, да я знаю что такое уже было решено и таких тем много. Но у меня странный случай. Делаю два плагины(так для теста).
    Первый плагин. Если в конфиге стоит true, то тогда мотд меняется на Идут технические работы!, а если нет, то нечего не меняется. Вот эвент-
    Код:
      
        @EventHandler(priority = EventPriority.LOWEST)
       public void onServerListPing(ServerListPingEvent e){
           if(trueorfalse == true){
                e.setMotd("\u00A74Идут технические работы!");
           }else{
               return;
           }
       }
    
    Второй плагин на MOTD.
    Вот event -
    Код:
         @EventHandler(priority = EventPriority.HIGHEST)
         public void onPing(ServerListPingEvent event)
         {
           List<String> config = this.config.getStringList("systemmotd");
           Integer a = Integer.valueOf(new Random().nextInt(config.size()));
           String motd = ((String)config.get(a.intValue()));
           String s = this.replsys(motd);
           event.setMotd(s);
         }
    
    
    Первому event'у я поставил приоритет LOWEST значит конечный мотд поставит он, а второй приоритет HIGHEST значит он будет первым. НО даже когда идут тех. работы 2 плагин умудряется поставить свой motd. Перебирал все приоритеты ставил ignorecancelled. Не в какую.
    Но тут я как-то случайно экспортировал сначала мотд потом тех. работы. И всё заработало. Потом попробовал наоборот таже фигня(плагин мотд перебивает тех. работы) . Остаётся вопрос: "Что за ухня?"
     
    Последнее редактирование: 24 май 2016
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    >>
    Код:
    if(trueorfalse) { // если false - то в начало ставьте !
     
  4. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ты случаем не используешь одинаковые пакеты? Ну типо во всех твоих плагинах: ru.rfg0.Main?
    Если да, то используй ru.rfg0.pluginname.Main. А так они не должны друг друга перебивать, т.к евенты разные.
    И почемубы не использовать PlayerLoginEvent?

    Код:
        @EventHandler
        public void onJoin(final PlayerLoginEvent v) {
            if (v.getResult() == PlayerLoginEvent.Result.KICK_WHITELIST) {
                if(!e.getPlayer().hasPermission("tw.join") && !players.contains(e.getPlayer().getName())){ 
                        v.setKickMessage("§b" + v.getPlayer().getDisplayName() + ", §4Идут технические работы!");
                        return;
                    }
                        v.allow();
            }
        }
     
  5. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    me.rfg0.motd и me.rfg0.tw И ещё. ТУПАНУЛ НЕ ТУТ EVENT СКИНУЛ!!!! Вот тот -
    Код:
        @EventHandler(priority = EventPriority.LOWEST)
        public void onServerListPing(ServerListPingEvent e){
            if(trueorfalse == true){
                e.setMotd("\u00A74Идут технические работы!");
            }else{
                return;
            }
        }
    
     
  6. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Наоборот. lowest поставит первым, highest - вторым.
     
  7. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Мысль в голову пришла, поменял местами таже фигня.
     
  8. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    так если эти два плагина делают похожие действия, то почемубы их не объединить?
    И почему бы вместо return; не поставить тот код, на установку мотд?
     
  9. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Кстати, не вижу в первом куске "кода" строки, который бы изменял motd.
     
  10. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Да, так разумнее. Но мне нужны именно два плагина.
     
  11. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    в первом посте же.
     
  12. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    Если ты про это, то говорю же, ошибся. Ниже тот event.
     
  13. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Берёшь и обновляешь шапку.

    А вообще если есть плагин на Motd, то устанавливать motd лучше им. Пилишь новый эвент на установку motd, первым плагином слушаешь его и устанавливаешь свой.
     
  14. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    поидее нужно поменять местами приоритеты.
     
  15. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    А проблема то в чем? Мне нужно именно два плагна .[DOUBLEPOST=1464103489,1464103432][/DOUBLEPOST]
    [DOUBLEPOST=1464103693][/DOUBLEPOST]Меня тревожит, что "выигрывает" плагин, которые самый последний был изменён(экспортирован)
     
  16. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    В том, что кто то не может в очерёдность действий.
     
  17. Автор темы
    Rfg0

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

    Баллы:
    46
    Имя в Minecraft:
    Rfg0
    А ты можешь? Если можешь, подскажи пожалуйста![DOUBLEPOST=1464104334,1464104197][/DOUBLEPOST]
    А ещё, какая тут может быть очерёдность действия?[DOUBLEPOST=1464522332][/DOUBLEPOST]up!
     
  18. Dymeth

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

    Баллы:
    76
    Актуально?
     
  19. Sonicxd2

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

    Баллы:
    76
    if(trueorfalse ==true){
    Нравится обсуфикация))
     
  20. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Дело в том, что Highest как бы перебивает настройки Lowest.
    У вас получается, что сначала срабатывает Lowest, а потом Highest, и все настройки остаются за последним. Всё что могу посоветовать - поменять приоритеты у событий наоборот и посмотреть что выйдет.
     
  21. Dymeth

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

    Баллы:
    76
     

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