Menü yazma

İlk menü #

plugins/CrossMenu/menus/ altındaki her .yml dosyası bir menüdür. .yml uzantısı olmayan yol, menünün kimliği olur.

yaml
title: "&8Shop"
rows: 3
open-commands: [shop]

items:
  diamonds:
    slot: 13
    material: DIAMOND
    name: "&bDiamonds"
    lore:
      - "&7Click to buy"
    left-actions:
      - "[console] give {player} diamond 1"
      - "[message] &aPurchased."

Onay ve metin girişi menüleri için type: confirm veya type: input kullanın. Geyser veya Floodgate varsa Bedrock oyuncuları yerel formlar alır. Sunucu destekliyorsa Java diyalogları kullanılır; aksi halde CrossMenu sandık sürümünü açar.

Bir menüyü komut olmadan açma #

open-commands dışında, bir menü oyuncu girdiğinde veya belirli bir eşyayla tıkladığında açılabilir:

yaml
open-triggers:
  join: true # open shortly after joining
  join-delay-ticks: 40 # default 20, allowed 1-1200
  item:
    material: COMPASS # the item in the main hand
    name: "&aServer menu" # optional; colour codes are ignored when comparing
    click: right # right (default), left or any

Menünün open-permission, open-requirement ve açma hızı sınırı her zamanki gibi geçerlidir. Eşleşen bir tıklama iptal edilir, bu yüzden eşya başka bir şey yapmaz. Bir tetikleyiciyi yalnızca tek bir menü sahiplenebilir: iki menü aynı girişi veya aynı eşya ve tıklamayı sahiplenirse kimliği alfabetik olarak önce gelen kazanır ve konsol bunu söyler. Bir Citizens NPC'si için NPC'ye crossmenu open <menu> oyuncu komutunu verin.

Bileşenler #

Paylaşılan tanımları plugins/CrossMenu/components/ altındaki herhangi bir .yml dosyasına koyun. Her üst düzey anahtar bir bileşendir.

yaml
# components/common.yml
close-button:
  material: BARRIER
  name: "&cClose"
  actions: ["[close]"]

dark-pane:
  material: BLACK_STAINED_GLASS_PANE
  name: " "

Bir bileşeni menüde kullanın ve yalnızca değişeni geçersiz kılın:

yaml
items:
  close:
    component: close-button
    slot: 22

  back:
    extends: [close-button, dark-pane]
    slot: 18
    name: "&eBack"

Bileşenler soldan sağa birleştirilir. Menüde yazılan anahtarlar her zaman kazanır. Listeler ve skaler değerler bütünüyle değiştirilir. Boş bir yerel anahtar, devralınan değeri kaldırır. Bilinmeyen adlar, döngüler ve tür çakışmaları kaynak dosyaları ve satırlarıyla bildirilir.

Matrix yerleşimleri #

Matrix, envanter yerleşimlerini okunabilir kılar. Her satır tam olarak dokuz karakter içermelidir. . ve boşluklar boş hücrelerdir.

yaml
rows: 3
matrix:
  - "OOOOOOOOO"
  - "O..S.C..O"
  - "OOOOOOOOO"

items:
  shop:
    symbol: S
    material: EMERALD
    name: "&aShop"
  close:
    symbol: C
    component: close-button

fill-item:
  material: GRAY_STAINED_GLASS_PANE
  name: " "

fill-item, hiçbir görünür eşyanın sahiplenmediği hücreleri kaplar ve her zaman normal eşyaların arkasında çizilir. Slot numaraları ve semboller aynı menüde birlikte kullanılabilir.

Eylemler ve koşullar #

Yaygın eylemler arasında oyuncu ve konsol komutları, mesajlar, duyurular, sesler, başlıklar, menü gezinmesi, kapatma, yenileme, bağlanma, ekonomi değişiklikleri ve eşya değişiklikleri bulunur.

yaml
left-actions:
  - "[takemoney] 250"
  - "[console] give {player} diamond 1"
  - "[sound] entity.player.levelup"

left-click-requirement:
  requirements:
    funds:
      type: has money
      amount: 250
  deny-actions:
    - "[message] &cYou need $250."

Koşullar izinleri, parayı, deneyimi, eşyaları, karşılaştırmaları, Java/Bedrock algılamasını, dünyayı, oyun modunu, tarih/saati ve mantıksal grupları kapsar. perm, hasitem, equals, greater than, not equal to ve != gibi DeluxeMenus takma adları kabul edilir.

[player] komutu yazıldığı gibi çalıştırır. Hiçbir eklenti o komutu kaydetmemişse hiçbir şey olmaz ve oyuncu mesaj görmez (DeluxeMenus burada sunucunun "Unknown command" mesajını gösterir). Var olduğunu denetlemek için yeni bir komutu önce kendiniz yazarak deneyin.

Tıklama türleri, sayfalama, animasyonlar, hesaplamalar, üretilen listeler, dil varyantları, bekleme süreleri ve kullanım sınırları için dahil gelen örnek menülere bakın.