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

Помогите Как создать плейсхолдер для своего плуга?

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Я пытался создать для своего плагина плейсхолдер. Действовал по инструкции с wiki PlaceHolderAPI на гитхабе. Но не получается. Плейсхолдер не работает. Вот класс с плейсхолдером https://hastebin.com/onukewovol.java
     
  2. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Я не знаю почему они на главной оставили устаревший метод, почти скрыв новый вариант, если не вчитываться, но:
    https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/PlaceholderExpansion

    И главное не забыть зарегистрировать на этапе включения:
    Код:
    if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")){
        new SomeExpansion().register();
    }
     
  3. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Спасибо! Сейчас попробую
     
    Последнее редактирование: 6 май 2019
  4. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Спасибо! Сейчас попробую
    Не сработало :( Вот класс сейчас: https://hastebin.com/ufofusigar.java
    upload_2019-5-6_21-47-45.png
     
  5. alexandrage

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

    Баллы:
    173
    message = PlaceholderAPI.setBracketPlaceholders(player, message);
    И вообще какой в этом смысл? Когда можно своим же плагином реплейсить свой же плейсхолдер.
     
  6. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Я пишу для сервака плагин, нужны плейсхолдеры, чтобы в табе и в чате писались уровень
    И ещё, что это за код у тебя?
    PHP:
    message PlaceholderAPI.setBracketPlaceholders(playermessage);
     
  7. alexandrage

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

    Баллы:
    173
    В смысле что за код? Это юз плейсхолдеров в плагине из плейсхолдер апи. Или ты решил что оно по волшебству само строки меняет?
     
  8. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
  9. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    а чё в параметры метода писать? Написал это дело в onEnable в главном классе
    upload_2019-5-7_15-57-16.png
     
  10. alexandrage

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

    Баллы:
    173
    Слепой что ли? Скидывал выше.
    String message = "Некий текст %placeholder%"
    String newmessage = PlaceholderAPI.setBracketPlaceholders(player, message);
    И выводим где нам требуется.
    Например player.sendMessage(newmessage);
     
  11. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Я не понимаю, куда кидать этот код? Вы мне не объяснили это. В класс с плейсхолдером, в главный класс....
     
  12. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Эта строка раскрывает плейсхолдер. Т.е. например из "Привет %player_name%" делает "Привет Vasya_Pupkin2001".
    Как ты выводишь игроку сообщение с плейсхолдером?
     
  13. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    String newmessage = PlaceholderAPI.setPlaceholders(player, message);
     
  14. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ты по инструкции создал свой класс, который расширяет PlaceholderExpansion
    Потом ты его регистрируешь в onEnable() своего плагина (об этом еще на начале писал):
    Все.
    PlaceholderAPI.setPlaceholders(player, "Hello %gtmrank_level%")
    вернет тебе сообщение с замененным %gtmrank_level% так как ты сделал это там
     
  15. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Игроку вывожу просто player.sendMessage("%gtm_rank%);
     
  16. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    А нужно player.sendMessage(PlaceholderAPI.setPlaceholders(player,"%gtm_rank%"));
     
  17. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    Ошибка выходит https://hastebin.com/yuxeyozowi.bash
    Класс с плейсхолдером: https://hastebin.com/jazagoraya.java
    Главный: https://hastebin.com/ixizemumun.java
     
  18. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Ты в onEnable() забыл instance=this;
     
  19. Автор темы
    Artemka2008

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

    Баллы:
    66
    Имя в Minecraft:
    ArCoderMine
    СПАСИБО! Сработал плейсхолдер
    ПРОБЛЕМА РЕШЕНА, ТЕМА ЗАКРЫТА
     
Статус темы:
Закрыта.

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