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

Помогите Event'ы

Discussion in 'Разработка плагинов для новичков' started by Rfg0, May 24, 2016.

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

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

    Trophy Points:
    46
    Имя в Minecraft:
    Rfg0
    Проблема такая, да я знаю что такое уже было решено и таких тем много. Но у меня странный случай. Делаю два плагины(так для теста).
    Первый плагин. Если в конфиге стоит true, то тогда мотд меняется на Идут технические работы!, а если нет, то нечего не меняется. Вот эвент-
    Code:
      
        @EventHandler(priority = EventPriority.LOWEST)
       public void onServerListPing(ServerListPingEvent e){
           if(trueorfalse == true){
                e.setMotd("\u00A74Идут технические работы!");
           }else{
               return;
           }
       }
    
    Второй плагин на MOTD.
    Вот event -
    Code:
         @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. Не в какую.
    Но тут я как-то случайно экспортировал сначала мотд потом тех. работы. И всё заработало. Потом попробовал наоборот таже фигня(плагин мотд перебивает тех. работы) . Остаётся вопрос: "Что за ухня?"
     
    Last edited: May 24, 2016
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

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

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

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

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

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

    Dereku Старожил

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

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

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

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

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

    Dereku Старожил

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

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

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

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

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

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

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

    Dereku Старожил

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

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

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

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

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

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

    Dereku Старожил

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

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

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

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

    Trophy Points:
    76
    Актуально?
     
  19. Sonicxd2

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

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

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

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

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

    Trophy Points:
    76
     

Share This Page