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
+ }
+
+}
+
+