Paste #51003: Untitled Paste

Date: 2018/12/03 06:25:03 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


inventoryGUI:
  type: world
  debug: false
  default constants:
    inv: in@<script.name>_<pl.uuid>
  script:
    - note "in@generic[title=Inventory GUI]" "as:<script.constant[inv].after[in@]>"
    - define inv "<script.constant[inv]>"
    - foreach "<script.list_keys[items]||li@>":
      - define item "<def[value]>"
      - inject locally "items.<def[item]>" instantly
    - inventory open "d:<def[inv]>"
  items:
    item:
      - define material "book"
      - define display_name "Display name!"
      - define lore "li@This
                       |is
                       |a
                       |lore!"
      - define item "i@<def[material]>[
                                      display_name=<def[display_name]>;
                                      lore=<def[lore]>
                                      ]"
      - inventory set "d:<def[inv]>" "o:<def[item]>" "slot:1"
  events:
    on player clicks in notable:
      - if "<c.inventory>" != "<script.constant[inv]>":
        - queue clear
      - determine cancelled passively
    on player closes notable inventory:
      - if "<c.inventory>" == "<script.constant[inv]>":
        - note remove "as:<c.inventory.notable_name>"