diff --git a/.idea/compiler.xml b/.idea/compiler.xml index a7f0b3b..ae3c66c 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -9,7 +9,7 @@ - + \ No newline at end of file diff --git a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java index f962013..3d44c04 100644 --- a/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java +++ b/src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java @@ -26,11 +26,6 @@ public class PlayerListeners implements Listener{ Sharehealth.Instance.onPlayerJoin(e.getPlayer()); } - @EventHandler - public void onDeath(PlayerDeathEvent e){ - Player p = e.getEntity(); - } - @EventHandler public void onPlayerRespawn(final PlayerRespawnEvent e){ Player p = e.getPlayer(); diff --git a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java index 204aeb0..9969d7d 100644 --- a/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java +++ b/src/main/java/com/benjocraeft/sharehealth/Sharehealth.java @@ -27,6 +27,8 @@ public class Sharehealth extends JavaPlugin { return healthManager; } + private TotemManager totemManager; + private Messenger messenger; public Messenger getMessenger(){ return messenger; @@ -60,6 +62,9 @@ public class Sharehealth extends JavaPlugin { //Starting Health Manager for controlling actual health healthManager = new HealthManager(); + //Totem Manager controls TotemOfUndying behaviour + totemManager = new TotemManager(); + //Messenger messenger = new Messenger(getLogger()); @@ -123,7 +128,9 @@ public class Sharehealth extends JavaPlugin { statistics.onPlayerGotDamage(player, receivedDamage); if (!healthManager.onPlayerGotDamage(player, damage, absorbedDamage)){ - failed(player); + //TODO somehow reverse this because player.setHealth(0) kills instantly without event + if (!totemManager.tryToSave()) + failed(player); } saveStatus(); diff --git a/src/main/java/com/benjocraeft/sharehealth/TotemManager.java b/src/main/java/com/benjocraeft/sharehealth/TotemManager.java new file mode 100644 index 0000000..75ae695 --- /dev/null +++ b/src/main/java/com/benjocraeft/sharehealth/TotemManager.java @@ -0,0 +1,48 @@ +package com.benjocraeft.sharehealth; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import java.util.List; + +public class TotemManager { + + + private Mode mode; + + //between 0 and 1 + private double fractionNeeded; + + //Tries to save the game, return true on success, false otherwise + public boolean tryToSave(){ + + return false; + } + + //Calculates how many players are needed at least to trigger the totem for everyone + private int getMinimumPlayerCount(){ + int allPlayerCount = Sharehealth.GetPlayers().size(); + return switch (mode) { + case One -> 1; + case All -> allPlayerCount; + case Disabled -> Bukkit.getMaxPlayers() + 1; + case Percentage -> (int) Math.ceil(fractionNeeded * allPlayerCount); + }; + } + + //Counts how many players hold a totem + private int getHolderCount(){ + List players = Sharehealth.GetPlayers(); + return 0; + } + + enum Mode { + One, + All, + Percentage, + Disabled + } + +} + +