3.5.8-beta

This commit is contained in:
okx-code
2019-09-29 10:19:07 +01:00
parent 3f5534a201
commit db0a439d0c
11 changed files with 63 additions and 25 deletions
+9 -1
View File
@@ -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"));
}
@@ -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);
}
}
@@ -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;
}
@@ -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);
}
@@ -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");
}
@@ -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");
}
@@ -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);
}
}
@@ -11,7 +11,7 @@ public class VotingPluginVotesRequirement extends ProgressiveRequirement {
super(plugin, "votingplugin-votes");
}
protected VotingPluginVotesRequirement(VotingPluginVotesRequirement clone) {
protected VotingPluginVotesRequirement(Requirement clone) {
super(clone);
}