Иконка ресурса

Плагин GreatKitsReloaded [1.12-1.21.x] - Плагин на наборы - Сохрани и загрузи инвентарь командой 3.1.1

Создайте и подтвердите аккаунт для скачивания
Поддерживаемые версии
  1. 1.12
  2. 1.13
  3. 1.14
  4. 1.15
  5. 1.16
  6. 1.17
  7. 1.18
  8. 1.19
  9. 1.20
  10. 1.21
Ядра и Прокси
  1. Spigot
  2. Paper
Минимальная версия Java
8
[IMG]



[IMG]


Здравствуйте, представляю вашему вниманию
переработанный код плагина 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();
Внимание! Убедитесь что GreatKitsReloaded загружен чтобы вызвать этот метод.
Если плагин отсутствует на сервере, 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 )
Автор
6ex9one
Скачивания
255
Просмотры
3 948
Первый выпуск
Обновление
Оценка
4.00 звёзд 2 оценок

Другие ресурсы пользователя 6ex9one

Поделиться ресурсом

Последние рецензии

Искал медь, нашел золото. Конечно есть некоторые баги, но там легко перекрыть их, и добавил бы менюшку для изменения положения предметов
GreatKits не особо хороший плагин. Куда удобнее использовать тот же PlayerKits2. Он ещё и поддерживает версии выше 1.19
6ex9one
6ex9one
Здравствуйте, выбирать вам. Но кому нужна простота и легкость. Советую данный плагин)
Все что нужно тут, разложили у себя инвентарь. Прописали gk create название, gk setcooldown секунды и все. Тадааам ваш кит готов
Назад
Сверху Снизу