Fixed killer placeholders sometimes being empty if the killer left the server (#150)

This commit is contained in:
cervinakuy committed 2021-07-10 21:22:36 -07:00
1 parent ca4f62657b
commit 4fdeac6d39
1 file changed
+19 -26
@@ -11,6 +11,7 @@ import org.bukkit.World;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByBlockEvent;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@@ -27,9 +28,9 @@ import java.util.List;
public class DeathListener implements Listener {
private Arena arena;
private Resources resources;
private Resource config;
private final Arena arena;
private final Resources resources;
private final Resource config;
public DeathListener(Game plugin) {
this.arena = plugin.getArena();
@@ -245,19 +246,21 @@ public class DeathListener implements Listener {
private Entity getShooter(EntityDamageEvent e) {
EntityDamageByEntityEvent shotEvent = (EntityDamageByEntityEvent) e;
Projectile damager = (Projectile) shotEvent.getDamager();
Entity shooter = (Entity) damager.getShooter();
return shooter;
return (Entity) damager.getShooter();
}
private Entity getExplodedEntity(EntityDamageEvent e) {
EntityDamageByEntityEvent blownUpEvent = (EntityDamageByEntityEvent) e;
return blownUpEvent.getDamager();
// if (e instanceof EntityDamageByBlockEvent) {
// EntityDamageByBlockEvent blownUpEvent2 = (EntityDamageByBlockEvent) e;
// return blownUpEvent2.getDamager();
/*} else if (e instanceof EntityDamageByEntityEvent) { */
EntityDamageByEntityEvent blownUpEvent = (EntityDamageByEntityEvent) e;
return blownUpEvent.getDamager();
/*}*/
}
@@ -309,13 +312,15 @@ public class DeathListener implements Listener {
}
}
if (victim != null) {
deathMessage = deathMessage.replace("%victim%", victim.getName());
}
if (killer != null) {
deathMessage = deathMessage.replace("%killer%", killer.getName())
.replace("%killer_health%", String.valueOf(Toolkit.round(killer.getHealth(), 2)));
} else {
deathMessage = config.getString("Death.Messages.Unknown"); // if killer is null (left the server, or some other unknown reason)
}
if (victim != null) {
deathMessage = deathMessage.replace("%victim%", victim.getName());
}
return deathMessage;
@@ -323,31 +328,19 @@ public class DeathListener implements Listener {
}
private void broadcast(World world, String message) {
if (config.getBoolean("Death.Messages.Enabled")) {
for (Player all : world.getPlayers()) {
all.sendMessage(Toolkit.translate(message));
}
}
}
private void broadcast(World world, Sound sound, int volume, int pitch) {
if (config.getBoolean("Death.Sound.Enabled")) {
for (Player all : world.getPlayers()) {
all.playSound(all.getLocation(), XSound.matchXSound(sound.toString()).get().parseSound(), volume, pitch);
XSound.play(all, String.format("%s, %d, %d", sound.toString(), volume, pitch));
}
}
}
}