So funktioniert eine ItemsAdder-GUI-Textur
Ein Kistenmenü zeigt seinen Titel oben links. Dieser Titel ist Text, und Text darf Zeichen aus dem Ressourcenpaket des Servers enthalten. ItemsAdder kann jedes PNG in so ein Zeichen verwandeln, ein Font-Image. Steht ein großes Font-Image im Titel, zeichnet der Client es über das Kistenmenü.
Damit es genau passt, braucht es noch zwei Dinge. Ein negativer Offset schiebt den Cursor vor dem Bild nach links, sodass das Bild am linken Rand der Kiste beginnt und nicht erst nach dem Einzug des Titels. Mit y_position verschiebst du das Font-Image nach oben oder unten, bis es das ganze Menü bedeckt.
Die Slots bleiben ganz normale Slots. Wo dein Bild einen Knopf zeigt, liegt im Menü ein leerer, klickbarer Slot mit material: air und eigenen Klick-Aktionen.
Was du brauchst
- DeluxeMenus und PlaceholderAPI auf einem Spigot- oder Paper-Server.
- ItemsAdder, das das Ressourcenpaket baut und die Platzhalter
%img_…%bereitstellt. - Eine funktionierende Auslieferung des Ressourcenpakets, damit Spieler es wirklich laden (ItemsAdder bietet Self-Hosting und andere Hosting-Wege an).
- Ein Hintergrundbild als PNG. Minecraft erlaubt keine Schriftzeichen über 256×256 Pixel, das Bild muss also in diese Größe passen.
Schritt 1: Das Menü-Hintergrundbild gestalten
Bau das Menü im GUI-Maker: Reihen wählen, ein Theme oder eine Vorlage nehmen und große Knöpfe über mehrere Slots ziehen. Wähl beim Export ItemsAdder, trag deinen Namespace ein (zum Beispiel mymenus) und den Menünamen (zum Beispiel shop).
Das exportierte PNG ist 256 Pixel breit. Die Höhe hängt von den Reihen ab: 164 Pixel bei einer Reihe bis 254 Pixel bei sechs. Der zusätzliche Rand um die Kiste erlaubt Rahmen und Verzierungen, die über den normalen Menüumriss hinausragen.
Schritt 2: Das Font-Image in ItemsAdder eintragen
Kopier das PNG in deinen Namespace und leg einen Eintrag unter font_images an. So sieht der Export des GUI-Makers für ein Menü mit sechs Reihen aus:
info:
namespace: mymenus
font_images:
gui_shop:
path: gui/shop
show_in_gui: false
suggest_in_command: false
scale_ratio: 254
y_position: 45Das Bild selbst gehört nach plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.
scale_ratioist die Höhe, in der das Bild gezeichnet wird. Nimm die echte Pixelhöhe des PNG, dann wird nichts gestreckt.y_positionverschiebt das Bild senkrecht. ItemsAdder verlangt, dass der Wert kleiner oder gleichscale_ratioist, weil das Spiel nicht mehr zulässt.show_in_gui: falsehält den Hintergrund aus der Emoji-Liste von ItemsAdder heraus.
Schritt 4: Menü registrieren und Paket neu bauen
DeluxeMenus lädt nur Menüs, die in seiner config.yml stehen:
gui_menus:
shop:
file: shop.yml- Führ
/iazipaus, damit ItemsAdder das Ressourcenpaket mit dem neuen Bild baut. - Führ
/dm reloadaus. Öffne das Menü zum Prüfen einmal mit/dm open shop. register_command: truemeldet/shopals echten Befehl an, aber nur beim Serverstart. Starte den Server nach einem neuen Menü also einmal neu.- Join neu, nimm das Ressourcenpaket an und öffne das Menü.
Typische Fehler und Lösungen
| Was du siehst | Ursache und Lösung |
|---|---|
Im Titel steht %img_gui_shop% als Text | PlaceholderAPI fehlt, oder der Name stimmt nicht. Der Platzhalter nutzt den Namen des Font-Images aus der Config, ohne Namespace. |
| Ein leeres Kästchen oder ein falsches Zeichen statt des Bildes | Das Paket wurde nicht neu gebaut, oder der Spieler hat noch das alte. /iazip ausführen und neu joinen. |
| Manche Spieler sehen gar kein Bild | Diese Spieler haben das Ressourcenpaket des Servers abgelehnt. Prüf dein Pack-Hosting und die Servereinstellungen im Client. |
| Das Bild ist verschoben | Der erste Offset oder y_position passt nicht zu den Rändern deines PNG. Lieber neu exportieren als Zahlen raten. |
| Das Bild ist grau oder zu dunkel | Vor dem Bild fehlt &f. |
/shop ist ein unbekannter Befehl | Der Server wurde nach dem Eintragen nicht neu gestartet, oder das Menü fehlt in der config.yml. |
| ItemsAdder lehnt das Font-Image ab | y_position ist größer als scale_ratio, oder das Bild ist größer als 256×256. |