Документация EasyMenuAPI

Документация EasyMenuAPI

CHELOVECHEK

Установка EasyMenuApi в IntelliJ IDEA


Скачайте EasyMenuAPI по этой сыллке:
EasyMenu 3.2: DOWNLOAD


Сначала сделайте среду для создания Minecraft плагиновCjp для paper с помощью плагина в IntelliJ IDEA Minecraft Developement.


Создайте проект с средой для плагинов
После билда проекта зайдите в файл Build.gradle и найдите строчки:

dependencies {
    compileOnly("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT")//У вас может быть другое
}

И добавьте туда:

compileOnly files("libs/EasyMenuAPI.jar")

Что бы было так:

dependencies {
    compileOnly("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT")
    compileOnly files("libs/EasyMenuAPI.jar")
}

И нажмите cntl + shift + o

И у вас все готово к создание меню.

Чтобы сделать меню, ознакомьтесь с документацией к плагину, которая представлена ниже.

Введение

EasyMenuAPI - это мощный и удобный API для создания интерактивных меню в Minecraft с поддержкой анимаций, звуковых эффектов и частиц. Он позволяет легко создавать сложные интерфейсы с минимальным количеством кода.


Создание меню


Создание экземпляра меню


EasyMenEasyMenuAPI.Menu menu = new EasyMenuAPI.Menu("Название меню", 3);



Регистрация меню в API



EasyMenuAPI.getInstance().registerMenu("main_menu", menu); //menu - это будет использоватся для вызова функции
Пример: menu.setItem(...)



Добавление предметов в меню




ItemStack item = EasyMenuAPI.createMenuItem(Material.DIAMOND, "§aНазвание кнопки, "§7Описание кнокп");
menu.setItem(10, item, player -> {//Что происходит если игрок нажмет на кнопку
  player.sendMessage("Вы нажали кнопку!");//Отправка сообщения в чат
});



Создание предмета с помощью createMenuItem



ItemStack item = EasyMenuAPI.createMenuItem(
  Material.BOOK, 
  "§eИнформация", //Название предмета
  "§7Здесь вы можете узнать", // описание
  "§7полезную информацию"//описание можно до бесконечности делать описание
);



Основные функции меню


Открытие и закрытие меню



Открытие меню для игрока

menu.open(player);


Закрытие меню для игрока

menu.close(player);



Действия при открытии/закрытии



menu.setOpenAction(player -> {
  player.sendMessage("Меню открыто!");
});


menu.setCloseAction(player -> {
  player.sendMessage("Меню закрыто!");
});



Анимации и спецэффекты


Анимация заполнения слотов



Set<Integer> slots = new HashSet<>(Arrays.asList(10, 11, 12, 13, 14, 15, 16)); // слоты которые надо заполнить
ItemStack item = EasyMenuAPI.createMenuItem(Material.GOLD_INGOT, "§6Золотой блок");// Делаем переменную item что бы было легче, тут задаем параметры (золотой слиток с названием золотоый блок)
//Задаем снизу параметры для анимации
AnimationSettings settings = new AnimationSettings()//Настройки анимации
  .withSound(Sound.BLOCK_NOTE_BLOCK_PLING, 1.0f, 1.5f)//Каждый кадр анимации будет проигрыватся звук
  .withParticle(Particle.FIREWORKS_SPARK, 3)// каждый кард анимации будет спавнится партикл
  .withOnComplete(p -> p.sendMessage("Заполнение завершено!"));//После завершение анимации

menu.itemFill(slots, item, true, 2.0f, settings); // создаем меню с анимацией
// вызываем соответственно menu.open(player);


Анимированная кнопка



List<ItemStack> frames = Arrays.asList(//Задаем предметы которые будут менятся каждый кадр
  EasyMenuAPI.createMenuItem(Material.RED_WOOL, "§cКнопка 1"),
  EasyMenuAPI.createMenuItem(Material.YELLOW_WOOL, "§eКнопка 2"),
  EasyMenuAPI.createMenuItem(Material.GREEN_WOOL, "§aКнопка 3")
);

AnimationSettings settings = new AnimationSettings()//настройки анимации
  .withSound(Sound.BLOCK_NOTE_BLOCK_HAT, 0.5f, 1.0f)
  .withOnAnimationEnd(p -> p.sendMessage("Анимация завершена!"));

menu.addAnimatedButton(22, frames, 10, true, settings, player -> {
  player.sendMessage("Анимированная кнопка нажата!");
});
//Будет анимация в 22 слоте каждые 10 тиков новый кадр
//4 аргумент true/false отвечает за loop анимации
//То есть будет ли она повторятся
//5 аргумент отвечает за настройки анимации
// 6 аргумент player -> {/*Тут что произойдет если игрок нажмет на кнопку*/}


Перемещение предмета



AnimationSettings settings = new AnimationSettings()//Задаем параметры анимации
  .withSound(Sound.ENTITY_ITEM_PICKUP, 1.0f, 1.0f)//Каждый кадр будет звук
  .withParticle(Particle.CLOUD, 2);//каждый кадр будет партикл

menu.moveItem(10, 16, 1.5f, true, settings);//двигаем предмет с 10 слота в 16
//4 аргумент отвечает за loop
//5 аргумент настройки анимации



Управление анимациями


Включение/выключение анимации



EasyMenuAPI.getInstance().enableAnimation("main_menu", 10);//Включение анимации в 10 слоте
EasyMenuAPI.getInstance().disableAnimation("main_menu", 10);//Выключение анимации в 10 слоте



Проверка состояния анимации



boolean isAnimating = EasyMenuAPI.getInstance().isAnimationEnabled("main_menu", 10);



Дополнительные функции


AnimationSettings


Класс для настройки эффектов анимации:



AnimationSettings settings = new AnimationSettings()
  .withSound(Sound.BLOCK_NOTE_BLOCK_BELL, 1.0f, 1.2f) // Звук
  .withParticle(Particle.HEART, 2)          // Частицы
  .withDuringAnimation(p -> p.sendTitle("", "Анимация в процессе", 0, 20, 0)) // Действие во время анимации
  .withOnComplete(p -> p.sendMessage("Анимация завершена!")) // Действие по завершении
  .withOnAnimationEnd(p -> p.sendMessage("Анимация полностью закончилась")); // Действие после окончания



Пример полного меню


// Создание меню
EasyMenuAPI.Menu menu = new EasyMenuAPI.Menu("§6Главное меню", 3);

// Добавление предметов
menu.setItem(10, EasyMenuAPI.createMenuItem(Material.DIAMOND, "§aИграть"), player -> {
  player.sendMessage("Начинаем игру!");
});

menu.setItem(13, EasyMenuAPI.createMenuItem(Material.BOOK, "§eИнформация"), player -> {
  player.sendMessage("Информация о сервере...");
});

menu.setItem(16, EasyMenuAPI.createMenuItem(Material.BARRIER, "§cВыход"), player -> {
  player.closeInventory();
});

// Анимированная кнопка
List<ItemStack> frames = Arrays.asList(
  EasyMenuAPI.createMenuItem(Material.REDSTONE, "§cЗагрузка..."),
  EasyMenuAPI.createMenuItem(Material.GLOWSTONE_DUST, "§eЗагрузка.."),
  EasyMenuAPI.createMenuItem(Material.GOLD_NUGGET, "§6Загрузка.")
);

menu.addAnimatedButton(22, frames, 5, true, null, player -> {
  player.sendMessage("Обновление данных...");
});

// Регистрация меню
EasyMenuAPI.getInstance().registerMenu("main", menu);

// Открытие меню для игрока
menu.open(player);



Заключение


EasyMenuAPI предоставляет простой и мощный инструмент для создания интерактивных меню с анимациями и эффектами. С его помощью можно легко реализовать сложные интерфейсы без глубоких знаний Bukkit API.

Версия плагина: 3.2
Поддержка: 1.13 - 1.19

Report Page