Вопрос PlaceholderAPI помощь

Rayzz3n

Пользователь
Сообщения
2
Название темы должно быть информативным, максимально четко отражая смысл проблемы
Всем привет! Хотел добавить плэйсхолдеры в свой плагин, и возникла проблема.

У меня есть база данных, и методы получения.

Мне нужно отобразить например %test1_test2%

В базе данных есть метод getStats, где можно получить данные о аргументе. А если аргумент это игрок который отправляет запрос? ну например если %player_name% то выводит ник игрока который отправляет запрос.

Как в плэйсхолдере %test1_test2% указать в качестве этого аргумента игрока который отправляет запрос?
 
Все заполнители отображают информацию об игроке, которому они показываются.
Игрок Player1 в ответ на заполнитель %player_name% увидит Player1. Игрок Player2 - Player2.

У PlaceholderExpansion есть метод onPlaceholderRequest(Player, String). Первый аргумент (Player) - это и есть тот самый игрок, которому отображается заполнитель.

Если же вам необходимо получить информацию о другом игроке, то просто разбивайте заполнитель по определённому символу (например, по тем же нижним подчёркиваниям _) и обрабатывайте нужный из них, отправляя запрос в БД с указанным ником в заполнителе.
Например, у нас есть заполнитель %test1_test2%, где test2 - это ник игрока, о котором нам нужно получить информацию из БД.
Тогда код будет примерно таким:
Java:
@Override
public String onPlaceholderRequest(Player player, String params) {
    return бд.getStats(params); //Получает статистику игрока test2
}
Если же у нас несколько параметров у заполнителя (например, было бы %test1_test2_kills% или в другом порядке):
Java:
@Override
public String onPlaceholderRequest(Player player, String params) {
    String[] split = params.split("_");
    return бд.getStats(params[0], params[1]); //Получает статистику kills игрока test2
}
 
Назад
Сверху Снизу