-
-
Notifications
You must be signed in to change notification settings - Fork 42
/
PVPArenaSupport.java
53 lines (45 loc) · 1.89 KB
/
PVPArenaSupport.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
package com.morphanone.depenizenbukkit.support.plugins;
import com.morphanone.depenizenbukkit.events.pvparena.PVPArenaStartsScriptEvent;
import com.morphanone.depenizenbukkit.extensions.pvparena.PVPArenaPlayerExtension;
import com.morphanone.depenizenbukkit.objects.pvparena.PVPArenaArena;
import net.aufdemrand.denizen.objects.dPlayer;
import net.aufdemrand.denizencore.tags.TagContext;
import net.aufdemrand.denizencore.objects.dList;
import net.aufdemrand.denizencore.tags.Attribute;
import com.morphanone.depenizenbukkit.support.Support;
import net.slipcor.pvparena.arena.Arena;
import net.slipcor.pvparena.managers.ArenaManager;
public class PVPArenaSupport extends Support {
public PVPArenaSupport() {
registerScriptEvents(new PVPArenaStartsScriptEvent());
registerProperty(PVPArenaPlayerExtension.class, dPlayer.class);
registerObjects(PVPArenaArena.class);
registerAdditionalTags("pvparena");
}
@Override
public String additionalTags(Attribute attribute, TagContext tagContext) {
if (attribute.startsWith("pvparena") && attribute.hasContext(1)) {
PVPArenaArena arena = PVPArenaArena.valueOf(attribute.getContext(1));
if (arena == null) {
return null;
}
return arena.getAttribute(attribute.fulfill(1));
}
// <--[tag]
// @attribute <pvparena.list_arenas>
// @returns dList(PVPArena)
// @description
// Returns a list of all PVPArenas.
// @plugin Depenizen, PVPArena
// -->
attribute = attribute.fulfill(1);
if (attribute.startsWith("list_arenas")) {
dList arenas = new dList();
for (Arena a : ArenaManager.getArenas()) {
arenas.add(new PVPArenaArena(a).identify());
}
return arenas.getAttribute(attribute.fulfill(1));
}
return null;
}
}