Paste #83716: Diff Report Between Paste #83715 and #70969

Date: 2021/04/21 20:44:30 UTC-07:00
Type: Diff Report

View Raw Paste Download This Paste Edit Of Paste 83715
Copy Link


 TabComplete:
   type: procedure
   debug: false
   definitions: command|data|raw_args
   script:
-    - define raw_args <[raw_args]||<empty>>
+    - define raw_args <[raw_args].if_null[<empty>]>
+    - define newArg '<[raw_args].ends_with[ ].or[<[raw_args].equals[<empty>]>]>'
     - define path <[command]>
     - define script <script[<[data]>]>
+    - define args <list>
+    - if <[raw_args]> != <empty>:
       - define 'args:|:<[raw_args].split[ ]>'
-    - if <[args].get[1]> == <empty>:
-      - define args:!|:<[args].remove[1]>
     - define argsSize <[args].size>
-    - define newArg <[raw_args].ends_with[<&sp>].or[<[raw_args].is[==].to[<empty>]>]>
     - if <[newArg]>:
       - define argsSize:+:1
     - repeat <[argsSize].sub[1]> as:index:
       - define value <[args].get[<[index]>]>
-      - define keys:!|:<[script].list_keys[<[path]>]>
-      - define permLockedKeys:!|:<[keys].filter[starts_with[?]]>
-      - define keys:<-:<[permLockedKeys]>
       - if <[value]> == <empty>:
         - foreach next
+      - define keys <[script].list_keys[<[path]>]>
+      - define permLockedKeys <[keys].filter[starts_with[?]]>
+      - define keys:<-:<[permLockedKeys]>
       - if <[keys].contains[<[value]>]>:
         - define path <[path]>.<[value]>
       - else:
         - if <[permLockedKeys].size> > 0:
-          - define permMap '<[permLockedKeys].parse[after[ ]].map_with[<[permLockedKeys].parse[before[ ]]>]>'
-          - define perm <[permMap].get[<[value]>]||null>
-          - if <[perm]> != null && <player.has_permission[<[perm].after[?]>]>:
+          - define perm '<[permLockedKeys].filter[ends_with[ <[value]>]]>'
+          - if '!<[perm].is_empty> && <player.has_permission[<[perm].first.after[?].before[ ]>]>':
+            - define path <[path]>.<[perm].first>
-            - define path '<[path]>.<[perm]> <[value]>'
             - repeat next
-        - define default <[keys].filter[starts_with[_]].get[1]||null>
-        - if <[default]> == null:
-          - determine <list[]>
-        - define path <[path]>.<[default]>
+        - define default <[keys].filter[starts_with[_]]>
+        - if <[default].is_empty>:
+          - determine <list>
+        - define path <[path]>.<[default].first>
       - if <[script].data_key[<[path]>]> == end:
-        - determine <list[]>
+        - determine <list>
     - foreach <[script].list_keys[<[path]>]>:
       - if <[value].starts_with[_]>:
         - define value <[value].after[_]>
         - if <[value].starts_with[*]>:
           - define ret:|:<proc[<[data]>_<[value].after[*]>].context[<[args]>]>
       - else if <[value].starts_with[?]>:
         - define perm '<[value].before[ ].after[?]>'
         - if <player.has_permission[<[perm]>]>:
           - define 'ret:|:<[value].after[ ]>'
       - else:
         - define ret:->:<[value]>
-    - if !<definition[ret].exists>:
-      - determine <list[]>
+    - if !<[ret].exists>:
+      - determine <list>
     - if <[newArg]>:
       - determine <[ret]>
     - determine <[ret].filter[starts_with[<[args].last>]]>