Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Создание плейсхолдера (PAPI)

Метки:
Теги Теги
papi placeholder placeholderapi

therimuru_

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
therimuru_
Привет, у меня есть плагин на титулы. Мне нужно подключить плейсхолдеры для вывода титула соответственно. В чате, табе и над головой. Слышал что можно сделать через PAPI. Как такое реализовать? Тем не нашёл
 
https://github.com/PlaceholderAPI/P...eholderExpansion#with-a-plugin-internal-class
Можешь, прям, вглухую копи-пастить.
Вся логика плейсхолдера проходит в onRequest. В качестве params тебе приходит весь текст после первого _. Например в %titles_some_other_params% значением будет "some_other_params".
С остальным, думаю, разберешься.
 
https://github.com/PlaceholderAPI/P...eholderExpansion#with-a-plugin-internal-class
Можешь, прям, вглухую копи-пастить.
Вся логика плейсхолдера проходит в onRequest. В качестве params тебе приходит весь текст после первого _. Например в %titles_some_other_params% значением будет "some_other_params".
С остальным, думаю, разберешься.
Спасибо, только сейчас руки дошли до плагинов. Ещё вопросик, что на счёт слова до запятой? Это то что мы возвращаем в getIdentifier()?
 
Спасибо, только сейчас руки дошли до плагинов. Ещё вопросик, что на счёт слова до запятой? Это то что мы возвращаем в getIdentifier()?
Имеешь ввиду до _? Да, это идентификатор.
 
Имеешь ввиду до _? Да, это идентификатор.
Не робит:
PHP:
package org.emptyyyperson.nightlytituls;

import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class PAPIManager extends PlaceholderExpansion {

    public NightlyTituls plugin;

    public PAPIManager(NightlyTituls plugin) {
        this.plugin = plugin;
    }

    @Override
    public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
        return "*titul here*";
    }

    @Override
    public @NotNull String getIdentifier() {
        return "nightlytituls";
    }

    @Override
    public @NotNull String getAuthor() {
        return "emptyyyperson";
    }

    @Override
    public @NotNull String getVersion() {
        return "1.0.0";
    }

    @Override
    public boolean persist() {
        return true;
    }
}
 
Не робит:
PHP:
package org.emptyyyperson.nightlytituls;

import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class PAPIManager extends PlaceholderExpansion {

    public NightlyTituls plugin;

    public PAPIManager(NightlyTituls plugin) {
        this.plugin = plugin;
    }

    @Override
    public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) {
        return "*titul here*";
    }

    @Override
    public @NotNull String getIdentifier() {
        return "nightlytituls";
    }

    @Override
    public @NotNull String getAuthor() {
        return "emptyyyperson";
    }

    @Override
    public @NotNull String getVersion() {
        return "1.0.0";
    }

    @Override
    public boolean persist() {
        return true;
    }
}
А зарегистрировал?
 
Забыл. Спасибо.
Для работы с титулами в чате нужен EssXChat?
EssChat пока может максимум отобразить displayName игрока - поддержка PAPI в планах, но пока неизвестно когда именно. Собственно, лучше использовать что-то с поддержкой PAPI.
 
EssChat пока может максимум отобразить displayName игрока - поддержка PAPI в планах, но пока неизвестно когда именно. Собственно, лучше использовать что-то с поддержкой PAPI.
А если мне нужно использовать именно EssChat? Можно это как то сделать?
 
А если мне нужно использовать именно EssChat? Можно это как то сделать?
Можно изменить формат в AsyncPlayerChatEvent, просто прописав свой - event.setFormat(event.getFormat().replace("{title}", "*title here*")). Главное поставить приоритет повыше.
 

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

Назад
Верх