Paste #50694: Diff note for paste #50693

Date: 2018/11/15 05:50:19 UTC-08:00
Type: Diff Report

View Raw Paste Download This Paste
Copy Link


 readYAML:
 # In-game YAML reader.
   type: command
   debug: false
   name: readyaml
   description: Shows the entries of a YAML file in chat.
   usage: /readyaml <&lt>yamlID<&gt>
   tab complete:
     - define yamlList "<yaml.list>"
     - if "<def[yamlList].is_empty>":
       - determine li@
     - if "<c.args.size>" > "1":
       - determine li@
     - define yamlID "<c.args.get[1]||>"
     - determine "<def[yamlList].filter[starts_with[<def[yamlID]>]]>"
   script:
     - define yamlList "<yaml.list>"
     - if "<def[yamlList].is_empty>":
       - narrate "<&6>There are no YAML files loaded."
       - queue clear
     - define yamlID "<c.args.get[1]||null>"
     - if "<def[yamlID]>" == null:
       - narrate "<&6>Specify the ID of the file you wish to view."
       - narrate "<&6>Usage<&co> <&c><&dq>/readyaml <&lt>yamlID<&gt><&dq><&6>."
       - queue clear
     - if "<def[yamlList].contains[<def[yamlID]>].not>":
       - narrate "<&6>There is no loaded file by the name of <&c><&dq><def[yamlID]><&dq><&6>."
       - queue clear
     - define keys "<yaml[<def[yamlID]>].list_keys[]>"
     - if "<def[keys].is_empty>":
       - narrate "<&6>The file specified exists, but is empty."
       - queue clear
     - define deep_keys "<yaml[<def[yamlID]>].list_deep_keys[]>"
     - foreach "<def[keys]>":
       - define key "<def[value]>"
       - define subkeys "<def[deep_keys].filter[starts_with[<def[value]>]]>"
       - define subkeys "<def[subkeys].sort_by_number[split_by[.].size]>"
       - foreach "<def[subkeys]>":
         - define subkey "<def[value]>"
         - define sp "<el@.pad_left[<def[subkey].split_by[.].size.sub[1].mul[2]>]>"
         - define subkey_formatted "<def[subkey]>"
         - if "<def[subkey].contains[.]>":
           - define subkey_formatted "<def[subkey].after_last[.]>"
         - if "<def[subkeys].filter[starts_with[<def[subkey]>]].size>" > "1":
           # Has more subkeys.
           - narrate "<def[sp]><&a><def[subkey_formatted]><&co>"
         - else:
           # Is the last subkey.
           - define value "<yaml[<def[yamlID]>].read[<def[subkey]>]>"
           - if "<def[value].type>" == "List":
             - narrate "<def[sp]><&a><def[subkey_formatted]><&co>"
             - foreach "<def[value]>":
               - narrate "<def[sp]>  <&7>- <&f><def[value]>"
           - else:
             - narrate "<def[sp]><&a><def[subkey_formatted]><&co> <&f><def[value]>"