From ac6945431aded44dc7da184e6069eafb5f6233ae Mon Sep 17 00:00:00 2001 From: okx-code Date: Sat, 15 Dec 2018 09:56:57 +0000 Subject: [PATCH] fix playtime minutes requirement and add world requirement --- .../sh/okx/rankup/commands/RanksCommand.java | 4 +-- .../PlaytimeMinutesRequirement.java | 4 +-- .../requirement/WorldRequirement.java | 35 +++++++++++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 src/main/java/sh/okx/rankup/requirements/requirement/WorldRequirement.java diff --git a/src/main/java/sh/okx/rankup/commands/RanksCommand.java b/src/main/java/sh/okx/rankup/commands/RanksCommand.java index ce15937..85b2bde 100644 --- a/src/main/java/sh/okx/rankup/commands/RanksCommand.java +++ b/src/main/java/sh/okx/rankup/commands/RanksCommand.java @@ -35,8 +35,8 @@ public class RanksCommand implements CommandExecutor { // helpful message to say there is a null rankup if (next == null) { plugin.getMessage(Message.INVALID_RANKUP).failIfEmpty().send(sender); - plugin.getLogger().severe("Rankup from " + rank.getName() + " to " + rank.getNext() + - " is defined but " + rank.getNext() + " does not exist."); + plugin.getLogger().severe("Rankup from " + rank.getName() + " to " + rank.getNext() + + " is defined but " + rank.getNext() + " does not exist."); return true; } diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/PlaytimeMinutesRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/PlaytimeMinutesRequirement.java index 9af9e6c..abdb83e 100644 --- a/src/main/java/sh/okx/rankup/requirements/requirement/PlaytimeMinutesRequirement.java +++ b/src/main/java/sh/okx/rankup/requirements/requirement/PlaytimeMinutesRequirement.java @@ -26,12 +26,12 @@ public class PlaytimeMinutesRequirement extends Requirement { @Override public boolean check(Player player) { - return player.getStatistic(playOneTick) / TICKS_PER_MINUTE >= getValueDouble(); + return getRemaining(player) <= 0; } @Override 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 diff --git a/src/main/java/sh/okx/rankup/requirements/requirement/WorldRequirement.java b/src/main/java/sh/okx/rankup/requirements/requirement/WorldRequirement.java new file mode 100644 index 0000000..58a0dcd --- /dev/null +++ b/src/main/java/sh/okx/rankup/requirements/requirement/WorldRequirement.java @@ -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); + } +}