Fixed killer placeholders sometimes being empty if the killer left the server (#150)
This commit is contained in:
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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user