From c16d85b9e58d250a9e8dabe93ae554edc1349db8 Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Sun, 26 Nov 2017 16:26:19 +0200 Subject: [PATCH] SuperbVote Data --- .../plan/superbvote/SuperbVoteData.java | 57 ++++++++++++++++++ .../plan/superbvote/SuperbVoteHook.java | 3 +- .../plan/superbvote/SuperbVoteVotes.java | 43 ------------- .../plan/superbvote/SuperbVoteVotesTable.java | 60 ------------------- 4 files changed, 58 insertions(+), 105 deletions(-) create mode 100644 PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteData.java delete mode 100644 PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotes.java delete mode 100644 PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteData.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteData.java new file mode 100644 index 000000000..f07c99d00 --- /dev/null +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteData.java @@ -0,0 +1,57 @@ +/* + * 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.superbvote; + +import io.minimum.minecraft.superbvote.storage.VoteStorage; +import main.java.com.djrapitops.plan.data.additional.AnalysisContainer; +import main.java.com.djrapitops.plan.data.additional.ContainerSize; +import main.java.com.djrapitops.plan.data.additional.InspectContainer; +import main.java.com.djrapitops.plan.data.additional.PluginData; +import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * PluginData for SuperbVote plugin; + * + * @author Rsl1122 + */ +public class SuperbVoteData extends PluginData { + private final VoteStorage store; + + public SuperbVoteData(VoteStorage store) { + super(ContainerSize.THIRD, "SuperbVote"); + super.setPluginIcon("check"); + super.setIconColor("teal"); + this.store = store; + } + + @Override + public InspectContainer getPlayerData(UUID uuid, InspectContainer inspectContainer) throws Exception { + int votes = store.getVotes(uuid); + + inspectContainer.addValue(getWithIcon("Votes", "check", "teal"), votes); + + return inspectContainer; + } + + @Override + public AnalysisContainer getServerData(Collection uuids, AnalysisContainer analysisContainer) throws Exception { + Map votes = new HashMap<>(); + for (UUID uuid : uuids) { + votes.put(uuid, store.getVotes(uuid)); + } + + long totalVotes = MathUtils.sumLong(votes.values().stream().map(i -> i)); + analysisContainer.addValue(getWithIcon("Total Votes", "check", "teal"), totalVotes); + + analysisContainer.addPlayerTableValues(getWithIcon("Votes", "check"), votes); + + return analysisContainer; + } +} \ No newline at end of file diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteHook.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteHook.java index b2fd295ca..f35ddad20 100644 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteHook.java +++ b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteHook.java @@ -33,8 +33,7 @@ public class SuperbVoteHook extends Hook { public void hook() throws NoClassDefFoundError { if (enabled) { VoteStorage store = getPlugin(SuperbVote.class).getVoteStorage(); - addPluginDataSource(new SuperbVoteVotes(store)); - addPluginDataSource(new SuperbVoteVotesTable(store)); + addPluginDataSource(new SuperbVoteData(store)); } } } diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotes.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotes.java deleted file mode 100644 index f5b304911..000000000 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotes.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.djrapitops.pluginbridge.plan.superbvote; - -import io.minimum.minecraft.superbvote.storage.VoteStorage; -import main.java.com.djrapitops.plan.data.additional.AnalysisType; -import main.java.com.djrapitops.plan.data.additional.PluginData; - -import java.io.Serializable; -import java.util.UUID; - -/** - * PluginData class for GriefPrevention-plugin. - * - * @author Rsl1122 - * @since 3.5.0 - */ -public class SuperbVoteVotes extends PluginData { - - private final VoteStorage store; - - /** - * Class Constructor, sets the parameters of the PluginData object. - * - * @param store VoteStorage of SuperbVote - */ - public SuperbVoteVotes(VoteStorage store) { - super("SuperbVote", "votes", AnalysisType.INT_TOTAL, AnalysisType.INT_AVG); - this.store = store; - super.setAnalysisOnly(false); - super.setIcon("check"); - super.setPrefix("Votes: "); - } - - @Override - public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - int votes = store.getVotes(uuid); - return parseContainer(modifierPrefix, Integer.toString(votes)); - } - - @Override - public Serializable getValue(UUID uuid) { - return store.getVotes(uuid); - } -} diff --git a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java b/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java deleted file mode 100644 index 52ff1a01d..000000000 --- a/PlanPluginBridge/src/main/java/com/djrapitops/pluginbridge/plan/superbvote/SuperbVoteVotesTable.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package com.djrapitops.pluginbridge.plan.superbvote; - -import io.minimum.minecraft.superbvote.storage.VoteStorage; -import main.java.com.djrapitops.plan.Plan; -import main.java.com.djrapitops.plan.data.additional.AnalysisType; -import main.java.com.djrapitops.plan.data.additional.PluginData; -import main.java.com.djrapitops.plan.utilities.FormatUtils; -import main.java.com.djrapitops.plan.utilities.html.Html; - -import java.io.Serializable; -import java.util.UUID; - -/** - * PluginData class for Vault-plugin. - * - * @author Rsl1122 - * @since 3.5.0 - */ -public class SuperbVoteVotesTable extends PluginData { - - private final VoteStorage store; - - public SuperbVoteVotesTable(VoteStorage store) { - super("SuperbVote", "vote_table", AnalysisType.HTML); - this.store = store; - String user = Html.FONT_AWESOME_ICON.parse("user") + " Player"; - String votes = Html.FONT_AWESOME_ICON.parse("check") + " Votes"; - super.setPrefix(Html.TABLE_START_2.parse(user, votes)); - super.setSuffix(Html.TABLE_END.parse()); - } - - @Override - public String getHtmlReplaceValue(String modifierPrefix, UUID uuid) { - String tableLines = getTableLines(); - return parseContainer("", tableLines); - } - - @Override - public Serializable getValue(UUID uuid) { - return -1; - } - - private String getTableLines() { - StringBuilder html = new StringBuilder(); - getUUIDsBeingAnalyzed() - .forEach(uuid -> { - String name = getNameOf(uuid); - String link = Html.LINK.parse(Plan.getPlanAPI().getPlayerInspectPageLink(name), name); - String bal = FormatUtils.cutDecimals(store.getVotes(uuid)); - html.append(Html.TABLELINE_2.parse(link, bal)); - }); - return html.toString(); - } - -}