Date: 2016/12/30 09:33:47 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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
Events:
type: world
debug: false
events:
on player join:
- inventory clear
- give i@Server_Selector to:<player.inventory> slot:1
- give i@Player_Hider_Disabled quantity:1 to:<player.inventory> slot:2
- give i@Server_Store quantity:1 to:<player.inventory> slot:5
- if <player.is_op> {
- give i@StaffHammer to:<player.inventory> slot:9 }
- run SurvivalWhitelist
on player quit:
- wait 1t
- adjust <player> 'location:l@-54.5,52.1,-94.5,0,90,MainLobby'
on server start:
- run Player_Count_Refresh
- adjust <server.list_players> 'location:l@-54.5,52.1,-94.5,0,90,MainLobby'
- note cu@-19,51,-114,Mainlobby|-19,58,-104,Mainlobby as:cuboid1
- note cu@-19,51,-86,Mainlobby|-19,38,-76,Mainlobby as:cuboid2
- note cu@-46,51,-59,Mainlobby|-36,58,-59,Mainlobby as:cuboid3
- note cu@-64,51,-59,Mainlobby|-74,58,-59,Mainlobby as:cuboid4
- define announcements 1
- while <def[announcements].is[==].to[1]> {
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce ' <&a><&l>Welcome to the XPCraft Server!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce ' <&a>Type /vote for voting links!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce ' <&a>Use the server selector or portals to play games!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce ' <&a>Sign up on our forums at www.xpcraft.com!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce ' <&a>Click the tutorial holograms to learn about our games!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- announce '<&a>Use coupon code XPCRAFT for 50% off any store purchases!'
- announce '<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>-<&6>-<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>=<&2>=<&6>='
- wait 240s
}
on player enters cuboid1:
- adjust <player> send_to:server@shift1
on player enters cuboid2:
- adjust <player> send_to:server@shift2
on player enters cuboid3:
- adjust <player> send_to:server@shift3
on player enters cuboid4:
- adjust <player> send_to:server@shift4
on system time 05:00:
- run safe_shutdown
on system time 11:00:
- run safe_shutdown
on system time 17:00:
- run safe_shutdown
on system time 23:00:
- run safe_shutdown
on player clicks Server_Selector in inventory:
- inventory open d:in@Server_GUI_Menu
on player clicks with Server_Selector:
- inventory open d:in@Server_GUI_Menu
on player clicks Player_Hider_Disabled in inventory:
- run Player_Hide_Task
on player clicks with Player_Hider_Disabled:
- run Player_Hide_Task
on player clicks Player_Hider_Enabled in inventory:
- run Player_Show_Task
on player clicks with Player_Hider_Enabled:
- run Player_Show_Task
on player clicks Server_Store in inventory:
- determine passively cancelled
- execute as_player "buy"
on player clicks with Server_Store:
- determine passively cancelled
- execute as_player "buy"
on player clicks Filler in Server_GUI_Menu:
- determine cancelled
on player clicks Shift in Server_GUI_Menu:
- inventory open d:in@Shift_GUI_Menu
on player clicks Filler in Shift_GUI_Menu:
- determine cancelled
on player clicks Creative in Server_GUI_Menu:
- determine passively cancelled
- inventory close d:in@Server_GUI_Menu
- narrate "<&c>This server is still in-development. Check our website for updates!"
on player clicks Survival in Server_GUI_Menu:
- determine passively cancelled
- inventory close d:in@Server_GUI_Menu
- if <player.has_flag[whitelist.survival]> {
- adjust <player> send_to:server@survival
}
else {
- narrate "<&c>This server is in closed beta. Please contact an admin if you'd like to be whitelisted."
}
on player clicks Shift_1 in Shift_GUI_Menu:
- determine passively cancelled
- adjust <player> send_to:server@shift1
on player clicks Shift_2 in Shift_GUI_Menu:
- determine passively cancelled
- adjust <player> send_to:server@shift2
on player clicks Shift_3 in Shift_GUI_Menu:
- determine passively cancelled
- adjust <player> send_to:server@shift3
on player clicks Shift_4 in Shift_GUI_Menu:
- determine passively cancelled
- adjust <player> send_to:server@shift4
on restart command:
- if <context.server> && !<player.is_op> queue clear
- determine cancelled passively
- run safe_shutdown
on stop command:
- if <context.server> && !<player.is_op> queue clear
- determine cancelled passively
- run safe_shutdown
on shutdown command:
- if <context.server> && !<player.is_op> queue clear
- determine cancelled passively
- run safe_shutdown
on weather rains in MainLobby:
- determine cancelled
on msg command:
- narrate "<&b><player.name> &a-> <&b><server.match_player>: <context.args>"
- define playername <server.match_player[<context.args.get[1]>]>
- if <player.has_flag[<def[playername]>]>
- flag player <def[playername]>
- narrate
on reply command:
- run ReplyCommand
##### TASKS #####
Player_Count_Refresh:
type: task
debug: false
script:
- while true:
- foreach <bungee.list_servers>:
- ~bungeetag <server.list_online_players.size.as_int> server:<def[value].name> save:player_count
- flag server playercount.<def[value].name>:<entry[player_count].result>
- wait 60s
SurvivalWhitelist:
type: task
debug: false
script:
- if <player.has_flag[whitelist.survival]> {
- queue clear
}
- ~bungeetag <player.is_whitelisted> server:survival save:whitelist
- flag player whitelist.survival:<entry[whitelist].result>
Player_Hide_Task:
type: task
debug: true
speed: 0
script:
- take slot:2 from:<player.inventory>
- give i@Player_Hider_Enabled quantity:1 to:<player.inventory> slot:2
- foreach <player.world.players.exclude[<player>].filter[is_op.not]> {
- adjust <player> hide_entity:<def[value]>
}
Player_Show_Task:
type: task
debug: true
speed: 0
script:
- take slot:2 from:<player.inventory>
- give i@Player_Hider_Disabled quantity:1 to:<player.inventory> slot:2
- foreach <player.world.players.exclude[<player>].filter[is_op.not]> {
- adjust <player> show_entity:<def[value]>
}
safe_shutdown:
type: task
debug: false
speed: 0
script:
- if <server.has_flag[already_restarting]> queue clear
- flag server already_restarting duration:2m
- announce "<&a><&l>This server will be restarting in <&e><&l>one minute<&a><&l>."
- repeat 3:
- playsound sound:ENTITY_ARROW_HIT_PLAYER <server.list_online_players> colume:1.5 pitch:0.7
- wait 3t
- repeat 1:
- actionbar "<&a>Restarting in<&e> 60 <&a>seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 10s
- actionbar "<&a>Restarting in<&e> 50 <&a>seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 10s
- actionbar "<&a>Restarting in<&e> 40 <&a>seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 10s
- actionbar "<&a>Restarting in<&e> 30 <&a>seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 10s
- actionbar "<&a>Restarting in<&e> 20 <&a>seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 10s
- repeat 10:
- actionbar "<&a>Restarting in<&co> <&e><el@10.sub[<def[value]>].as_int><&a> seconds." targets:<server.list_online_players>
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 1s
- repeat 3:
- playsound sound:UI_BUTTON_CLICK <server.list_online_players> pitch:1.2
- wait 3t
- if <bungee.list_servers.contains[server@lobby]||false> && <bungee.server||null> != server@lobby {
- announce "<&c>This server is restarting.<&nl><&c>Please try again in a minute."
- kick <server.list_online_players> "reason:<&c>This server is restarting.<&nl><&c>Please try again in a minute."
} else {
- kick <server.list_online_players> "reason:<&c>This server is restarting.<&nl><&c>Please try again in a minute."
}
- flag server already_restarting:!
- execute as_server "restart"
##### INVENTORIES AND ITEMS #####
Server_GUI_Menu:
type: inventory
title: <&3>Server List
size: 9
slots:
- "[Filler] [Filler] [i@Survival[quantity=<server.flag[playercount.survival].as_int>;flags=li@hide_enchants]] [Filler] [i@Creative[quantity=<server.flag[playercount.creative].as_int>;flags=li@hide_enchants]] [Filler] [i@Shift[quantity=<server.flag[playercount.shift1].add[<server.flag[playercount.shift2]>].add[<server.flag[playercount.shift3]>].add[<server.flag[playercount.shift4]>].as_int>;flags=li@hide_enchants]] [Filler] [Filler]"
Shift_GUI_Menu:
type: inventory
title: <&3>Server List
size: 9
Slots:
- "[i@Shift_1[quantity=<server.flag[playercount.shift1]>;flags=li@hide_enchants]] [i@Shift_2[quantity=<server.flag[playercount.shift2]>;flags=li@hide_enchants]] [i@Shift_3[quantity=<server.flag[playercount.shift3]>;flags=li@hide_enchants]] [i@Shift_4[quantity=<server.flag[playercount.shift4]>;flags=li@hide_enchants]] [Filler] [Filler] [Filler] [Filler] [Filler]"
Server_Selector:
type: item
material: i@compass
display name: <&3>Server Selector
bound: true
Player_Hider_Disabled:
type: item
material: i@347
display name: <&b>Player Hider <&e>- <&c>Disabled
bound: true
Player_Hider_Enabled:
type: item
material: i@347
display name: <&b>Player Hider <&e>- <&a>Enabled
bound: true
Server_Store:
type: item
material: i@384
display name: <&e>Server Store
bound: true
Creative:
type: item
material: 271
display name: <&2>Creative
enchantments:
- ARROW_INFINITE:1
Survival:
type: item
material: 267
display name: <&6>Survival
enchantments:
- ARROW_INFINITE:1
Shift:
type: item
material: quartz_ore
display name: <&5>Shift
enchantments:
- ARROW_INFINITE:1
Shift_1:
type: item
material: quartz_ore
display name: <&5>Shift 1
enchantments:
- ARROW_INFINITE:1
Shift_2:
type: item
material: quartz_ore
display name: <&5>Shift 2
enchantments:
- ARROW_INFINITE:1
Shift_3:
type: item
material: quartz_ore
display name: <&5>Shift 3
enchantments:
- ARROW_INFINITE:1
Shift_4:
type: item
material: quartz_ore
display name: <&5>Shift 4
enchantments:
- ARROW_INFINITE:1
Filler:
type: item
material: black_stained_glass_pane
StaffHammer:
type: item
material: diamond_axe
display name: <&4>Staff Hammer
##### COMMANDS #####
HelpCommand:
type: command
name: help
debug: false
script:
- narrate "<&b>Did you find a hacker or rule breaker? Report them here:"
- narrate "<&e>http://xpcraft.com/forums/ban-reports.9/"
- narrate "<&b>Found a bug? Report it here:"
- narrate "<&e>http://xpcraft.com/forums/bug-reports.3/"
- narrate "<&b>For help with games and all other server features, visit our forums:"
- narrate "<&e>http://xpcraft.com/forums/"
MsgCommand:
type: command
name: message
usage: /msg
aliases:
- m
script:
- flag player
- flag player
- narrate “<FORMATTED SENDER NAME> → <FORMATTED RECIPIENT NAME>: <MESSAGE>
ReplyCommand:
type: command
name: message
usage: /reply
aliases:
- r
script: