Date: 2015/12/10 14:16:55 UTC-08:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#------------------------#
#dvchest #
#Author:zozer_firehood #
# _______ #
# / \ #
# / ____ \ #
#| / ___ | #
#| / / __ | #
# \ / / / #
# \_______/ #
#------------------------#
DVChest_version:
type: version
name: DVChest
id: 54
description: a private safe chest you can access at any time.
version: 1.1
DVChest:
type: world
debug: false
events:
on dvchest|dvc command:
# usage /dvc or /dvchest without args will open the chest, the player. perms required: dvchest
# /dvc addLimit <player> will increment the lines for the chest for a given player. perms required: dvchest.admin
# /dvc add <player> will allow that player to use dvchest. perms required: dvchest.admin
- determine passively fulfilled
- define arg1 <c.args.get[1]||null>
#/dvc addLimit
- if (<c.server||false> || <player.has_permission[dvchest.admin]> ) && <def[arg1].is[==].to[addLimit]>{
- define player <c.args.get[2].as_player||false>
- if <def[player].is[==].to[false]> {
- announce 'format:dvchest_format' "<&c>That is not a valid player!" to_console
- 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
- queue clear
}
#/dvc add
- if (<c.server||false> || <player.has_permission[dvchest.admin]> )&& <def[arg1].is[==].to[add]> {
- define player <c.args.get[2].as_player||false>
- if <def[player].is[==].to[false]> {
- announce 'format:dvchest_format' "<&c>That is not a valid player!" to_console
- queue clear
}
- permission add 'dvchest' group:%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
}
#/dvc about
- if <def[arg1].is[==].to[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"
- queue clear
}
#checks perms
- if !<player.has_permission[dvchest]> && !<c.server> && %arg1% == null {
- narrate 'format:dvchest_format' "<red>you havn't unlocked dvchest!"
- queue clear
}
#check for extra args
- if !<def[arg1].is[==].to[null]> {
- narrate format:dvchest_format "<gold>%arg1%<&8> is an unkown argument, use <gold>/dvc <&8>or <gold>/dvchest <&8>to access your dvchest"
- queue clear
}
- inject locally path: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%'
on player clicks in inventory:
- if <context.inventory.replace[<player.uuid>].is[!=].to[in@dvchest]> queue clear
- if <context.inventory.replace[dvchest].is[!=].to[in@<player.uuid>]> {
- inventory close 'd:in@<player.uuid>dvchest'
}
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'
loadYAML:
script:
- 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'
}
}
dvchest_format:
type: format
format: <&4><&l>Dv<&8>chest <text>