From 8e755bbcede21b7ec4674ea585d4df33ef5cb8ff Mon Sep 17 00:00:00 2001 From: okx-code Date: Sat, 25 Apr 2020 17:51:31 +0100 Subject: [PATCH] change votes requirements to use total votes, add points requirement --- build.gradle | 11 +++---- src/main/java/sh/okx/rankup/RankupPlugin.java | 6 +++- ...tingPluginPointsDeductibleRequirement.java | 32 +++++++++++++++++++ .../VotingPluginPointsRequirement.java | 28 ++++++++++++++++ .../VotingPluginVotesRequirement.java | 3 +- src/main/resources/rankups.yml | 2 +- 6 files changed, 72 insertions(+), 10 deletions(-) create mode 100644 src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsDeductibleRequirement.java create mode 100644 src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsRequirement.java diff --git a/build.gradle b/build.gradle index 374d85b..ae5d530 100644 --- a/build.gradle +++ b/build.gradle @@ -4,19 +4,16 @@ plugins { } group 'sh.okx' -version '3.8' +version '3.8.1' repositories { mavenCentral() mavenLocal() - maven { - url 'http://nexus.hc.to/content/repositories/pub_releases' - } maven { url 'https://hub.spigotmc.org/nexus/content/groups/public/' } maven { - url 'http://repo.extendedclip.com/content/repositories/placeholderapi/' + url 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } maven { url 'https://raw.github.com/PyvesB/AdvancedAchievements/mvn-repo/' @@ -35,7 +32,7 @@ dependencies { transitive = false } - implementation('net.milkbowl.vault:VaultAPI:1.7') { + implementation('com.github.MilkBowl:VaultAPI:1.7') { exclude group: 'org.bukkit' } implementation 'me.clip:placeholderapi:2.9.2' @@ -43,7 +40,7 @@ dependencies { implementation('com.github.mcMMO-Dev:mcMMO:601297') { exclude group: 'com.sk89q.worldguard' } - implementation 'com.github.Ben12345rocks:VotingPlugin:5.18.2' + implementation 'com.github.Ben12345rocks:VotingPlugin:5.21.1' implementation 'com.github.LlmDl:Towny:25fc18a' } diff --git a/src/main/java/sh/okx/rankup/RankupPlugin.java b/src/main/java/sh/okx/rankup/RankupPlugin.java index 462b476..f9dcf3f 100644 --- a/src/main/java/sh/okx/rankup/RankupPlugin.java +++ b/src/main/java/sh/okx/rankup/RankupPlugin.java @@ -70,6 +70,8 @@ import sh.okx.rankup.requirements.requirement.towny.TownyKingRequirement; import sh.okx.rankup.requirements.requirement.towny.TownyMayorNumberResidentsRequirement; import sh.okx.rankup.requirements.requirement.towny.TownyMayorRequirement; import sh.okx.rankup.requirements.requirement.towny.TownyResidentRequirement; +import sh.okx.rankup.requirements.requirement.votingplugin.VotingPluginPointsDeductibleRequirement; +import sh.okx.rankup.requirements.requirement.votingplugin.VotingPluginPointsRequirement; import sh.okx.rankup.requirements.requirement.votingplugin.VotingPluginVotesRequirement; import sh.okx.rankup.util.UpdateNotifier; import sh.okx.rankup.util.VersionChecker; @@ -349,7 +351,9 @@ public class RankupPlugin extends JavaPlugin { } if (pluginManager.isPluginEnabled("VotingPlugin")) { requirements.addRequirements( - new VotingPluginVotesRequirement(this)); + new VotingPluginVotesRequirement(this), + new VotingPluginPointsRequirement(this, "votingplugin-pointsh"), + new VotingPluginPointsDeductibleRequirement(this, "votingplugin-points")); } if (Bukkit.getPluginManager().isPluginEnabled("Towny")) { requirements.addRequirements( diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsDeductibleRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsDeductibleRequirement.java new file mode 100644 index 0000000..5c5e0d0 --- /dev/null +++ b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsDeductibleRequirement.java @@ -0,0 +1,32 @@ +package sh.okx.rankup.requirements.requirement.votingplugin; + +import com.Ben12345rocks.VotingPlugin.Objects.User; +import com.Ben12345rocks.VotingPlugin.UserManager.UserManager; +import org.bukkit.entity.Player; +import sh.okx.rankup.RankupPlugin; +import sh.okx.rankup.requirements.DeductibleRequirement; +import sh.okx.rankup.requirements.Requirement; + +public class VotingPluginPointsDeductibleRequirement extends VotingPluginPointsRequirement implements DeductibleRequirement { + + public VotingPluginPointsDeductibleRequirement(RankupPlugin plugin, String name) { + super(plugin, name); + } + + protected VotingPluginPointsDeductibleRequirement(Requirement clone) { + super(clone); + } + + @Override + public void apply(Player player, double multiplier) { + User user = UserManager.getInstance().getVotingPluginUser(player); + if(!user.removePoints(getValueInt())) { + plugin.getLogger().warning("Unable to remove VotingPlugin points"); + } + } + + @Override + public Requirement clone() { + return new VotingPluginPointsDeductibleRequirement(this); + } +} diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsRequirement.java new file mode 100644 index 0000000..bd5aa33 --- /dev/null +++ b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginPointsRequirement.java @@ -0,0 +1,28 @@ +package sh.okx.rankup.requirements.requirement.votingplugin; + +import com.Ben12345rocks.VotingPlugin.UserManager.UserManager; +import org.bukkit.entity.Player; +import sh.okx.rankup.RankupPlugin; +import sh.okx.rankup.requirements.ProgressiveRequirement; +import sh.okx.rankup.requirements.Requirement; + +public class VotingPluginPointsRequirement extends ProgressiveRequirement { + + public VotingPluginPointsRequirement(RankupPlugin plugin, String name) { + super(plugin, name); + } + + protected VotingPluginPointsRequirement(Requirement clone) { + super(clone); + } + + @Override + public double getProgress(Player player) { + return UserManager.getInstance().getVotingPluginUser(player).getPoints(); + } + + @Override + public Requirement clone() { + return new VotingPluginPointsRequirement(this); + } +} diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginVotesRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginVotesRequirement.java index bbbd45c..1684fe6 100644 --- a/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginVotesRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/requirement/votingplugin/VotingPluginVotesRequirement.java @@ -1,5 +1,6 @@ package sh.okx.rankup.requirements.requirement.votingplugin; +import com.Ben12345rocks.VotingPlugin.TopVoter.TopVoter; import com.Ben12345rocks.VotingPlugin.UserManager.UserManager; import org.bukkit.entity.Player; import sh.okx.rankup.RankupPlugin; @@ -17,7 +18,7 @@ public class VotingPluginVotesRequirement extends ProgressiveRequirement { @Override public double getProgress(Player player) { - return UserManager.getInstance().getVotingPluginUser(player).getPoints(); + return UserManager.getInstance().getVotingPluginUser(player).getTotal(TopVoter.AllTime); } @Override diff --git a/src/main/resources/rankups.yml b/src/main/resources/rankups.yml index 4b49453..a2ba234 100644 --- a/src/main/resources/rankups.yml +++ b/src/main/resources/rankups.yml @@ -14,7 +14,7 @@ Aexample: next: 'B' # List of requirements to go to the next rank # This example will charge 1000 money to rankup from A to B. - # https://github.com/okx-code/Rankup3/wiki/Requirements + # https://github.com/okx-code/Rankup3/wiki/List-of-Requirements # custom requirements can also be added by other plugins. requirements: - 'money 1000'