remove stats system
improve operations and make them extendable more easily and let other plugins add operations, like requirements move requirements/operations out of ranks class as they will be used in prestiges
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package sh.okx.rankup.requirements.requirement;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.Rankup;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
public class GroupRequirement extends Requirement {
|
||||
public GroupRequirement(Rankup plugin, String name) {
|
||||
super(plugin, name);
|
||||
}
|
||||
|
||||
protected GroupRequirement(Requirement clone) {
|
||||
super(clone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
OUTER:
|
||||
for (String requiredGroup : getValueString().split(" ")) {
|
||||
for (String group : plugin.getPermissions().getPlayerGroups(player)) {
|
||||
if (group.equalsIgnoreCase(requiredGroup)) {
|
||||
continue OUTER;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Requirement clone() {
|
||||
return new GroupRequirement(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package sh.okx.rankup.requirements.requirement;
|
||||
|
||||
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.Requirement;
|
||||
|
||||
public class MoneyRequirement extends DeductibleRequirement {
|
||||
public MoneyRequirement(Rankup plugin, String name) {
|
||||
super(plugin, name);
|
||||
}
|
||||
|
||||
protected MoneyRequirement(Requirement clone) {
|
||||
super(clone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
Economy economy = plugin.getEconomy();
|
||||
double balance = economy.getBalance(player);
|
||||
return balance >= getValueDouble();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(Player player) {
|
||||
Economy economy = plugin.getEconomy();
|
||||
economy.withdrawPlayer(player, getValueDouble());
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getRemaining(Player player) {
|
||||
return Math.max(0, getValueDouble() - plugin.getEconomy().getBalance(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Requirement clone() {
|
||||
return new MoneyRequirement(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package sh.okx.rankup.requirements.requirement;
|
||||
|
||||
import org.bukkit.Statistic;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.Rankup;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
public class PlaytimeMinutesRequirement extends Requirement {
|
||||
private static final int TICKS_PER_MINUTE = 20 * 60;
|
||||
private Statistic playOneTick;
|
||||
|
||||
public PlaytimeMinutesRequirement(Rankup plugin, String name) {
|
||||
super(plugin, name);
|
||||
try {
|
||||
playOneTick = Statistic.valueOf("PLAY_ONE_MINUTE");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// statistic was changed in 1.13.
|
||||
playOneTick = Statistic.valueOf("PLAY_ONE_TICK");
|
||||
}
|
||||
}
|
||||
|
||||
protected PlaytimeMinutesRequirement(PlaytimeMinutesRequirement clone) {
|
||||
super(clone);
|
||||
this.playOneTick = clone.playOneTick;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
return player.getStatistic(playOneTick) * TICKS_PER_MINUTE >= getValueDouble();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getRemaining(Player player) {
|
||||
return Math.max(0, getValueDouble() - (player.getStatistic(playOneTick) * TICKS_PER_MINUTE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Requirement clone() {
|
||||
return new PlaytimeMinutesRequirement(this);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
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.Requirement;
|
||||
|
||||
public class XpLevelRequirement extends DeductibleRequirement {
|
||||
public XpLevelRequirement(Rankup plugin, String name) {
|
||||
super(plugin, name);
|
||||
}
|
||||
|
||||
protected XpLevelRequirement(Requirement clone) {
|
||||
super(clone);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
return player.getLevel() >= getValueInt();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply(Player player) {
|
||||
player.setLevel(player.getLevel() - getValueInt());
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getRemaining(Player player) {
|
||||
return Math.max(0, getValueInt() - player.getLevel());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Requirement clone() {
|
||||
return new XpLevelRequirement(this);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user