diff --git a/src/main/java/com/benjocraeft/sharehealth/Commands.java b/src/main/java/com/benjocraeft/sharehealth/Commands.java index 7ca40ce..da31415 100644 --- a/src/main/java/com/benjocraeft/sharehealth/Commands.java +++ b/src/main/java/com/benjocraeft/sharehealth/Commands.java @@ -9,6 +9,8 @@ import org.bukkit.util.StringUtil; import java.util.*; import java.util.function.BiConsumer; +import java.util.function.Consumer; +import java.util.function.Function; public class Commands implements TabExecutor { @@ -24,11 +26,28 @@ public class Commands implements TabExecutor { ); commands.put( Arrays.asList("add"), - Pair.pair((sender, name) -> commandActivePlayer(sender, name, true), "Adds a player to the Plugin") + Pair.pair((sender, name) -> commandActivePlayer(sender, name, true), "Adds a player to the Plugin.") ); commands.put( Arrays.asList("remove"), - Pair.pair((sender, name) -> commandActivePlayer(sender, name, false), "Removes a player from the Plugin") + Pair.pair((sender, name) -> commandActivePlayer(sender, name, false), "Removes a player from the Plugin.") + ); + Function, Consumer>> putTotemCommand = + name -> function -> description -> commands.put( + Arrays.asList("totem", name), + Pair.pair(function, description) + ); + putTotemCommand.apply("one").apply((sender, arg) -> commandSetTotemMode(sender, TotemManager.Mode.One)).accept( + "Totem of Undying: At least one player needs to hold it." + ); + putTotemCommand.apply("all").apply((sender, arg) -> commandSetTotemMode(sender, TotemManager.Mode.All)).accept( + "Totem of Undying: All players need to hold it." + ); + putTotemCommand.apply("fraction").apply((sender, arg) -> commandSetTotemMode(sender, TotemManager.Mode.Fraction)).accept( + "Totem of Undying: At least fraction * player-count needs to hold it." + ); + putTotemCommand.apply("disabled").apply((sender, arg) -> commandSetTotemMode(sender, TotemManager.Mode.Disabled)).accept( + "Totem of Undying: Disabled" ); commands.put( Arrays.asList("log", "on"), @@ -138,6 +157,15 @@ public class Commands implements TabExecutor { sender.sendMessage(message); } + private void commandSetTotemMode(CommandSender sender, TotemManager.Mode mode) { + if (!sender.hasPermission("sharehealth.totem")){ + sender.sendMessage("You don't have permissions for this command!"); + return; + } + Sharehealth.Instance.getTotemManager().setMode(mode); + sender.sendMessage("Set Totem mode to " + mode.name()); + } + private void commandSetLogging(CommandSender sender, boolean hasLogging){ if (sender instanceof Player){ if (!Sharehealth.GetPlayers().contains(sender)) diff --git a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java index 3877d9e..8e6d014 100644 --- a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java +++ b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java @@ -29,6 +29,9 @@ public class Sharehealth extends JavaPlugin { } private TotemManager totemManager; + public TotemManager getTotemManager() { + return totemManager; + } private Messenger messenger; public Messenger getMessenger(){ diff --git a/src/main/java/com/benjocraeft/sharehealth/TotemManager.java b/src/main/java/com/benjocraeft/sharehealth/TotemManager.java index 94e91d9..ceb6ee0 100644 --- a/src/main/java/com/benjocraeft/sharehealth/TotemManager.java +++ b/src/main/java/com/benjocraeft/sharehealth/TotemManager.java @@ -14,17 +14,21 @@ public class TotemManager { private Mode mode = Mode.All; + public void setMode(Mode mode){ + this.mode = mode; + } //between 0 and 1 private double fractionNeeded; + public void setFractionNeeded(double value){ + fractionNeeded = value; + } //Determine if enough players hold a totem of undying public boolean totemCanBeUsed(){ return getHolderCount() >= getMinimumPlayerCount(); } - - //Activate Totem Effect //TODO remove used Totems //Finally buy some Falafel for Markus