Документация 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