-
-
Notifications
You must be signed in to change notification settings - Fork 42
/
McMMOTags.java
88 lines (77 loc) · 4.1 KB
/
McMMOTags.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package net.gnomeffinway.depenizen.mcmmo;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import net.aufdemrand.denizen.events.ReplaceableTagEvent;
import com.gmail.nossr50.api.ExperienceAPI;
import com.gmail.nossr50.api.PartyAPI;
import com.gmail.nossr50.database.LeaderboardManager;
import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.party.PartyManager;
import net.gnomeffinway.depenizen.Depenizen;
public class McMMOTags implements Listener {
public McMMOTags(Depenizen depenizen) {
depenizen.getServer().getPluginManager().registerEvents(this, depenizen);
}
@EventHandler
public void mcmmoTags(ReplaceableTagEvent event) {
Player p = event.getPlayer();
String nameContext = event.getNameContext() != null ? event.getNameContext().toUpperCase() : "";
String type = event.getType() != null ? event.getType().toUpperCase() : "";
String typeContext = event.getTypeContext() != null ? event.getTypeContext().toUpperCase() : "";
String subType = event.getSubType() != null ? event.getSubType().toUpperCase() : "";
String subTypeContext = event.getSubTypeContext() != null ? event.getSubTypeContext().toUpperCase() : "";
String specifier = event.getSpecifier() != null ? event.getSpecifier().toUpperCase() : "";
if(event.matches("PLAYER")) {
if (type.equals("MCMMO")) {
if (subType.equals("LEVEL")) {
if(subTypeContext == "") {
if(p.isOnline()) {
event.setReplaced(String.valueOf(ExperienceAPI.getPowerLevel(p)));
} else {
event.setReplaced(String.valueOf(ExperienceAPI.getPowerLevelOffline(p.getName())));
}
} else {
if(p.isOnline()) {
event.setReplaced(String.valueOf(ExperienceAPI.getLevel(p, subTypeContext)));
} else {
event.setReplaced(String.valueOf(ExperienceAPI.getLevelOffline(p.getName(), subTypeContext)));
}
}
} else if (subType.equals("PARTY")) {
if(PartyAPI.inParty(p)) {
event.setReplaced(String.valueOf(PartyAPI.getPartyName(p)));
} else {
event.setReplaced("none");
}
} else if (subType.equals("RANK")) {
if(subTypeContext == "") {
event.setReplaced(String.valueOf(LeaderboardManager.getPlayerRank(p.getName())[0]));
} else {
event.setReplaced(String.valueOf(LeaderboardManager.getPlayerRank(p.getName(),SkillType.getSkill(subTypeContext))));
}
} else if (subType.equals("XP")) {
if(specifier.equals("TONEXTLEVEL")) {
if(p.isOnline()) {
event.setReplaced(String.valueOf(ExperienceAPI.getXPToNextLevel(p, subTypeContext)));
} else {
event.setReplaced(String.valueOf(ExperienceAPI.getOfflineXPToNextLevel(p.getName(), subTypeContext)));
}
} else {
if(p.isOnline()) {
event.setReplaced(String.valueOf(ExperienceAPI.getXP(p, subTypeContext)));
} else {
event.setReplaced(String.valueOf(ExperienceAPI.getOfflineXP(p.getName(), subTypeContext)));
}
}
}
}
} else if (event.matches("PARTY")) {
if (type.equals("LEADER")) {
event.setReplaced(String.valueOf(PartyAPI.getPartyLeader(nameContext)));
} else if(type.equals("PLAYERCOUNT")) {
event.setReplaced(String.valueOf(PartyManager.getParty(nameContext).getMembers().size()));
}
}
}
}