Руководство
Как сделать плагин GUI-меню для Minecraft
Обновлено: 18 октября 2026 г.
Серверные меню (варпы, магазины, киты, настройки) это инвентари-сундуки, которые плагин открывает и контролирует. В каждом слоте лежит предмет, который работает как кнопка. Выглядят они просто, но меню, которое не отменяет любой вид клика, позволяет игрокам унести кнопки с собой. В этом руководстве разобрано, как работают меню и как получить готовое и проверенное меню.
Начните с этого примера.
Сгенерировать это в CodexeШаг за шагом
1.Набросайте меню
Меню-сундук состоит из 1-6 рядов по 9 слотов (от 9 до 54). Укажите, какой предмет в каком слоте, что делает каждый клик и какие слоты просто украшение, например стеклянные панели.
2.Создайте инвентарь с holder
Открывайте его через
Bukkit.createInventory(holder, size, title), используя собственный классInventoryHolder. По holder плагин понимает, что клик произошёл в его меню, а не в обычном сундуке.3.Обработайте клики
В
InventoryClickEventпроверьте holder, отмените событие и выполните действие для этого слота. После действия закройте меню или обновите его.4.Перекройте все остальные способы перемещать предметы
Отменяйте и
InventoryDragEvent, а также обрабатывайте клики с Shift, цифровые клавиши и клики в собственном инвентаре игрока, пока меню открыто.5.Добавьте страницы, если список длинный
Для варпов или товаров, которые не помещаются, отведите нижний ряд под кнопки «назад», «вперёд» и «закрыть».
6.Открывайте меню командой
Например,
/warps, или через предмет или NPC. Назначьте команде право, если меню не для всех.7.Соберите плагин и прокликайте меню
Дождитесь, пока Codexe скомпилирует плагин, зайдите на тестовый сервер и нажмите каждую кнопку. Тестовые игроки тоже могут открыть меню и покликать по слотам за вас.
Правила, которые делают меню безопасным
- Определяйте меню по holder, а не по заголовку: заголовок можно скопировать любым переименованным сундуком.
- Отменяйте клик до всего остального, чтобы ошибка в действии никогда не оставила предмет на курсоре игрока.
- Отменяйте перетаскивание и клики с Shift из инвентаря игрока, иначе предметы можно затолкать в меню.
- Не доверяйте предмету в слоте: определяйте действие по номеру слота или по метке на предмете.
- Выполняйте медленную работу (чтение из базы данных, веб-запросы) вне основного потока и обновляйте меню, когда она завершится.
Меню из конфига
Владельцы серверов любят менять меню без новой сборки. Попросите описывать каждое меню в конфиг-файле: размер, заголовок и для каждой кнопки слот, материал, название, описание и действие:
| Ключ | Пример | Что делает |
|---|---|---|
size | 27 | Число слотов, кратное 9 |
slot | 13 | Где находится кнопка, отсчёт с 0 |
material | ENDER_PEARL | Отображаемый предмет |
action | warp:spawn | Что делает клик: варп, команда, другое меню |
Пример описания
«Плагин для Paper 1.21.4 под названием WarpMenu. /warps открывает меню из 6 рядов с кнопкой для каждого варпа, 45 на страницу, с кнопками «назад», «вперёд» и «закрыть» в нижнем ряду. Администраторы добавляют варпы через /setwarp <name> <material> и удаляют через /delwarp. Клик по варпу телепортирует после 3-секундной задержки, которая отменяется при движении. Игроки не могут забрать или сдвинуть ни один предмет в меню. Варпы хранятся в warps.yml, заголовок меню, названия кнопок и сообщения в config.yml.»
Проверка меню тестовыми игроками
Тестовые игроки Codexe могут открыть меню и кликнуть по слоту, а затем проверить, что открылось меню, появилось сообщение или был выдан предмет. Добавьте тест своими словами, например «обычный игрок вводит /warps, кликает по слоту 0 и видит сообщение о телепорте», и он будет запускаться заново каждый раз, когда Codexe выдаёт изменение.
Вопросы
Работает ли это на 1.8?
Меню-сундуки есть во всех версиях начиная с 1.8. API отличается в деталях (названия материалов, заголовки), поэтому укажите версию в запросе.
Можно ли сделать меню на Skript?
Да, с дополнением skript-gui, которое установлено на тестовом сервере Codexe для Skript. Для больших или нагруженных меню лучше подходит плагин.
Может ли меню выглядеть как своя текстура?
Только с ресурспаком, который меняет предметы или фон инвентаря. Со стороны плагина всё то же самое: слоты, предметы и клики.
Создайте своё меню
Этот промпт откроется уже готовым к отправке:
“Плагин для Paper 1.21.4 под названием WarpMenu: /warps открывает меню из 6 рядов с кнопкой для каждого варпа, 45 на страницу, кнопки «назад»/«вперёд»/«закрыть» в нижнем ряду, /setwarp с названием и материалом и /delwarp для администраторов, 3-секундная задержка телепорта, которая отменяется при движении, ни один предмет нельзя забрать или сдвинуть, варпы в warps.yml, заголовки и сообщения в config.yml.”
Сгенерировать это в Codexe