Hoppa till innehållet

Egen GUI-bakgrund i DeluxeMenus med ItemsAdder

Minecraft har ingen inställning för en bakgrundsbild i menyer, ändå har många servrar kistmenyer som ser ut som helt egna skärmar. Tricket är en typsnittsbild i menytiteln: ItemsAdder gör om din PNG till ett tecken, och negativa offsets flyttar tecknet över kistan. Den här guiden ställer in det steg för steg för DeluxeMenus.

Uppdaterad:

Så fungerar ett textur-GUI

En kistmeny visar sin titel i det övre vänstra hörnet. Titeln är text, och text kan innehålla tecken från serverns resource pack. ItemsAdder kan göra om vilken PNG som helst till ett sådant tecken, en så kallad font image (typsnittsbild). Lägg en stor typsnittsbild i titeln så ritar klienten den över kistskärmen.

Två saker till får allt att hamna rätt. En negativ offset flyttar markören åt vänster före bilden, så att bilden börjar vid kistans vänsterkant i stället för efter titelns indrag. Typsnittsbildens y_position flyttar den upp eller ner tills den täcker hela menyn.

Slotsen förblir vanliga slots. Där din bild visar en knapp har menyn en tom, klickbar slot med material: air och egna klickactions.

Det här behöver du

  • DeluxeMenus och PlaceholderAPI på en Spigot- eller Paper-server.
  • ItemsAdder, som bygger resource packet och ger dig placeholders av typen %img_…%.
  • En fungerande leverans av resource packet, så att spelarna faktiskt laddar ner det (ItemsAdder erbjuder self-hosting och andra hostingalternativ).
  • En PNG som bakgrund. Minecraft tillåter inte typsnittsglyphs större än 256×256 pixlar, så bilden måste rymmas inom det.

Steg 1: Gör bakgrundsbilden

Designa menyn i GUI-skaparen: välj antal rader, ett tema eller en förinställning och rita stora knappar över flera slots. Välj ItemsAdder som export, ange ditt namespace (till exempel mymenus) och menynamnet (till exempel shop).

Den exporterade PNG:en är 256 pixlar bred. Höjden beror på antalet rader, från 164 pixlar för en rad till 254 pixlar för sex. Det extra utrymmet runt kistan låter ramar och dekorationer sticka ut utanför menyns vanliga kontur.

Steg 2: Registrera typsnittsbilden i ItemsAdder

Kopiera PNG:en till ditt namespace och lägg till en post under font_images. Så här ser exporten från GUI-skaparen ut för en meny med sex rader:

plugins/ItemsAdder/contents/mymenus/configs/gui_shop.yml
info:
  namespace: mymenus
font_images:
  gui_shop:
    path: gui/shop
    show_in_gui: false
    suggest_in_command: false
    scale_ratio: 254
    y_position: 45

Själva bilden hamnar i plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio är höjden som bilden ritas i. Använd PNG:ens verkliga höjd i pixlar så att inget sträcks ut.
  • y_position flyttar bilden vertikalt. ItemsAdder kräver att värdet är mindre än eller lika med scale_ratio, eftersom spelet inte tillåter mer.
  • show_in_gui: false håller bakgrunden borta från ItemsAdders emojilista.

Steg 3: Lägg in bilden i DeluxeMenus-menyns titel

DeluxeMenus tolkar PlaceholderAPI-placeholders i menu_title. ItemsAdder ger dig %img_<name>% för bilden och %img_offset_<pixels>% för tomrum, som kan vara negativt.

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%img_offset_-48%%img_gui_shop%%img_offset_-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'
  1. &f i början behåller bildens riktiga färger. Utan det tonas bilden med titelns färg.
  2. %img_offset_-48% flyttar markören 48 pixlar åt vänster före bilden. GUI-skaparen använder det värdet för sin duk: 8 pixlar för kisttitelns indrag plus marginalen på 40 pixlar som den lägger till på varje sida.
  3. %img_gui_shop% är själva bakgrunden.
  4. Den andra offseten flyttar tillbaka markören, så att &8Shop skrivs ovanpå bilden där en titel hör hemma. Värdet beror på bildens bredd; GUI-skaparen räknar ut det åt dig.

Om du bakar in titeln i bilden i GUI-skaparen slutar titeln efter bakgrundens placeholder och det blir ingen andra offset.

Steg 4: Registrera menyn och bygg om packet

DeluxeMenus laddar bara menyer som står i dess config.yml:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Kör /iazip så att ItemsAdder bygger om resource packet med den nya bilden.
  2. Kör /dm reload. Öppna menyn en gång med /dm open shop för att kontrollera den.
  3. register_command: true registrerar /shop som ett riktigt kommando, men bara när servern startar. Starta om servern en gång efter att du har lagt till en ny meny.
  4. Joina igen, godkänn resource packet och öppna menyn.

Vanliga fel och lösningar

Det här ser duOrsak och lösning
Titeln visar %img_gui_shop% som textPlaceholderAPI saknas, eller så är namnet fel. Placeholdern använder typsnittsbildens namn från configen, utan namespace.
En tom ruta eller fel symbol i stället för bildenPacket har inte byggts om, eller så har spelaren ett gammalt pack. Kör /iazip och joina igen.
Ingen bild alls för vissa spelareDe har tackat nej till serverns resource pack. Kontrollera hostingen av packet och klientens serverinställningar.
Bilden är förskjutenDen första offseten eller y_position stämmer inte med PNG:ens marginaler. Exportera igen i stället för att gissa siffror.
Bilden är grå eller mörkare&f saknas framför bilden.
/shop är ett okänt kommandoServern startades inte om efter att menyn lades till, eller så saknas menyn i config.yml.
ItemsAdder vägrar ta emot typsnittsbildeny_position är större än scale_ratio, eller så är bilden större än 256×256.

Vanliga frågor

Måste spelarna ladda ner något för en egen GUI-bakgrund?

Ja, serverns resource pack som ItemsAdder bygger. Utan det visar titeln en platshållarruta eller ingenting. ItemsAdder kan skicka packet automatiskt när spelare joinar.

Varför visar min DeluxeMenus-titel %img_…% som text?

Placeholdern ersätts inte. Kontrollera att PlaceholderAPI är installerat, att ItemsAdder är laddat och att namnet efter img_ är exakt typsnittsbildens namn från din config.

Kan jag använda samma bakgrund för menyer med färre rader?

Bara om bilden passar antalet rader. En kista med tre rader är lägre än en med sex, så den behöver en egen PNG och ett eget scale_ratio. GUI-skaparen exporterar rätt höjd för varje antal rader.

Fungerar det här utan ItemsAdder?

Samma trick fungerar med glyphs från Nexo eller Oraxen. Helt utan resource pack-plugin kan du ändå bygga en snygg meny med färgade glasrutor, som GUI-skaparen exporterar med alternativet ”Inget”.

Källor

Kontrollerat mot den officiella dokumentationen: