Як гліф стає фоном меню
Меню-скриня виводить свою назву в лівому верхньому куті, і ця назва може містити символи із серверного ресурспаку. Гліф – це такий символ, намальований із твого PNG. Постав великий гліф у назву, і клієнт намалює його поверх усього екрана скрині.
Розташування задають два значення. Від’ємний зсув (shift) пересуває курсор ліворуч перед гліфом, тож картинка починається від краю скрині, а не від відступу назви. Параметр ascent гліфа пересуває його по вертикалі, доки він не накриє меню. Слоти залишаються справжніми слотами: там, де на картинці кнопка, у меню є порожній слот з material: air, який усе одно виконує дії при кліку.
Якщо ти користуєшся ItemsAdder, читай версію цього посібника для ItemsAdder. Ідея та сама, відрізняються лише конфіг і назви плейсхолдерів.
Що тобі потрібно
- DeluxeMenus і PlaceholderAPI на сервері. DeluxeMenus обробляє плейсхолдери PlaceholderAPI у
menu_title. - Nexo або Oraxen, які збирають ресурспак і надають плейсхолдери гліфів і зсувів.
- Для Oraxen: гліфи в назвах інвентарів працюють нативно на Paper 1.21.2 або новішому. Старішим серверам, за документацією Oraxen, потрібен PacketEvents.
- Фоновий PNG розміром щонайбільше 256×256 пікселів. Більші текстури для одного гліфа не дозволені.
Крок 1: Спроєктуй фон
Збери меню в конструкторі GUI: вибери кількість рядків, шаблон чи тему й намалюй великі кнопки на кілька слотів. В експорті вибери Nexo або Oraxen, задай namespace (наприклад mymenus) і назву меню (наприклад shop).
PNG має ширину 256 пікселів і висоту від 164 пікселів (один рядок) до 254 пікселів (шість рядків). Поле навколо скрині дає рамкам місце виходити за звичайний контур меню.
Крок 2a: Конфіг гліфа в Nexo
Nexo читає гліфи з будь-якого YAML-файлу у своїй папці glyphs. Текстура записується як namespace:path, тут це PNG за адресою plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254height– висота, з якою малюється гліф. Вкажи реальну висоту PNG у пікселях.ascentпіднімає гліф угору. За словами Nexo, висота ніколи не має бути меншою за ascent.- Плейсхолдери:
%nexo_gui_shop%для гліфа та%nexo_shift_<pixels>%для простору, який може бути від’ємним.
Крок 2b: Конфіг гліфа в Oraxen
Oraxen читає гліфи з plugins/Oraxen/glyphs/. Шлях до текстури вказується відносно pack/textures/, тож PNG кладеш у plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen вимагає, щоб
heightбув більшим або рівнимascent; цього вимагає сам Minecraft. - Плейсхолдер гліфа –
%oraxen_gui_shop%. Для зсувів є два плейсхолдери:%oraxen_shift_<pixels>%зсуває праворуч,%oraxen_neg_shift_<pixels>%– ліворуч. Кожен підтримує до 2047 пікселів. - Є ключ
char, щоб вибрати символ самостійно, але він необов’язковий.
Крок 4: Зареєструй меню й перезавантаж
gui_menus:
shop:
file: shop.yml- Перезбери пак:
/nexo reload(або/nexo reload pack) для Nexo,/oraxen reload allдля Oraxen. - Виконай
/dm reloadі перевір через/dm open shop. - Один раз перезапусти сервер. DeluxeMenus реєструє
/shopзregister_command: trueлише під час запуску. - Перезайди, щоб отримати новий ресурспак.
Типові помилки та рішення
| Що ти бачиш | Причина та рішення |
|---|---|
%nexo_gui_shop% або %oraxen_gui_shop% як текст | Немає PlaceholderAPI, або ID гліфа в плейсхолдері не збігається з ключем у файлі гліфа. |
| Порожній квадрат або не той символ | Пак не перезібрано, або в гравця старий пак. Перезавантаж плагін і перезайди. |
| Гліф Oraxen зникає лише в назвах меню | Сервер старіший за Paper 1.21.2, і PacketEvents не встановлено. |
| Картинка зсунута | Зсув або ascent не відповідає PNG. Експортуй ще раз з того самого дизайну. |
| Картинка темніша, ніж PNG | Перед першим плейсхолдером немає &f. |
| Гліф відхиляється під час завантаження | ascent більший за height, або PNG більший за 256×256. |
/shop нічого не робить | Меню немає в config.yml, або сервер не перезапускали після його додавання. |