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

Помогите Дополнительный префикс игроку от клана (уровня в моем случае)

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

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

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Пока что я во многом не понимаю вещей, но данная функция мне трудно доступная.
    Что я пытаюсь, я же хочу добавить к префиксу уже имеющимся, еще один как в плагинах на кланы, но выглядеть будет вот так.
    [1ур.][Игрок] Nick: бла бла бла
    Использую плагин чата ChatManager, добавляю тег который нужен
    message-format: '!level!%prefix%player%suffix: %message'
    Вот код
    Код:
    @EventHandler(priority=EventPriority.HIGHEST)
    public void AsyncPlayerChatEvent(AsyncPlayerChatEvent event){
        if((event.getPlayer().getName().contains("!level!"))){
            event.setFormat(event.getFormat().replace("!level!","[1ур]"));
        }else{
            event.setFormat(event.getFormat().replace("!level",""));
        }
    }
    
    Но в моем случае показывается только "!"(восклицательный знак)
     
  2. Хостинг MineCraft
    <
  3. TheBlacK.Z

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

    Баллы:
    78
    замени ! на %

    + у тебя здесь нет воскл. знака
    Код:
        }else{
            event.setFormat(event.getFormat().replace("!level",""));
        }
    
     
  4. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Как сказал (почти точно) @TheBlacK.Z , у тебя нету ! в конце, в блоке else.[DOUBLEPOST=1422034494,1422034280][/DOUBLEPOST]
    И кстати, это разве возвращает строку из чата?
     
  5. TheBlacK.Z

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

    Баллы:
    78
    лол, он возвращает имя персонажа и проверяет его на наличие !level!
    Великолепно вообще ;D[DOUBLEPOST=1422034751][/DOUBLEPOST]Вот, должно работать:
    Код:
    @EventHandler(priority=EventPriority.HIGHEST)
    public void AsyncPlayerChatEvent(AsyncPlayerChatEvent event){
        if((event.getMessage().toLowerCase().contains("!level!"))){
            event.setFormat(event.getFormat().replace("!level!","[1ур]"));
        }else{
            event.setFormat(event.getFormat().replace("!level!",""));
        }
    }
    
     
  6. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Работает только то что после - else
    Ну так на первый раз пойдет, пока что работает) И на этом спасибо.
     
  7. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Замени везде Format на Message
     
  8. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Теперь вообще не работает
     
  9. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Тогда в коде выше, в условии - наоборот, Message на Format
     
  10. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Теперь отображается 2раза все, то есть в виде
    !level![Игрок]Nick:[1ур][Игрок]Nick:%2$s
     
  11. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Кароче оддебажь. Выведи getFormat() на экран до всяких изменений.
     
  12. TheBlacK.Z

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

    Баллы:
    78
    это должно сработать, возможно.
    Код:
        @EventHandler(priority=EventPriority.HIGHEST)
        public void AsyncPlayerChatEvent(AsyncPlayerChatEvent event){
           if((event.getPlayer().getName().equals("$level$"))){
               event.setFormat(event.getFormat().replace("$level$","[1ур]"));
           }else{
               event.setFormat(event.getFormat().replace("$level$","[none]"));
           }
        }
    
     
  13. makssof

    makssof Старожил Девелопер Пользователь

    Баллы:
    103
    Skype:
    makssofez
    Так что, оддебажил? Го сюда оутпут.
     
  14. Автор темы
    SaMEC

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

    Баллы:
    173
    Skype:
    support.meedway
    Имя в Minecraft:
    Nick
    Я же писал уже
     
  15. TheBlacK.Z

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

    Баллы:
    78
    это проблемы вашего плагина а не кода, у меня все нормально.
     

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