-
-
Notifications
You must be signed in to change notification settings - Fork 44
/
MobArenaSupport.java
63 lines (53 loc) · 2.24 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
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.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;
import org.bukkit.Bukkit;
public class MobArenaSupport extends Support {
public static MobArena plugin;
public MobArenaSupport() {
plugin = (MobArena) Bukkit.getPluginManager().getPlugin("MobArena");
registerObjects(MobArenaArena.class);
registerAdditionalTags("mobarena");
registerEvents(MobArenaStartsScriptEvent.class);
registerEvents(MobArenaEndsScriptEvent.class);
registerEvents(MobArenaWaveChangesScriptEvent.class);
registerProperty(MobArenaPlayerExtension.class, dPlayer.class);
}
public static MobArena getPlugin() {
return plugin;
}
@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);
if (attribute.startsWith("list_arenas")) {
dList arenas = new dList();
for (Arena a : plugin.getArenaMaster().getArenas()) {
arenas.add(new MobArenaArena(a).identify());
}
return arenas.getAttribute(attribute.fulfill(1));
}
}
return null;
}
}