From db0a439d0cf0f8aec568004111b924b1d2917bc8 Mon Sep 17 00:00:00 2001 From: okx-code Date: Sun, 29 Sep 2019 10:19:07 +0100 Subject: [PATCH] 3.5.8-beta --- build.gradle | 7 ++-- src/main/java/sh/okx/rankup/Rankup.java | 10 +++++- .../requirements/DeductibleRequirement.java | 18 ++-------- .../NonDeductibleRequirement.java | 4 +-- .../requirement/ItemRequirement.java | 2 +- .../requirement/MoneyRequirement.java | 3 +- .../requirement/XpLevelRequirement.java | 3 +- .../tokenmanager/TokensRequirement.java | 35 +++++++++++++++++++ .../VotingPluginVotesRequirement.java | 2 +- src/main/resources/config.yml | 2 +- src/main/resources/prestiges.yml | 2 ++ 11 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 src/main/java/sh/okx/rankup/requirements/requirement/tokenmanager/TokensRequirement.java diff --git a/build.gradle b/build.gradle index 6fa12da..0768f0d 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'sh.okx' -version '3.5.7' +version '3.5.8-beta' repositories { mavenCentral() @@ -29,7 +29,10 @@ repositories { dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' - compile 'org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT' + compile 'org.spigotmc:spigot-api:1.14.4-R0.1-SNAPSHOT' + compile('com.github.Realizedd:TokenManager:3.2.4') { + transitive = false + } compile('net.milkbowl.vault:VaultAPI:1.7') { exclude group: 'org.bukkit' diff --git a/src/main/java/sh/okx/rankup/Rankup.java b/src/main/java/sh/okx/rankup/Rankup.java index 933bd38..b60917f 100644 --- a/src/main/java/sh/okx/rankup/Rankup.java +++ b/src/main/java/sh/okx/rankup/Rankup.java @@ -33,6 +33,7 @@ import sh.okx.rankup.ranks.Rank; import sh.okx.rankup.ranks.Rankups; import sh.okx.rankup.requirements.DeductibleRequirement; import sh.okx.rankup.requirements.NonDeductibleRequirement; +import sh.okx.rankup.requirements.ProgressiveRequirement; import sh.okx.rankup.requirements.Requirement; import sh.okx.rankup.requirements.RequirementRegistry; import sh.okx.rankup.requirements.requirement.*; @@ -41,6 +42,7 @@ import sh.okx.rankup.requirements.requirement.advancedachievements.AdvancedAchie import sh.okx.rankup.requirements.requirement.advancedachievements.AdvancedAchievementsTotalRequirement; import sh.okx.rankup.requirements.requirement.mcmmo.McMMOPowerLevelRequirement; import sh.okx.rankup.requirements.requirement.mcmmo.McMMOSkillRequirement; +import sh.okx.rankup.requirements.requirement.tokenmanager.TokensRequirement; import sh.okx.rankup.requirements.requirement.towny.*; import sh.okx.rankup.requirements.requirement.votingplugin.VotingPluginVotesRequirement; @@ -302,9 +304,15 @@ public class Rankup extends JavaPlugin { requirements.addRequirement(new TownyKingNumberResidentsRequirement(this)); requirements.addRequirement(new TownyKingNumberTownsRequirement(this)); } + if (Bukkit.getPluginManager().isPluginEnabled("TokenManager")) { + registerDeductible(new TokensRequirement(this)); + } } - private void registerDeductible(DeductibleRequirement requirement) { + private void registerDeductible(ProgressiveRequirement requirement) { + if (!(requirement instanceof DeductibleRequirement)) { + throw new IllegalArgumentException("Requirement is not DeductibleRequirement"); + } requirements.addRequirement(requirement); requirements.addRequirement(new NonDeductibleRequirement(requirement, requirement.getName() + "h")); } diff --git a/src/main/java/sh/okx/rankup/requirements/DeductibleRequirement.java b/src/main/java/sh/okx/rankup/requirements/DeductibleRequirement.java index 84985df..1158fed 100644 --- a/src/main/java/sh/okx/rankup/requirements/DeductibleRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/DeductibleRequirement.java @@ -3,19 +3,7 @@ package sh.okx.rankup.requirements; import org.bukkit.entity.Player; import sh.okx.rankup.Rankup; -public abstract class DeductibleRequirement extends ProgressiveRequirement { - public DeductibleRequirement(Rankup plugin, String name) { - super(plugin, name); - } - - public DeductibleRequirement(Rankup plugin, String name, boolean subRequirement) { - super(plugin, name, subRequirement); - } - - protected DeductibleRequirement(Requirement clone) { - super(clone); - } - +public interface DeductibleRequirement { /** * Apply the effect of this requirement to the player. * For money, this could be taking money away from the player. @@ -25,9 +13,9 @@ public abstract class DeductibleRequirement extends ProgressiveRequirement { * @param player the player to take from * @param multiplier The multiplier for the value */ - public abstract void apply(Player player, double multiplier); + void apply(Player player, double multiplier); - public final void apply(Player player) { + default void apply(Player player) { apply(player, 1); } } diff --git a/src/main/java/sh/okx/rankup/requirements/NonDeductibleRequirement.java b/src/main/java/sh/okx/rankup/requirements/NonDeductibleRequirement.java index a17df0e..c78de55 100644 --- a/src/main/java/sh/okx/rankup/requirements/NonDeductibleRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/NonDeductibleRequirement.java @@ -6,9 +6,9 @@ import org.bukkit.entity.Player; * Proxy requirement for a deductible requirement that is exactly the same but is not deductible */ public class NonDeductibleRequirement extends ProgressiveRequirement { - private final DeductibleRequirement requirement; + private final ProgressiveRequirement requirement; - public NonDeductibleRequirement(DeductibleRequirement requirement, String name) { + public NonDeductibleRequirement(ProgressiveRequirement requirement, String name) { super(requirement.plugin, name, requirement.hasSubRequirement()); this.requirement = requirement; } diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/ItemRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/ItemRequirement.java index 654c341..503729a 100644 --- a/src/main/java/sh/okx/rankup/requirements/requirement/ItemRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/requirement/ItemRequirement.java @@ -11,7 +11,7 @@ import sh.okx.rankup.requirements.Requirement; import java.util.Arrays; -public class ItemRequirement extends DeductibleRequirement { +public class ItemRequirement extends ProgressiveRequirement implements DeductibleRequirement { public ItemRequirement(Rankup plugin) { super(plugin, "item", true); } diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/MoneyRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/MoneyRequirement.java index dacaf3d..5b3c3e6 100644 --- a/src/main/java/sh/okx/rankup/requirements/requirement/MoneyRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/requirement/MoneyRequirement.java @@ -4,9 +4,10 @@ import net.milkbowl.vault.economy.Economy; import org.bukkit.entity.Player; import sh.okx.rankup.Rankup; import sh.okx.rankup.requirements.DeductibleRequirement; +import sh.okx.rankup.requirements.ProgressiveRequirement; import sh.okx.rankup.requirements.Requirement; -public class MoneyRequirement extends DeductibleRequirement { +public class MoneyRequirement extends ProgressiveRequirement implements DeductibleRequirement { public MoneyRequirement(Rankup plugin) { super(plugin, "money"); } diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/XpLevelRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/XpLevelRequirement.java index 3ce78dc..2f409f9 100644 --- a/src/main/java/sh/okx/rankup/requirements/requirement/XpLevelRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/requirement/XpLevelRequirement.java @@ -3,9 +3,10 @@ package sh.okx.rankup.requirements.requirement; import org.bukkit.entity.Player; import sh.okx.rankup.Rankup; import sh.okx.rankup.requirements.DeductibleRequirement; +import sh.okx.rankup.requirements.ProgressiveRequirement; import sh.okx.rankup.requirements.Requirement; -public class XpLevelRequirement extends DeductibleRequirement { +public class XpLevelRequirement extends ProgressiveRequirement implements DeductibleRequirement { public XpLevelRequirement(Rankup plugin) { super(plugin, "xp-level"); } diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/tokenmanager/TokensRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/tokenmanager/TokensRequirement.java new file mode 100644 index 0000000..ed460e9 --- /dev/null +++ b/src/main/java/sh/okx/rankup/requirements/requirement/tokenmanager/TokensRequirement.java @@ -0,0 +1,35 @@ +package sh.okx.rankup.requirements.requirement.tokenmanager; + +import me.realized.tokenmanager.api.TokenManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import sh.okx.rankup.Rankup; +import sh.okx.rankup.requirements.DeductibleRequirement; +import sh.okx.rankup.requirements.ProgressiveRequirement; + +public class TokensRequirement extends ProgressiveRequirement implements DeductibleRequirement { + private final TokenManager manager = (TokenManager) Bukkit.getPluginManager().getPlugin("TokenManager"); + + public TokensRequirement(Rankup plugin) { + super(plugin, "tokenmanager-tokens"); + } + + private TokensRequirement(TokensRequirement clone) { + super(clone); + } + + @Override + public void apply(Player player, double multiplier) { + manager.removeTokens(player, (long) (getValueInt() * multiplier)); + } + + @Override + public double getProgress(Player player) { + return manager.getTokens(player).orElse(0); + } + + @Override + public TokensRequirement clone() { + return new TokensRequirement(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 54d21d0..7e6b1d9 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 @@ -11,7 +11,7 @@ public class VotingPluginVotesRequirement extends ProgressiveRequirement { super(plugin, "votingplugin-votes"); } - protected VotingPluginVotesRequirement(VotingPluginVotesRequirement clone) { + protected VotingPluginVotesRequirement(Requirement clone) { super(clone); } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 512ce9b..0a976ce 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -23,7 +23,7 @@ prestiges: true # whether or not /prestige and /prestiges should be enabled. # you can alternatively negate the permission rankup.prestige # this will also make the command not autocomplete in 1.13 -prestige: true +prestige: false # how people should confirm ranking up # options are: gui, text or none diff --git a/src/main/resources/prestiges.yml b/src/main/resources/prestiges.yml index 355d49e..79a4223 100644 --- a/src/main/resources/prestiges.yml +++ b/src/main/resources/prestiges.yml @@ -1,3 +1,5 @@ +# !!! To use prestiges, you must first enable it in config.yml + first: # the rank people must be to use this prestige from: 'D'