fix playtime minutes requirement and add world requirement

This commit is contained in:
okx-code
2018-12-15 09:56:57 +00:00
parent 02a8dc4e25
commit ac6945431a
3 changed files with 39 additions and 4 deletions
@@ -35,8 +35,8 @@ public class RanksCommand implements CommandExecutor {
// helpful message to say there is a null rankup // helpful message to say there is a null rankup
if (next == null) { if (next == null) {
plugin.getMessage(Message.INVALID_RANKUP).failIfEmpty().send(sender); plugin.getMessage(Message.INVALID_RANKUP).failIfEmpty().send(sender);
plugin.getLogger().severe("Rankup from " + rank.getName() + " to " + rank.getNext() + plugin.getLogger().severe("Rankup from " + rank.getName() + " to " + rank.getNext()
" is defined but " + rank.getNext() + " does not exist."); + " is defined but " + rank.getNext() + " does not exist.");
return true; return true;
} }
@@ -26,12 +26,12 @@ public class PlaytimeMinutesRequirement extends Requirement {
@Override @Override
public boolean check(Player player) { public boolean check(Player player) {
return player.getStatistic(playOneTick) / TICKS_PER_MINUTE >= getValueDouble(); return getRemaining(player) <= 0;
} }
@Override @Override
public double getRemaining(Player player) { public double getRemaining(Player player) {
return Math.max(0, getValueDouble() - (player.getStatistic(playOneTick) * TICKS_PER_MINUTE)); return Math.max(0, getValueDouble() - (player.getStatistic(playOneTick) / TICKS_PER_MINUTE));
} }
@Override @Override
@@ -0,0 +1,35 @@
package sh.okx.rankup.requirements.requirement;
import org.bukkit.entity.Player;
import sh.okx.rankup.Rankup;
import sh.okx.rankup.requirements.Requirement;
public class WorldRequirement extends Requirement {
public WorldRequirement(Rankup plugin) {
super(plugin, "world");
}
protected WorldRequirement(Requirement clone) {
super(clone);
}
@Override
public boolean check(Player player) {
for (String world : getValueString().split(" ")) {
if (player.getWorld().getName().equalsIgnoreCase(world)) {
return true;
}
}
return false;
}
@Override
public double getRemaining(Player player) {
return check(player) ? 0 : 1;
}
@Override
public Requirement clone() {
return new WorldRequirement(this);
}
}