Plan/Plan/src/main/java/com/djrapitops/plan/data/additional/HookHandler.java

177 lines
5.1 KiB
Java

package main.java.com.djrapitops.plan.data.additional;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.ui.Html;
import main.java.com.djrapitops.plan.ui.tables.SortableFactionsTableCreator;
import main.java.com.djrapitops.plan.ui.tables.SortableTownTableCreator;
/**
*
* @author Rsl1122
*/
public class HookHandler {
private Plan plan;
private AdvancedAchievementsHook advancedAchievementsHook;
private EssentialsHook essentialsHook;
private SuperbVoteHook superbVoteHook;
private FactionsHook factionsHook;
private OnTimeHook onTimeHook;
private TownyHook townyHook;
/**
*
* @param plan
*/
public HookHandler(Plan plan) {
this.plan = plan;
hook();
}
/**
*
*/
public void reloadHooks() {
hook();
}
private void hook() {
try {
advancedAchievementsHook = new AdvancedAchievementsHook(plan);
} catch (NoClassDefFoundError e) {
advancedAchievementsHook = new AdvancedAchievementsHook();
}
try {
essentialsHook = new EssentialsHook(plan);
} catch (NoClassDefFoundError e) {
essentialsHook = new EssentialsHook();
}
try {
superbVoteHook = new SuperbVoteHook(plan);
} catch (NoClassDefFoundError e) {
superbVoteHook = new SuperbVoteHook();
}
try {
factionsHook = new FactionsHook(plan);
} catch (NoClassDefFoundError e) {
factionsHook = new FactionsHook();
}
try {
townyHook = new TownyHook(plan);
} catch (NoClassDefFoundError e) {
townyHook = new TownyHook();
}
try {
onTimeHook = new OnTimeHook(plan);
} catch (NoClassDefFoundError e) {
onTimeHook = new OnTimeHook();
}
}
/**
*
* @return
*/
public AdvancedAchievementsHook getAdvancedAchievementsHook() {
return advancedAchievementsHook;
}
/**
*
* @return
*/
public EssentialsHook getEssentialsHook() {
return essentialsHook;
}
/**
*
* @return
*/
public SuperbVoteHook getSuperbVoteHook() {
return superbVoteHook;
}
/**
*
* @return
*/
public FactionsHook getFactionsHook() {
return factionsHook;
}
/**
*
* @return
*/
public TownyHook getTownyHook() {
return townyHook;
}
/**
*
* @return
*/
public OnTimeHook getOnTimeHook() {
return onTimeHook;
}
/**
*
* @return
*/
public Map<String, String> getAdditionalAnalysisReplaceRules() {
Map<String, String> addReplace = new HashMap<>();
AdvancedAchievementsHook aH = advancedAchievementsHook;
EssentialsHook eH = essentialsHook;
SuperbVoteHook sH = superbVoteHook;
FactionsHook fH = factionsHook;
TownyHook tH = townyHook;
addReplace.put("%towntable%", tH.isEnabled() ? SortableTownTableCreator.createSortableTownsTable(tH.getTopTowns(), tH) : "");
addReplace.put("%factionstable%", fH.isEnabled() ? SortableFactionsTableCreator.createSortableFactionsTable(fH.getTopFactions(), fH) : "");
addReplace.put("%essentialswarps%", eH.isEnabled() ? Html.WARPS.parse(eH.getWarps().toString()) : "");
return addReplace;
}
/**
*
* @param uuid
* @return
*/
public Map<String, String> getAdditionalInspectReplaceRules(UUID uuid) {
Map<String, String> addReplace = new HashMap<>();
AdvancedAchievementsHook aH = advancedAchievementsHook;
EssentialsHook eH = essentialsHook;
SuperbVoteHook sH = superbVoteHook;
FactionsHook fH = factionsHook;
TownyHook tH = townyHook;
addReplace.put("%achievements%", (aH.isEnabled() ? Html.ACHIEVEMENTS.parse(aH.getPlayerAchievements(uuid) + "", aH.getTotalAchievements() + "") : ""));
if (eH.isEnabled()) {
HashMap<String, Serializable> essData = eH.getEssentialsData(uuid);
addReplace.put("%essentials%", ((boolean) essData.get("JAILED") ? Html.JAILED.parse() : "")
+ " " + ((boolean) essData.get("MUTED") ? Html.MUTED.parse() : ""));
} else {
addReplace.put("%essentials%", "");
}
addReplace.put("%votes%", sH.isEnabled() ? Html.VOTES.parse(sH.getVotes(uuid) + "") : "");
if (fH.isEnabled()) {
HashMap<String, Serializable> facInfo = fH.getPlayerInfo(uuid);
addReplace.put("%faction%", Html.FACTION.parse(facInfo.get("FACTION") + "", facInfo.get("POWER") + "", facInfo.get("MAXPOWER") + ""));
} else {
addReplace.put("%faction%", "");
}
if (tH.isEnabled()) {
HashMap<String, Serializable> townInfo = tH.getPlayerInfo(uuid);
addReplace.put("%town%", Html.TOWN.parse(townInfo.get("TOWN") + ""));
} else {
addReplace.put("%town%", "");
}
return addReplace;
}
}