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%}