Paste #48882: Repo Script PlayerVaults

Date: 2018/08/06 16:29:15 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


PlayerVault_Events:
    type: world
    events:

        on server start:
        - inject PlayerVault_Load_Config_Task

        on reload scripts:
        - inject PlayerVault_Load_Config_Task

        on player closes inventory:
        - if <context.inventory.replace[<player.uuid>].starts_with[in@pvault].not||true> {
            - queue clear
        }
        - define vault_id <context.inventory.after[_]>
        - define dvlist <context.inventory.list_contents>
        - yaml set id:pvaultkey "<player.uuid>.<def[vault_id]>:<def[dvlist]>"
        - yaml "savefile:data/pvault/pvaultkey.yml" "id:pvaultkey"
        - define id "<player.uuid>pvault_<def[vault_id]>"
        - note remove as:<def[id]>

PlayerVault_Load_Config_Task:
    type: task
    script:
    - if <server.has_file[data/pvault/pvaultkey.yml].not> {
        - yaml create "id:pvaultkey"
        - yaml "savefile:data/pvault/pvaultkey.yml" "id:pvaultkey"
    }
    else {
        - yaml "load:data/pvault/pvaultkey.yml" "id:pvaultkey"
    }

PlayerVault_Command:
    type: command
    name: playervault
    aliases:
    - vc
    - pv
    - pvs
    - playervaults
    script:
    - if <context.args.size> > 0 {
        - define vault_id <context.args.get[1].as_int||1>
    }
    else {
        - define vault_id 1
    }
    - if <player.has_permission[playervaults.vault.<def[vault_id]>].global.not> {
         - narrate "<&c>Sorry, no access to PV <def[vault_id]>"
         - queue clear
    }
    - define lines 6
    - define pvault <player.uuid>pvault_<def[vault_id]>
    - define title "<&3>PV <&co> <def[vault_id]>"
    - note "in@generic[title=<def[title]>;size=<def[lines].mul_int[9]>]" as:<def[pvault]>
    - define items <yaml[pvaultkey].read[<player.uuid>.<def[vault_id]>]||null>
    - if <def[items]> != null {
        - inventory set d:in@<def[pvault]> o:<def[items]>
    }
    - inventory open d:in@<def[pvault]>