totem of undying start

master
Benjamin Kraft 3 years ago
parent ea607b8c2e
commit b0d0fb424b
  1. 2
      .idea/compiler.xml
  2. 5
      src/main/java/com/benjocraeft/sharehealth/PlayerListeners.java
  3. 9
      src/main/java/com/benjocraeft/sharehealth/Sharehealth.java
  4. 48
      src/main/java/com/benjocraeft/sharehealth/TotemManager.java

@ -9,7 +9,7 @@
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="Sharehealth" target="1.8" />
<module name="Sharehealth" target="15" />
</bytecodeTargetLevel>
</component>
</project>

@ -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();

@ -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();

@ -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<Player> players = Sharehealth.GetPlayers();
return 0;
}
enum Mode {
One,
All,
Percentage,
Disabled
}
}
Loading…
Cancel
Save