/
MobArenaSupport.java
70 lines (61 loc) · 2.68 KB
/
MobArenaSupport.java
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
package net.gnomeffinway.depenizen.support.plugins;
import com.garbagemule.MobArena.MobArena;
import com.garbagemule.MobArena.framework.Arena;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizencore.objects.dList;
import net.aufdemrand.denizencore.tags.Attribute;
import net.gnomeffinway.depenizen.commands.MobArena.MobArenaCommand;
import net.gnomeffinway.depenizen.events.mobarena.MobArenaEndsScriptEvent;
import net.gnomeffinway.depenizen.events.mobarena.MobArenaStartsScriptEvent;
import net.gnomeffinway.depenizen.events.mobarena.MobArenaWaveChangesScriptEvent;
import net.gnomeffinway.depenizen.extensions.mobarena.MobArenaPlayerExtension;
import net.gnomeffinway.depenizen.objects.mobarena.MobArenaArena;
import net.gnomeffinway.depenizen.support.Support;
public class MobArenaSupport extends Support {
MobArena plugin;
public MobArenaSupport() {
registerObjects(MobArenaArena.class);
registerAdditionalTags("mobarena");
new MobArenaCommand().activate().as("mobarena").withOptions("See Documentation.", 1);
registerScriptEvents(new MobArenaStartsScriptEvent());
registerScriptEvents(new MobArenaEndsScriptEvent());
registerScriptEvents(new MobArenaWaveChangesScriptEvent());
registerProperty(MobArenaPlayerExtension.class, dPlayer.class);
plugin = Support.getPlugin(MobArenaSupport.class);
}
@Override
public String additionalTags(Attribute attribute) {
if (attribute == null) {
return null;
}
if (attribute.startsWith("mobarena")) {
// <mobarena[<arena name>]>
if (attribute.hasContext(1)) {
MobArenaArena arena = MobArenaArena.valueOf(attribute.getContext(1));
if (arena == null) {
return null;
}
return arena.getAttribute(attribute.fulfill(1));
}
attribute = attribute.fulfill(1);
// <--[tag]
// @attribute <mobarena.list_arenas>
// @returns dList(MobArena)
// @description
// Returns a list of all MobArenas.
// @plugin Depenizen, MobArena
// -->
if (attribute.startsWith("list_arenas")) {
dList arenas = new dList();
for (Arena a : plugin.getArenaMaster().getArenas()) {
if (plugin.getArenaMaster().getArenaWithName(a.configName()) == null) {
continue;
}
arenas.add(new MobArenaArena(a).identify());
}
return arenas.getAttribute(attribute.fulfill(1));
}
}
return null;
}
}