- Поддерживаемые версии
-
- 1.8.9
- 1.9.2
- 1.10.1
- 1.11.2
- 1.12.2
- 1.13.1
- 1.14.4
- 1.15.2
- 1.16.5
- 1.17.1
- 1.18.2
- 1.19.0
Всех приветствую в этом гайде и туторе, по добавлению поддержки плейсхолдеров в ваш плагин.
Вы должны понимать, что их функционал зависит от вашего логического мышления и знания Java в целом, я покажу и подробно расскажу как базово лучше добавлять поддержку плейсхолдеров для того, чтобы в будущем какую-либо информацию отобразить в табе или боковой менюшке справа (scoreboard).
Шаг первый: Добавление PlaceholderAPI в проект.
Скачиваем оригинальный образ PlaceholderAPI, это нам надо чтобы добавить его библиотеки в плагин.
После, нам надо IDE указать путь до jar файла.
Eclipse:
1. Нажмите правой кнопкой мыши на вашем проекте и выберите пункт Properties
2. В открывшемся окне слева есть меню, выберите в нем пункт Java Build Path
3. Выберите вкладку Libraries
4. Нажмите на кнопку Add External JARs…
5. В открывшемся окне выберите файл c вашей библиотекой и нажмите OK
6. После нажмите кнопку OK ещё раз.
IDEA:
1. В открытом проекте, нажимаем File и выбираем Project Structure
2. Открываем вкладку Libraries
3. Нажимаем + -> Java
4. Указываем путь к jar файлу.
5. Нажимаем OK.
6. Нажимаем Apply, OK.
Шаг закончен, вы добавили библиотеки PlaceholderAPI в ваш проект, пошли дальше.
Шаг второй: Создание класса плейсхолдеров.
Есть множество вариантов "тяп ляп сделал" плейсхолдера, но для новичков и остальных я советую делать отдельный класс для удобства.
Класс наследуется от PlaceholderExpansion.
Дальше, вам требуется добавить в него несколько методов:
Как раз таки, все плейсхолдеры мы будет "указывать" в методе onPlaceholderRequest.
А сейчас ШоЗа параметры мы передаем ему.
player: Игрок, от которого мы берем данные.
params: Ключ, от которого мы будем понимать, какую строчку с информацией нам надо вернуть.
Первым делом, делаем простую проверку от NullPointerException. Так как мы тут используем Player, и метод может передать нам null.
Дальше, мы будем проверяем наш ключик params, кем он является, и возвращаем строчку (String).
Проверку params можно записать через switch.
Молодцы, вы сделали 90% всего дела. Осталось зарегистрировать плейсхолдеры при запуске плагина.
Шаг третий: Регистрация нашего класса.
Так-же, я советую прописать ещё unregister в onDisable(), особенно в связке PlugManX
Шаг четвертый: plugin.yml
Заходим в ваш plugin.yml и добавляем строчки:
Шаг пятый: Как его использовать.
Достаточно все просто, плейсхолдер плагина выглядит так: %identifier_params%, в нашем случае это %tutorial_isOp% и %tutorial_isOnline%
Эпилог: Данный гайд я написал, ибо много кто хочет добавить плейсхолдеры в свой плагин для вывода их где можно и где нельзя, думаю, эта "статья" для вас была полезной, если вы тот самый пользователь-новичок, который искал данный гайд.
Вы должны понимать, что их функционал зависит от вашего логического мышления и знания Java в целом, я покажу и подробно расскажу как базово лучше добавлять поддержку плейсхолдеров для того, чтобы в будущем какую-либо информацию отобразить в табе или боковой менюшке справа (scoreboard).
Шаг первый: Добавление PlaceholderAPI в проект.
Скачиваем оригинальный образ PlaceholderAPI, это нам надо чтобы добавить его библиотеки в плагин.
После, нам надо IDE указать путь до jar файла.
Eclipse:
1. Нажмите правой кнопкой мыши на вашем проекте и выберите пункт Properties
2. В открывшемся окне слева есть меню, выберите в нем пункт Java Build Path
3. Выберите вкладку Libraries
4. Нажмите на кнопку Add External JARs…
5. В открывшемся окне выберите файл c вашей библиотекой и нажмите OK
6. После нажмите кнопку OK ещё раз.
IDEA:
1. В открытом проекте, нажимаем File и выбираем Project Structure
2. Открываем вкладку Libraries
3. Нажимаем + -> Java
4. Указываем путь к jar файлу.
5. Нажимаем OK.
6. Нажимаем Apply, OK.
Шаг закончен, вы добавили библиотеки PlaceholderAPI в ваш проект, пошли дальше.
Шаг второй: Создание класса плейсхолдеров.
Есть множество вариантов "тяп ляп сделал" плейсхолдера, но для новичков и остальных я советую делать отдельный класс для удобства.
Java:
package io.slobod.tutorial;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
public class Placeholders extends PlaceholderExpansion {
}
Дальше, вам требуется добавить в него несколько методов:
Java:
package io.slobod.tutorial;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
public class Placeholders extends PlaceholderExpansion {
@Override
// "префикс" вашего плейсхолдера, общепринято писать название плагина %tutorial_(params)%
// Более научно, это строчка между первого % до _.
public String getIdentifier() {
return "tutorial";
}
@Override
// Тут указываем автора (вы)
public String getAuthor() {
return "Slobodyan";
}
@Override
// Тут версию, но чаще всего она бесполезна для ваших целей. Тут уже это для eCloud.
public String getVersion() {
return "1.0";
}
@Override
public boolean persist() {
return true;
}
@Override
// Тут можно проверять наличие плагинов и т.п., в нашем случаи ставим просто на true;
public boolean canRegister() {
return true;
}
@Override
// Тут мы и будет работать дальше.
public String onPlaceholderRequest(final Player player, final String params) {
return null;
}
//Можно использовать так же onRequest(OfflinePlayer player, String params)
}
Как раз таки, все плейсхолдеры мы будет "указывать" в методе onPlaceholderRequest.
А сейчас ШоЗа параметры мы передаем ему.
player: Игрок, от которого мы берем данные.
params: Ключ, от которого мы будем понимать, какую строчку с информацией нам надо вернуть.
Первым делом, делаем простую проверку от NullPointerException. Так как мы тут используем Player, и метод может передать нам null.
Java:
public String onPlaceholderRequest(final Player player, final String params) {
if (player == null) {
return null;
}
}
Дальше, мы будем проверяем наш ключик params, кем он является, и возвращаем строчку (String).
Java:
public String onPlaceholderRequest(final Player player, final String params) {
if (player == null) {
return null;
}
// Сравниваем ключик на %{ind}_isOp%
if (params.equals("isOp")) {
return player.isOp() + "";
}
if (params.equals("isOnline")) {
return player.isOnline() + "";
}
}
Проверку params можно записать через switch.
Java:
public String onPlaceholderRequest(final Player player, final String params) {
if (player == null) {
return null;
}
switch (params) {
case "isOp": return player.isOp() + "";
case "isOnline": return player.isOnline() + "";
}
}
Молодцы, вы сделали 90% всего дела. Осталось зарегистрировать плейсхолдеры при запуске плагина.
Шаг третий: Регистрация нашего класса.
Java:
@Override
public void onEnable() {
// Проверяем, запущен ли на сервере PlaceholderAPI
if (getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")) {
// Регистрируем наш класс.
new Placeholders().register();
}
}
Так-же, я советую прописать ещё unregister в onDisable(), особенно в связке PlugManX
Java:
@Override
public void onDisable() {
new Placeholders().unregister();
}
Шаг четвертый: plugin.yml
Заходим в ваш plugin.yml и добавляем строчки:
Код:
depend:
- PlaceholderAPI
Шаг пятый: Как его использовать.
Достаточно все просто, плейсхолдер плагина выглядит так: %identifier_params%, в нашем случае это %tutorial_isOp% и %tutorial_isOnline%
Эпилог: Данный гайд я написал, ибо много кто хочет добавить плейсхолдеры в свой плагин для вывода их где можно и где нельзя, думаю, эта "статья" для вас была полезной, если вы тот самый пользователь-новичок, который искал данный гайд.