Date: 2017/09/29 20:14:05 UTC-07: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
173_gildeHandler:
type: world
events:
on gilde command:
- if <player.world> != w@173pre queue clear
- determine passive fulfilled
- if !<server.has_flag[173.allowGilde]> {
- narrate "<&6>Gilden sind nicht aktiviert."
- queue clear
}
- choose <context.args.get[1]>:
- case neu:
- define newName <context.args.get[2]||x>
- inject locally checkInGilde
- inject locally checkUnallowedNewName
- flag player 173.gilde:<def[newName]>
- flag player 173.inGilde.<def[newName]>
- flag player 173.gildeLeader
- flag server 173.gilde.<def[newName]>.members:->:<player>
- execute as_server "pex group gilde<def[newName]> create"
- execute as_server "pex group gilde<def[newName]> suffix &b"
- execute as_server "pex group gilde<def[newName]> parents set Siedler"
- narrate "Erfolgreich die Gilde <def[newName]> gegründet!"
- case tag:
- define newTag "<context.args.get[2]||x>
- inject locally checkIsNotLeader
- inject locally checkUnallowedNewTag
- if <def[newTag].length> != 3 {
- narrate "<&6>Der Tag muss 3 lang sein."
- queue clear
}
- define gildeName <player.flag[173.gilde]>
- define oldTag "<server.flag[173.gilde.<def[gildeName]>.tag]>"
- flag server 173.gildeTag.<def[newTag]>
- flag server 173.gildeTag.<def[oldTag]>:!
- flag server 173.gilde.<def[gildeName]>.tag:<def[newTag]>
- execute as_server "pex group gilde<player.flag[173.gilde]> prefix <&dq>&7(<def[newTag]>&7) &3<&dq>"
- narrate "Neuer Gildentag: <def[newTag]>"
- case einladen:
- define target <context.args.get[2].as_player||x>
- inject locally checkTargetNotOnline
- inject locally checkTargetInGilde
- inject locally checkIsNotLeader
- flag <def[target]> meta.gildeInvited:<player.flag[173.gilde]> duration:d@20s
- flag <def[target]> meta.gildeFrom:<player> duration:d@20s
- narrate "Du hast <def[target].name> in deine Gilde eingeladen."
- narrate "Du wurdest von <&o><player.name> <&r>in die Gilde <&o><player.flag[173.gilde]> <&r>eingeladen." targets:<def[target]>
- execute as_op "tellraw @p [<&dq><&dq>,{<&dq>text<&dq>:<&dq>Nutze <&dq>},{<&dq>text<&dq>:<&dq>/gilde annehmen<&dq>,<&dq>color<&dq>:<&dq>green<&dq>,<&dq>bold<&dq>:true,<&dq>clickEvent<&dq>:{<&dq>action<&dq>:<&dq>run_command<&dq>,<&dq>value<&dq>:<&dq>/gilde accept<&dq>},<&dq>hoverEvent<&dq>:{<&dq>action<&dq>:<&dq>show_text<&dq>,<&dq>value<&dq>:{<&dq>text<&dq>:<&dq><&dq>,<&dq>extra<&dq>:[{<&dq>text<&dq>:<&dq>ausführen<&dq>}]}}},{<&dq>text<&dq>:<&dq> /gilde deny<&dq>,<&dq>color<&dq>:<&dq>red<&dq>,<&dq>bold<&dq>:true,<&dq>clickEvent<&dq>:{<&dq>action<&dq>:<&dq>run_command<&dq>,<&dq>value<&dq>:<&dq>/gilde deny<&dq>},<&dq>hoverEvent<&dq>:{<&dq>action<&dq>:<&dq>show_text<&dq>,<&dq>value<&dq>:{<&dq>text<&dq>:<&dq><&dq>,<&dq>extra<&dq>:[{<&dq>text<&dq>:<&dq>ausführen<&dq>}]}}}]" player:<def[target]>
- case accept:
- inject locally checkInGilde
- inject locally checkNotInvited
- define gildeName <player.flag[meta.gildeInvited]>
- if <server.flag[173.gilde.<def[gildeName]>.members].size> > 9 {
- narrate "<&6>Die Gilde ist voll."
- queue clear
}
- narrate "Du bist der Gilde <def[gildeName]> beigetreten."
- narrate "<player.name> ist der Gilde beigetreten." targets:<server.get_online_players_flagged[173.inGilde.<def[gildeName]>]>
- flag player 173.gilde:<def[gildeName]>
- flag player 173.inGilde.<def[gildeName]>
- flag server 173.gilde.<def[gildeName]>.members:->:<player>
- flag player meta.gildeInvited:!
- execute as_server "pex user <player.name> group add gilde<def[gildeName]>"
- case deny:
- inject locally checkNotInvited
- narrate "<player.name> hat deine Einladung abgelehnt." targets:<player.flag[meta.gildeFrom]>
- flag player meta.gildeInvited:!
- flag player meta.gildeFrom:!
- case leave:
- inject locally checkNotInGilde
- inject locally deleteGildeIfPossible
- define gildeName <player.flag[173.gilde]>
- narrate "<player.name> hat die Gilde verlassen." targets:<server.get_online_players_flagged[173.inGilde.<def[gildeName]>]>
- flag player 173.gilde:!
- flag player 173.inGilde:!
- flag server 173.gilde.<def[gildeName]>.members:<-:<player>
- execute as_server "pex user <player.name> group remove gilde<def[gildeName]>"
- case info:
- inject locally checkNotInGilde
- define gildeName <player.flag[173.gilde]>
- define members <server.flag[173.gilde.<def[gildeName]>.members]>
- narrate "---[Gilden Information]---"
- narrate "Name: <def[gildeName]>"
- narrate "Tag: <server.flag[173.gilde.<def[gildeName]>.tag]>"
- narrate "Mitglieder: <def[members].size>"
# WAIT FOR MCMONKEY
- narrate "GesamteXP: <def[members].parse[flag[173.xp]].toNumber||0>"
#WAIT FOR MCMONKEY
- narrate "DurchschnittKDR: <def[members].parse[flag[173.kdr]].average||0>"
- case noSpam:
- if <player.has_flag[173.gildeNoSpam]> {
- narrate "NoSpam deaktiviert."
- flag player 173.gildeNoSpam:!
} else {
- narrate "NoSpawm aktiviert. (1h)"
- flag player 173.gildeNoSpam duration:d@1h
}
- case coords:
- inject locally checkNotInGilde
- narrate "---[Gilde Coords]---"
- foreach <server.get_online_players_flagged[173.inGilde.<player.flag[173.gilde]>]||li@> {
- narrate " <def[value].name> <def[value].location.simple>"
}
- case newLeader:
- define target <context.args.get[2].as_player||x>
- inject locally checkIsNotLeader
- inject locally checkTargetNotOnline
- inject locally checkTargetNotInOwn
- narrate "<def[target]> ist der neue Gildenleiter." targets:<server.get_online_players_flagged[173.inGilde.<player.flag[173.gilde]>]>
- flag player 173.gildeLeader:!
- flag <def[target]> 173.gildeLeader
- case kick:
- define target <context.args.get[2].as_player||x>
- inject locally checkIsNotLeader
- inject locally checkTargetNotInOwn
- if <def[target]> == <player> {
- narrate <&6>Du kannst dich nicht selbst kicken."
- queue clear
}
- narrate "<def[target].name> wurde aus der Gilde gekickt." targets:<server.get_online_players_flagged[173.inGilde.<player.flag[173.gilde]>]>
- flag <def[target]> 173.gilde:!
- flag <def[target]> 173.inGilde:!
- case list:
- inject locally checkNotInGilde
- define online <server.get_online_players_flagged[173.inGilde.<player.flag[173.gilde]>].parse[name]>
- narrate "---[Gilde List]---"
- narrate "<&a><def[online].separated_by[, ]>"
- narrate "<&7><server.flag[173.gilde.<player.flag[173.gilde]>.members].as_list.parse[name].exclude[<def[online]>].separated_by[, ]>"
- case kdr:
- inject locally checkNotInGilde
- define members <server.flag[173.gilde.<player.flag[173.gilde]>.members].as_list>
- define members <def[members].sort_by_number[flag[173.kdr]]>
- narrate "Dein Platz: <def[members].find[<player>]>/<def[members].size> - KDR <player.flag[173.kdr]>"
- narrate "---[Top 10 Mitglieder]---"
- foreach <def[members]||li@> {
- narrate "<def[loop_index]> <def[value].name>"
}
- case toplist:
- define gilden <server.flag[173.topKdrName].as_list||li@>
- define kdrList <server.flag[173.topKdr].as_list||li@>
- define place <def[gilden].find[<player.flag[173.gilde]||x>]>
- narrate "Deine Gilde: <def[place]>/<def[kdrList].size> - KDR - <def[kdrList].get[<def[place]>]||0>"
- narrate "---[Top 10 Mitglieder]---"
- foreach <def[members]||li@> {
- narrate "<def[loop_index]> <def[gilden].get[<def[loop_index]>]> KDR - <def[kdrList].get[<def[loop_index]>]>"
}
- default:
- narrate "/gilde"
- narrate "[Leiter] neu, einladen (name), tag (text),kick (name), newLeader (name)"
- narrate "[Mitglied] accept, deny, leave, list, kdr, coords"
- narrate "[Jeder] toplist"
checkInGilde:
- if <player.has_flag[173.gilde]> {
- narrate "<&6>Du bist bereits in einer Gilde!"
- queue clear
}
checkNotInGilde:
- if !<player.has_flag[173.gilde]> {
- narrate "<&6>Du bist in keiner Gilde!"
- queue clear
}
checkIsNotLeader:
- if !<player.has_flag[173.gildeLeader]> {
- narrate "<&6>Du bist kein Gildenleiter!"
- queue clear
}
checkNotInvited:
- if !<player.has_flag[meta.gildeInvited]> {
- narrate "<&6>Du hast keine Einladung."
- queue clear
}
checkTargetNotOnline:
- if !<def[target].is_online||false> {
- narrate "<&6><def[target].name||UNKNOWN> is nicht online."
- queue clear
}
checkTargetInGilde:
- if <def[target].has_flag[173.gilde]||false> {
- narrate "<&6><def[target].name||UNKNOWN> ist bereits in einer Gilde."
- queue clear
}
checkTargetNospam:
- if <def[target].has_flag[173.gildeNoSpam]||false> {
- narrate "<&6><def[target].name||UNKNOWN> hat Einladungen deaktiviert."
- queue clear
}
deleteGildeIfPossible:
- if <player.has_flag[173.gildeLeader]> {
- define gildeName <player.flag[173.gilde]>
- define members <server.flag[173.gilde.<def[gildeName]>.members].as_list>
- narrate "<&6><player.name> hat die Gilde aufgelöst." targets:<def[members]>
- flag player 173.gildeLeader:!
- flag server 173.gilde.<def[gildeName]>:!
- foreach <def[members]> {
- flag <def[value]> 173.gilde:!
- flag <def[value]> 173.inGilde:!
}
- execute as_server "pex group gilde<def[gildeName]> delete"
- queue clear
}
checkTargetNotInOwn:
- if <def[target].flag[173.gilde]||x> != <player.flag[173.gilde]||y> {
- narrate "<&6><def[target].name> ist nicht in deiner Gilde."
- queue clear
}
checkUnallowedNewTag:
- if <li@vip|sup|mod|dev.contains[<def[newTag]>]> || <server.has_flag[173.gildeTag.<def[newTag]>]> {
- narrate "<&6>Der Tag wird bereits verwendet."
- queue clear
}
checkUnallowedNewName:
- if <def[newName].length> < 3 || <def[newName].length> > 28 {
- narrate "Der Name muss zwischen 3 und 28 Buchstaben lang sein."
- queue clear
}
- if <li@vip|sup|mod|dev|staff|admins|.contains[<def[newName]>]> || <server.has_flag[173.gilde.<def[newName]>.tag]> {
- narrate "<&6>Der Name wird bereits verwendet."
- queue clear
}
checkIsNotAdmin:
- if !<player.is_op> {
- narrate "<&6>Du bist kein Admin."
- queue clear
}