Вопрос Как работать с PlaceholderAPI в плагине? (чит. опис.)

Версия Minecraft
1.17.X

ProGiple

Пользователь
Сообщения
80
Решения
1
Всем привет, хочу в плагин зарегистрировать свой плейсхолдер, он должен будет проверять есть ли у игрока в инвентаре amount предметов с PersisentDataContainer data, плейсхолдер должен быть таким: %sateitemgen_<data>_<amount>%

Так вот проблема: прочитав статью о создании плейсхолдеров в плагине от самого PlaceholderAPI я не понял как должен работать сам заполнитель для имени игрока, вот есть код:

Код:
package org.satellite.progiple.sateitemgen;

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

public class checkitem extends PlaceholderExpansion {
    @Override
    public @NotNull String getAuthor() {
        return "Author"; //
    }

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

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

    @Override
    public boolean checkItem(String str) {

    }
}

и дальше что? как вывести сам заполнитель, проверка идёт для игрока или мне еще дополнительно прописывать указывание Player или что?
Прошу помогите, шарящие люди..
 
Всем привет, хочу в плагин зарегистрировать свой плейсхолдер, он должен будет проверять есть ли у игрока в инвентаре amount предметов с PersisentDataContainer data, плейсхолдер должен быть таким: %sateitemgen_<data>_<amount>%

Так вот проблема: прочитав статью о создании плейсхолдеров в плагине от самого PlaceholderAPI я не понял как должен работать сам заполнитель для имени игрока, вот есть код:

Код:
package org.satellite.progiple.sateitemgen;

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

public class checkitem extends PlaceholderExpansion {
    @Override
    public @NotNull String getAuthor() {
        return "Author"; //
    }

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

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

    @Override
    public boolean checkItem(String str) {

    }
}

и дальше что? как вывести сам заполнитель, проверка идёт для игрока или мне еще дополнительно прописывать указывание Player или что?
Прошу помогите, шарящие люди..
Необходимо выбрать метод обработки заполнителей. Методами являются onRequest(OfflinePlayer, String) и onPlaceholderRequest(Player, String). Так как инвентарь есть только у онлайн игроков, то используем onPlaceholderRequest(Player, String). Строка является заполнителем без идентификатора. То есть если заполнитель "%player_online%" то строка (params) будет "online".
Java:
public class checkItem extends PlaceholderExpansion {
    @Override
    public @NotNull String getIdentifier() {
        return "ProGiple";
    }

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

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

    @Override
    public @Nullable String onPlaceholderRequest(Player player, @NotNull String params) {
        return null; //возвращаем замену заполнителя (строку) или если в плагине нет такого заполнителя то null
    }
}
 
Последнее редактирование:
Назад
Сверху Снизу