Paste #43461: Untitled Paste

Date: 2017/08/11 15:53:42 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


DVChest_version: 
  type: version 
  name: DVChest 
  id: 68 
  description: a private safe chest you can access at any time. 
  version: 1.2 
DVChest: 
  type: command 
  debug: true 
  name: dvchest 
  aliases: 
  - dvc 
  tab complete: 
    - define list li@about 
    - if <player.has_permission[dvchest.admin]> { 
      - if <c.args.size.is[==].to[1]> { 
        - define list <def[list].include[add|addlimit]> 
        } 
      } 
    - determine <def[list].filter[starts_with[<context.args.last>]]> 
  script: 
    - define arg <c.args.get[1]||null> 
    - choose %arg%: 
      - case add: 
        - if <c.server.or[<player.has_permission[dvchest.admin]>]> { 
          - define player <c.args.get[2].as_player||null> 
          - if <def[player].is[==].to[null]> { 
            - narrate 'format:dvchest_format' "<&c>That is not a valid player!" 
            - queue clear 
            } 
          - if <def[player].has_permission[dvchest]> { 
            - narrate 'format:dvchest_format' "<def[player].name> already has dvchest" 
            - queue clear 
            } 
          - permission add 'dvchest' player:%player% 
          - flag %player% 'dvchestLimit:1'       
          - narrate 'format:dvchest_format' "<&6>You can now use <&4><&l>Dv<&8>chest!" 'targets:%player%' 
          - announce 'format:dvchest_format' "<&a><def[player].name> can now use dvchest" to_console 
          - queue clear 
          } else { 
          - narrate 'format:dvchest_format' "You do not have permission to use this command" 
          } 
      - case addlimit: 
        - if <c.server.or[<player.has_permission[dvchest.admin]>]> { 
          - define player <c.args.get[2].as_player||null> 
          - if <def[player].is[==].to[null]> { 
            - narrate 'format:dvchest_format' "<&c>That is not a valid player!" 
            - queue clear 
            } 
          - if <player.flag[dvchestLimit].is[==].to[6]> { 
            - narrate 'format:dvchest_format' "The maximum amount of lines hav been reached" 
            - queue clear 
            } 
          - flag %player% 'dvchestLimit:++:1' 
          - narrate 'format:dvchest_format' "<&6>You can now have <&f><def[player].flag[dvchestLimit].as_int> <&6>lines in your dvchest!" 'targets:%player%' 
          - announce 'format:dvchest_format' "<&a><def[player].name> line limit set to <def[player].flag[dvchestLimit]>" to_console 
          } else { 
          - narrate 'format:dvchest_format' "You do not have permission to use this command" 
          } 
      - case about: 
        - determine passively fulfilled 
        - narrate "<green>#-----------------------------#" 
        - narrate "<green>#<&4><&l>Dv<&8>chest" 
        - narrate "<green>#Author:<red>zozer_firehood" 
        - narrate "<green>#-----------------------------#" 
        - narrate format:dvchest_format "by utilising 4th dimension space,dvchest allows you to have a safe inventory that you can access at any time" 
        - narrate format:dvchest_format "to access it, just type <&6>/dvchest" 
        - narrate format:dvchest_format "disclaimer: we are not responsible for any infestation that may apear in your dvchest." 
        - narrate format:dvchest_format "this includes, but not limited to: square bacteriaum, time travling rats,random broken glass, and gophers" 
      - default: 
        #checks perms 
        - if !<player.has_permission[dvchest]> && !<c.server> && %arg% == null { 
          - narrate 'format:dvchest_format' "<red>you havn't unlocked dvchest!" 
          - queue clear 
          } 
        #check for extra args 
        - if !<def[arg].is[==].to[null]> { 
          - narrate format:dvchest_format "<gold>%arg%<&8> is an unkown argument, use <gold>/dvc <&8>or <gold>/dvchest <&8>to access your dvchest" 
          - queue clear 
          }      
        - run locally loadYAML 
        - define lines <player.flag[dvchestLimit]> 
        - if <def[lines].is[==].to[null]> { 
          - define lines '1' 
          - flag player dvchestLimit:1 
          } 
        - define dvchest <player.uuid>dvchest 
        - note in@generic[title=<&c>dv<&9>Chest;size=<def[lines].mul_int[9]>;] 'as:%dvchest%' 
        - inventory add 'd:in@%dvchest%' 'o:<yaml[dvchestkey].read[<player.uuid>]>' 
        - inventory open 'd:in@%dvchest%' 
  loadYAML: 
    - if !<yaml.list.contains[dvchestkey]> { 
      - if !<server.has_file[dvchest/dvchestkey.yml]> { 
        - yaml create 'id:dvchestkey' 
        - yaml 'savefile:dvchest/dvchestkey.yml' 'id:dvchestkey' 
        } 
        else { 
        - yaml 'load:dvchest/dvchestkey.yml' 'id:dvchestkey' 
        } 
      }         
DVChestHandler: 
  type: world 
  debug: true 
  events: 
    on player closes inventory: 
    - if <context.inventory.replace[<player.uuid>].is[!=].to[in@dvchest]> queue clear 
    - define dvlist <c.inventory.list_contents> 
    - yaml set 'id:dvchestkey' <player.uuid>:%dvlist% 
    - yaml 'savefile:dvchest/dvchestkey.yml' 'id:dvchestkey' 
dvchest_format: 
  type: format 
  format: <&4><&l>Dv<&8>chest <text>