- Поддерживаемые версии
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Ядра и Прокси
- Spigot
- Paper
- Минимальная версия Java
- 8
Здравствуйте, представляю вашему вниманию
переработанный код плагина GreatKits от Kizeko_
Выражаю искреннюю благодарность за использование его ресурсов.
GreatKitsReloaded - позволяет легко создавать и редактировать наборы. Кроме того, сохраняется инвентарь по слотам, что позволяет загрузить комплект с таким расположением предметов, которое вы установили. Кроме того, был переписан код и исправлены некоторые ошибки.
Сделана поддержка версий 1.12.2 - 1.21.х.
Плагин был переписан и улучшен кодером 6ex9one.
Улучшено сохранение предметов по слотам, улучшена поддержка переводов и разных языков, исправлены ошибки и добавлена поддержка следующих версий.
Планируется также дальнейшее обновление.
Поддерживаемые плагины:
Этот плагин поддерживает PlaceholderAPI.
You must be logged in to see this link.
DEVELOPER API
API полностью поддерживает асинхронную обработку и готов сразу после загрузки плагина.
Начало
➤ Получение доступа к API:
Java:
KitsAPI api = GKReloaded.getAPI();
Если плагин отсутствует на сервере,
GKReloaded.getAPI() вернет null.Пример использования
➤ Выдача набора игроку
Java:
KitsAPI api = GKReloaded.getAPI();
if (api.canClaim(player, "starter")) {
api.giveKit(player, "starter", true, true);
player.sendMessage("§aВы успешно получили старт кит!");
} else {
player.sendMessage("§cВы не можете получить кит!");
}
Проверка задержки
Java:
long remain = GKReloaded.getAPI().getRemainingCooldown(player.getUniqueId(), "starter");
if (remain > 0) {
player.sendMessage("§eДо получения осталось " + (remain / 1000) + " секунд.");
}
Список китов
Java:
for (Kit kit : GKReloaded.getAPI().getKits()) {
Bukkit.getLogger().info("Загружен кит: " + kit.getName());
}
API структура
Интерфейс: KitsAPI
Java:
/**
* <h2>KitsAPI</h2>
* <p>
* Основной интерфейс для взаимодействия с плагином GreatKitsReloaded.
* Проверка доступа к китам, задержки и т.д
* </p>
*
* <h3>Пример использования:</h3>
* <pre>{@code
* KitsAPI api = Kits.getAPI();
* Kit kit = api.getKit("start");
*
* if (api.canClaim(player, "starter")) {
* api.giveKit(player, "starter", true, true);
* }
* }</pre>
*
* @author 6ex9one
* @version 1.2
*/
public interface KitsAPI {
/**
* Получение идентификатора кита
*
* @param id идентификатор кита
* @return обьект {@link Kit} или {@code null} если не найден
*/
Kit getKit(String id);
/**
* Список доступных китов.
*
* @return возвращает список доступных китов
*/
Collection<Kit> getKits();
/**
* Выдача комплекта указанному игроку.
* <p>
* Если для параметров {@code checkCooldown} и {@code checkOneTimeUse} установлен true,
* то указанные наборы будут проверены перед выдачей.
* </p>
*
* @param player игрок
* @param id идентификатор кита
* @param checkCooldown проверять ли задержку?
* @param checkOneTimeUse проверить ли единоразовую выдачу?
* @return {@code true} если кит успешно выдан, если нет то вернет {@code false}
*/
boolean giveKit(Player player, String id, boolean checkCooldown, boolean checkOneTimeUse);
/**
* Проверка может ли игрок получить набор.
* <p>
* Этот метод учитывает единоразовую выдачу, задержку
* </p>
*
* @param player игрок
* @param id идентификатор
* @return {@code true} если игрок может получить, если нет то {@code false}
*/
boolean canClaim(Player player, String id);
/**
* Получение времени которое осталось до получения
*
* @param uuid идентификатор игрока
* @param id идентификатор кита
* @return возвращает кулдаун в миллисекундах, или {@code 0} если доступен
*/
long getRemainingCooldown(UUID uuid, String id);
/**
* Сохранить изменения набора в YAML файл.
*
* @param id идентификатор набора
*/
void saveKit(String id);
/**
* Удаление полностью данных о наборе.
*
* @param id идентификатор кита
*/
void deleteKit(String id);
}
Интерфейс: Kit
Java:
public interface Kit {
/**
* Возвращает название набора с цветами
*
* @return возвращает название набора
*/
String getName();
/**
* Возвращает задержку в секундах
*
* @return время задержки
*/
int getCooldown();
/**
* Проверка на единоразовую выдачу
*
* @return {@code true} если используется единоразовая выдача
*/
boolean isOneTimeUse();
/**
* Проверка на выдачу набора при первом входе игрока.
*
* @return {@code true} если набор поддерживает выдачу
*/
boolean isFirstTimeJoinKit();
/**
* Возвращает список предметов по слотам
*
* @return список предметов по слотам
*/
Map<Integer, ItemStack> getItems();
/**
* Выдает предметы из набора игроку
*
* @param player игрок
* @param dropFullInventory если {@code true}, предметы упадут на пол если в инвентаре нет места.
*/
void give(Player player, boolean dropFullInventory);
}
Пример интеграции
Java:
public class ExamplePlugin extends JavaPlugin {
private KitsAPI kits;
@Override
public void onEnable() {
if (Bukkit.getPluginManager().getPlugin("GreatKitsReloaded") != null) {
kits = GKReloaded.getAPI();
getLogger().info("GreatKitsReloaded API успешно обнаружен!");
} else {
getLogger().warning("GreatKitsReloaded не найден. API выключен.");
}
}
public void giveStartKit(Player player) {
if (kits != null && kits.canClaim(player, "start")) {
kits.giveKit(player, "start", true, true);
}
}
}
- Зависимости
- Placeholder API
- Команды и права
- Команды администратора:
➤ /gk create <kit> - Создать набор с указанным идентификатором.
➤ /gk setname <kit> <Name> - Указать название для набора ( Поддерживает RGB )
➤ /gk remove <kit> - Удалить набор
➤ /gk setonetimeuse <kit> <true/false> - Установить единоразовое использование
➤ /gk setfirstjoin <kit> <true/false> - Установить выдачу при первом входе игрока.
➤ /gk setinv <kit> - Установить инвентарь для набора ( вещи уже должны быть разложены в инвентаре )
➤ /gk setcooldown <kit> <seconds> - Установить задержку для набора в секундах
Команды игрока:
➤ /kit <kit> - Получить набор
➤ /kit list - Список доступных наборов
➤ /kit - Помощь по командам
Внимание! С новым обновлением вы сможете указывать любую команду, которая должна быть выполнена при вводе команды /kit и т.д!
Permissions:
➤ greatkits.* - Позволяет получить доступ ко всему без ограничений. ( Default: false )
➤ greatkits.admin - Позволяет игроку обходить проверку на задержку, выдачу и т.д. ( Default: op )
➤ greatkits.<kitId> - Позволяет получить доступ к определенному набору. ( Default: false )
➤ greatkits.list - Позволяет игроку посмотреть доступные наборы. ( Default: true )
Все что нужно тут, разложили у себя инвентарь. Прописали gk create название, gk setcooldown секунды и все. Тадааам ваш кит готов