Spigot-Plugin to make every Player have shared hearts, tracking both damage and healing
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
1.6 KiB

package com.benjocraeft.sharehealth;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.entity.Player;
import java.util.Formatter;
import java.util.Locale;
public class HealthManager {
private double health = 20;
double getHealth(){
return health;
}
void setHealth(double health){
if (health > 20)
health = 20;
if (health < 0)
health = 0;
this.health = health;
}
String getHealthString(){
return new Formatter(Locale.US).format("%.2f", health).toString();
}
public HealthManager() {
}
public void updatePlayer(Player player){
if (player.getGameMode().equals(GameMode.SURVIVAL))
player.setHealth(health);
if (player.getGameMode().equals(GameMode.SPECTATOR))
player.setHealth(20);
}
private void subtractHealth(double sub){
setHealth(health - sub);
}
void addHealth(double add){
setHealth(health + add);
}
void reset(){
health = 20;
Bukkit.getOnlinePlayers().forEach(p -> p.setHealth(health));
}
boolean onPlayerGotDamage(Player player, double damage){
subtractHealth(damage);
setHealthByPlayer(player);
return health > 0;
}
void onPlayerRegainedHealth(Player player, double regainedHealth){
addHealth(regainedHealth);
setHealthByPlayer(player);
}
void setHealthByPlayer(Player player){
for (Player p : Sharehealth.GetAlivePlayers()){
if (p.equals(player))
continue;
p.setHealth(health);
}
}
}