ActionHealth/src/main/java/com/zeshanaslam/actionhealth/events/HealthListeners.java

82 lines
2.6 KiB
Java
Raw Normal View History

package com.zeshanaslam.actionhealth.events;
2017-03-20 06:15:09 +01:00
import com.zeshanaslam.actionhealth.Main;
import com.zeshanaslam.actionhealth.utils.FileHandler;
2017-03-20 06:15:09 +01:00
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
public class HealthListeners implements Listener {
private Main plugin;
public HealthListeners(Main plugin) {
this.plugin = plugin;
}
@EventHandler(priority = EventPriority.MONITOR)
public void onDamage(EntityDamageByEntityEvent event) {
if (plugin.configStore.checkPvP && event.isCancelled()) {
2017-03-20 06:15:09 +01:00
return;
}
if (plugin.configStore.actionStore.isUsingAnyDamageCause) {
return;
}
2017-03-20 06:15:09 +01:00
Entity damaged = event.getEntity();
Player player = null;
2017-03-20 06:15:09 +01:00
if (event.getDamager() instanceof Projectile) {
Projectile projectile = (Projectile) event.getDamager();
if (projectile.getShooter() instanceof Player) {
player = (Player) projectile.getShooter();
2017-03-20 06:15:09 +01:00
}
}
if (event.getDamager() instanceof Player)
player = (Player) event.getDamager();
2017-03-20 06:15:09 +01:00
if (player != null) {
if (!plugin.healthUtil.matchesRequirements(player, damaged)) {
2017-03-20 06:15:09 +01:00
return;
}
// Send health
if (damaged instanceof LivingEntity) {
LivingEntity livingEntity = (LivingEntity) damaged;
livingEntity.setLastDamage(event.getFinalDamage());
plugin.healthUtil.sendHealth(player, livingEntity, livingEntity.getHealth() - event.getFinalDamage());
}
2017-03-20 06:15:09 +01:00
}
}
@EventHandler(priority = EventPriority.MONITOR)
2017-03-20 06:15:09 +01:00
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
if (plugin.configStore.rememberToggle) {
2017-03-20 06:15:09 +01:00
FileHandler fileHandler = new FileHandler("plugins/ActionHealth/players/" + player.getUniqueId() + ".yml");
if (fileHandler.getBoolean("toggle")) {
plugin.toggle.add(player.getUniqueId());
}
}
}
@EventHandler(priority = EventPriority.MONITOR)
2017-03-20 06:15:09 +01:00
public void onLeave(PlayerQuitEvent event) {
Player player = event.getPlayer();
plugin.toggle.remove(player.getUniqueId());
2017-03-20 06:15:09 +01:00
}
}