Untitled

 avatar
unknown
plain_text
2 years ago
1.9 kB
2
Indexable
options:
    MaxVault: 99

function getMaxVault(p:player) :: number:
    if {_p} has permission "pv.*":
        return {@MaxVault}
    while {_p} does not have permission "pv.%{_n}%":
        if {_n} > {@MaxVault}:
            stop
        add 1 to {_n}
    return {_n}

function pv(p:player,target:player,i:integer):
    if {VaultNr::%{_target}%} is set:
        stop
    set {_n} to getMaxVault({_target})
    set {_u} to uuid of {_target}
    set {OwnerV::%{_p}%} to {_target}
    set {VaultNr::%{_target}%} to {_i}
    if {_n} >= {_i}:
        open chest inventory with 6 rows named "&cPlayer Vault &f##%{_i}%" to {_p}
        loop {PV::%{_u}%::%{_i}%::*}:
            add 1 to {_m}
            set slot ({_m}-1) of {_p}'s current inventory to loop-value

command /pv [<int>]:
    permission: playervaults
    description: Opens a player vault
    aliases: playervault, playervaults
    trigger:
        if arg-1 is set:
            if arg-1 < 100:
                pv(player,player,arg-1)
            else:
                send "Usage: /pv <number> (must be below 100)" to player
        else:
            send "Usage: /pv <number>" to player

command /pvadmin [<player>] [<integer>]:
    trigger:
        if arg-1 is set:
            if arg-2 < 100:
                pv(player,player,arg-2)
            else:
                send "Usage: /pvadmin <player> <number>" to player
        else:
            send "Usage: /pvadmin <player> <number>" to player

on inventory close:
    if {OwnerV::%player%} is set:
        set {_targetU} to uuid of {OwnerV::%player%}
        set {_target} to {OwnerV::%player%}        
        loop 54 times:
            add 1 to {_n}
            set {PV::%{_targetU}%::%{VaultNr::%{_target}%}%::%{_n}%} to slot ({_n}-1) of player's current inventory
        
        delete {VaultNr::%{_target}%}
        delete {OwnerV::%player%}