Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.sitrismc.sharedhealth.listeners;
- import me.sitrismc.sharedhealth.SharedHealth;
- import org.bukkit.Bukkit;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.EventPriority;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.scoreboard.Team;
- import java.util.*;
- /**
- * Created by linse_000 on 10/28/2014.
- */
- public class DamageListener implements Listener {
- SharedHealth plugin;
- List<String> offlines = new ArrayList<String>();
- Map<String, Double> offlineMap = new HashMap<String, Double>();
- public DamageListener(SharedHealth plugin) {
- this.plugin = plugin;
- }
- @EventHandler(priority = EventPriority.HIGH)
- public void onDamage(final EntityDamageEvent event) {
- if (!plugin.isRunning()) {
- return;
- }
- if (event.isCancelled()) {
- return;
- }
- if (!(event.getEntity() instanceof Player)) {
- return;
- }
- final Player p = (Player) event.getEntity();
- final Team team = p.getScoreboard().getPlayerTeam(p);
- final double health = p.getHealth();
- final double initDamage = event.getDamage();
- if (team == null || team.getSize() <= 1) {
- return;
- }
- new BukkitRunnable() {
- public void run() {
- int divider = team.getSize();
- double damage = initDamage / divider;
- double finalHealth = health - damage;
- if (finalHealth < 0) {
- finalHealth = 0;
- }
- if (!(p.isDead())) {
- p.setHealth(finalHealth);
- }
- for (OfflinePlayer offlinePlayer : team.getPlayers()) {
- if (offlinePlayer.isOnline()) {
- Player teammate = (Player) offlinePlayer;
- if (teammate.getName() != p.getName()) {
- teammate.damage(0.1);
- teammate.setHealth(finalHealth);
- }
- }
- }
- }
- }.runTaskLater(plugin, 1);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement