BanManager Data #125

This commit is contained in:
Rsl1122 2017-11-27 11:45:50 +02:00
parent 26f42be2d3
commit 1765819b14
4 changed files with 122 additions and 3 deletions

View File

@ -3,6 +3,7 @@ package com.djrapitops.pluginbridge.plan;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.pluginbridge.plan.advancedachievements.AdvancedAchievementsHook;
import com.djrapitops.pluginbridge.plan.askyblock.ASkyBlockHook;
import com.djrapitops.pluginbridge.plan.banmanager.BanManagerHook;
import com.djrapitops.pluginbridge.plan.essentials.EssentialsHook;
import com.djrapitops.pluginbridge.plan.factions.FactionsHook;
import com.djrapitops.pluginbridge.plan.griefprevention.GriefPreventionHook;
@ -19,8 +20,12 @@ import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.data.additional.HookHandler;
/**
* Manages connection to other plugins.
*
* @author Rsl1122
* @see AdvancedAchievementsHook
* @see ASkyBlockHook
* @see BanManagerHook
* @see EssentialsHook
* @see FactionsHook
* @see GriefPreventionHook
@ -45,6 +50,7 @@ public class Bridge {
Hook[] hooks = new Hook[]{
new AdvancedAchievementsHook(h),
new ASkyBlockHook(h),
new BanManagerHook(h),
new EssentialsHook(h),
new FactionsHook(h),
new GriefPreventionHook(h),

View File

@ -0,0 +1,84 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.pluginbridge.plan.banmanager;
import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.data.additional.*;
import main.java.com.djrapitops.plan.utilities.FormatUtils;
import main.java.com.djrapitops.plan.utilities.html.Html;
import me.confuser.banmanager.BmAPI;
import me.confuser.banmanager.data.PlayerBanData;
import me.confuser.banmanager.data.PlayerMuteData;
import java.util.Collection;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* PluginData for BanManager plugin.
*
* @author Rsl1122
*/
public class BanManagerData extends PluginData implements BanData {
public BanManagerData() {
super(ContainerSize.THIRD, "BanManager");
super.setIconColor("red");
super.setPluginIcon("gavel");
}
@Override
public InspectContainer getPlayerData(UUID uuid, InspectContainer inspectContainer) throws Exception {
boolean banned = BmAPI.isBanned(uuid);
boolean muted = BmAPI.isMuted(uuid);
inspectContainer.addValue(getWithIcon("Banned", "gavel", "red"), banned ? "Yes" : "No");
if (banned) {
PlayerBanData currentBan = BmAPI.getCurrentBan(uuid);
String bannedBy = currentBan.getActor().getName();
String link = Html.LINK.parse(Plan.getPlanAPI().getPlayerInspectPageLink(bannedBy), bannedBy);
long date = currentBan.getCreated();
long ends = currentBan.getExpires();
String reason = currentBan.getReason();
inspectContainer.addValue(" " + getWithIcon("Banned by", "user", "red"), link);
inspectContainer.addValue(" " + getWithIcon("Date", "calendar", "red"), FormatUtils.formatTimeStampYear(date));
inspectContainer.addValue(" " + getWithIcon("Ends", "calendar-check-o", "red"), FormatUtils.formatTimeStampYear(ends));
inspectContainer.addValue(" " + getWithIcon("Reason", "comment", "red"), reason);
}
inspectContainer.addValue(getWithIcon("Muted", "bell-slash-o", "deep-orange"), muted ? "Yes" : "No");
if (muted) {
PlayerMuteData currentMute = BmAPI.getCurrentMute(uuid);
String mutedBy = currentMute.getActor().getName();
String link = Html.LINK.parse(Plan.getPlanAPI().getPlayerInspectPageLink(mutedBy), mutedBy);
long date = currentMute.getCreated();
long ends = currentMute.getExpires();
String reason = currentMute.getReason();
inspectContainer.addValue(" " + getWithIcon("Muted by", "user", "deep-orange"), link);
inspectContainer.addValue(" " + getWithIcon("Date", "calendar", "deep-orange"), FormatUtils.formatTimeStampYear(date));
inspectContainer.addValue(" " + getWithIcon("Ends", "calendar-check-o", "deep-orange"), FormatUtils.formatTimeStampYear(ends));
inspectContainer.addValue(" " + getWithIcon("Reason", "comment", "deep-orange"), reason);
}
return inspectContainer;
}
@Override
public AnalysisContainer getServerData(Collection<UUID> collection, AnalysisContainer analysisContainer) throws Exception {
return analysisContainer;
}
@Override
public boolean isBanned(UUID uuid) {
return BmAPI.isBanned(uuid);
}
@Override
public Collection<UUID> filterBanned(Collection<UUID> collection) {
return collection.stream().filter(BmAPI::isBanned).collect(Collectors.toList());
}
}

View File

@ -0,0 +1,29 @@
/*
* Licence is provided in the jar as license.yml also here:
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/license.yml
*/
package com.djrapitops.pluginbridge.plan.banmanager;
import com.djrapitops.pluginbridge.plan.Hook;
import main.java.com.djrapitops.plan.data.additional.HookHandler;
/**
* Hook for BanManager plugin.
*
* @author Rsl1122
*/
public class BanManagerHook extends Hook {
public BanManagerHook(HookHandler hookHandler) {
super("me.confuser.banmanager.BanManager", hookHandler);
}
@Override
public void hook() throws NoClassDefFoundError {
if (!enabled) {
return;
}
addPluginDataSource(new BanManagerData());
}
}

View File

@ -48,17 +48,17 @@ public class TownyData extends PluginData {
String townMayor = Html.LINK.parse(Plan.getPlanAPI().getPlayerInspectPageLink(mayorName), mayorName);
inspectContainer.addValue(getWithIcon("Town", "bank", "brown"), townName);
inspectContainer.addValue(getWithIcon("Mayor", "user", "brown"), townMayor);
inspectContainer.addValue("&nbsp;" + getWithIcon("Mayor", "user", "brown"), townMayor);
try {
Coord homeBlock = town.getHomeBlock().getCoord();
String coordinates = "x: " + homeBlock.getX() + " z: " + homeBlock.getZ();
inspectContainer.addValue(getWithIcon("Coordinates", "map-pin", "red"), coordinates);
inspectContainer.addValue("&nbsp;" + getWithIcon("Coordinates", "map-pin", "red"), coordinates);
} catch (TownyException e) {
}
int residents = town.getResidents().size();
inspectContainer.addValue(getWithIcon("Residents", "users", "brown"), residents);
inspectContainer.addValue("&nbsp;" + getWithIcon("Residents", "users", "brown"), residents);
} else {
inspectContainer.addValue(getWithIcon("Town", "bank", "brown"), "No Town");
}