Към съдържанието

GUI фон в DeluxeMenus с Nexo или Oraxen

Собствените екрани за менюта в Minecraft са трик: фоновата картинка е един-единствен символ в заглавието на менюто. Nexo и Oraxen наричат тези символи glyph-ове. Това ръководство показва конфигурацията на glyph-овете за двата плъгина, shift плейсхолдърите, които наместват картинката, и как да свържеш всичко с DeluxeMenus.

Обновено:

Как glyph става фон на меню

Менюто в сандък изписва заглавието си в горния ляв ъгъл и това заглавие може да съдържа символи от resource pack-а на сървъра. Glyph е такъв символ, нарисуван от твоя PNG. Сложи голям glyph в заглавието и клиентът ще го нарисува върху целия екран на сандъка.

Две стойности го позиционират. Отрицателният shift мести курсора наляво преди glyph-а, така че картинката да започва от ръба на сандъка, а не от отстъпа на заглавието. Ascent на glyph-а го мести вертикално, докато покрие менюто. Слотовете остават истински слотове: там, където картинката показва бутон, менюто има празен слот с material: air, който пак изпълнява действия при клик.

Ако вместо това използваш ItemsAdder, прочети версията на това ръководство за ItemsAdder. Идеята е същата, само конфигурацията и имената на плейсхолдърите са различни.

Какво ти трябва

  • DeluxeMenus и PlaceholderAPI на сървъра ти. DeluxeMenus обработва плейсхолдърите на PlaceholderAPI в menu_title.
  • Nexo или Oraxen, които изграждат resource pack-а и дават плейсхолдърите за glyph и shift.
  • За Oraxen: glyph-овете в заглавията на инвентари работят нативно на Paper 1.21.2 или по-нов. По-старите сървъри се нуждаят от PacketEvents според документацията на Oraxen.
  • Фонов PNG от най-много 256×256 пиксела. По-големи текстури не са позволени за един glyph.

Стъпка 1: Проектирай фона

Направи менюто в GUI редактора: избери редовете, шаблон или тема и начертай големи бутони през няколко слота. При експорта избери Nexo или Oraxen, задай namespace (например mymenus) и име на менюто (например shop).

PNG-то е широко 256 пиксела и високо между 164 пиксела (един ред) и 254 пиксела (шест реда). Полето около сандъка дава място на рамките да излизат извън нормалния контур на менюто.

Стъпка 2а: Конфигурация на glyph в Nexo

Nexo чете glyph-ове от всеки YAML файл в папката си glyphs. Текстурата се записва като namespace:path, тук PNG-то в plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:

plugins/Nexo/glyphs/gui_shop.yml
gui_shop:
  texture: mymenus:gui/shop
  ascent: 45
  height: 254
  • height е нарисуваната височина. Използвай реалната височина на PNG-то в пиксели.
  • ascent мести glyph-а нагоре. Според Nexo височината никога не трябва да е по-малка от ascent.
  • Плейсхолдърите са %nexo_gui_shop% за glyph-а и %nexo_shift_<pixels>% за празно място, което може да е отрицателно.

Стъпка 2б: Конфигурация на glyph в Oraxen

Oraxen чете glyph-ове от plugins/Oraxen/glyphs/. Пътят до текстурата е относителен спрямо pack/textures/, затова PNG-то отива в plugins/Oraxen/pack/textures/gui/shop.png:

plugins/Oraxen/glyphs/gui_shop.yml
gui_shop:
  texture: gui/shop
  ascent: 45
  height: 254
  • Oraxen изисква height да е по-голямо или равно на ascent; Minecraft налага това.
  • Плейсхолдърът за glyph е %oraxen_gui_shop%. За отместванията има два плейсхолдъра: %oraxen_shift_<pixels>% мести надясно, %oraxen_neg_shift_<pixels>% мести наляво. Всеки поддържа до 2047 пиксела.
  • Има ключ char, с който сам избираш символа, но той не е задължителен.

Стъпка 3: Заглавието на менюто в DeluxeMenus

Заглавието съчетава цвят, отместване наляво, glyph-а, отместване обратно и текста на заглавието. За Nexo:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%nexo_shift_-48%%nexo_gui_shop%%nexo_shift_-201%&8Shop'
open_command: 'shop'
register_command: true
size: 54
items:
  button_1_buy:
    material: air
    slots: [10, 11, 19, 20]
    priority: 1
    click_commands:
      - '[openguimenu] shop_buy'

За Oraxen се променя само заглавието, защото отместванията наляво имат собствен плейсхолдър:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%oraxen_neg_shift_48%%oraxen_gui_shop%%oraxen_neg_shift_201%&8Shop'
  1. &f запазва собствените цветове на картинката, вместо да я оцветява в цвета на заглавието.
  2. Първото отместване мести курсора 48 пиксела наляво: GUI редакторът брои 8 пиксела за отстъпа на заглавието на сандъка плюс 40 пиксела поле на платното си.
  3. Второто отместване връща курсора, така че &8Shop да стои върху картинката. Стойността му зависи от ширината на картинката ти; GUI редакторът я изчислява.

Nexo и Oraxen имат и MiniMessage тагове като <glyph:gui_shop> и <shift:-48>. GUI редакторът пише формата %…%, защото DeluxeMenus документира плейсхолдъри на PlaceholderAPI за menu_title.

Стъпка 4: Регистрирай менюто и презареди

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Изгради pack-а отново: /nexo reload (или /nexo reload pack) за Nexo, /oraxen reload all за Oraxen.
  2. Изпълни /dm reload и тествай с /dm open shop.
  3. Рестартирай сървъра веднъж. DeluxeMenus регистрира /shop от register_command: true само при стартиране.
  4. Влез отново, за да получиш новия resource pack.

Чести грешки и решения

Какво виждашПричина и решение
%nexo_gui_shop% или %oraxen_gui_shop% като текстPlaceholderAPI липсва или ID-то на glyph-а в плейсхолдъра не съвпада с ключа във файла на glyph-а.
Празна кутийка или грешен символPack-ът не е изграден отново или играчът има стария pack. Презареди плъгина и влез отново.
Glyph от Oraxen липсва само в заглавията на менютаСървърът е по-стар от Paper 1.21.2 и PacketEvents не е инсталиран.
Картинката е изместенаShift или ascent не съвпада с PNG-то. Експортирай отново от същия дизайн.
Картинката е по-тъмна от PNG-тоЛипсва &f преди първия плейсхолдър.
Glyph-ът се отхвърля при зарежданеascent е по-голямо от height или PNG-то е по-голямо от 256×256.
/shop не прави нищоМенюто не е в config.yml или сървърът не е рестартиран след добавянето му.

Често задавани въпроси

Различна ли е настройката за Nexo и Oraxen?

Само в детайлите. Nexo записва текстурата като namespace:path и използва %nexo_shift_N% с отрицателни числа. Oraxen приема път, относителен спрямо pack/textures/, и има %oraxen_neg_shift_N% за местене наляво.

Защо glyph-ът ми не се показва в заглавието в DeluxeMenus?

Обикновено плейсхолдърът не се заменя (липсва PlaceholderAPI или ID-то на glyph-а е грешно), resource pack-ът не е изграден отново или играчът не е заредил новия pack. При Oraxen на сървъри по-стари от Paper 1.21.2 за заглавията е нужен PacketEvents.

Коя команда за презареждане ми трябва?

За Nexo /nexo reload, която презарежда всичко, или /nexo reload pack само за pack-а. За Oraxen /oraxen reload all. След това /dm reload за файла на менюто.

Мога ли да използвам текстура, по-голяма от 256×256 пиксела?

Не като един glyph. Minecraft ограничава glyph-овете до 256×256 пиксела. Фонът на меню от GUI редактора остава в този лимит за всеки брой редове.

Източници

Проверено спрямо официалната документация: