Log fireballs according to their shooters. Fixes #336

This commit is contained in:
Ammar Askar
2013-01-27 11:37:04 +05:00
parent bc6ab367f6
commit c7c6978390

View File

@@ -1,13 +1,15 @@
package de.diddiz.LogBlock.listeners; package de.diddiz.LogBlock.listeners;
import static de.diddiz.LogBlock.config.Config.getWorldConfig; import de.diddiz.LogBlock.LogBlock;
import static de.diddiz.LogBlock.config.Config.logCreeperExplosionsAsPlayerWhoTriggeredThese; import de.diddiz.LogBlock.Logging;
import de.diddiz.LogBlock.config.WorldConfig;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.block.Sign; import org.bukkit.block.Sign;
import org.bukkit.entity.Creeper; import org.bukkit.entity.Creeper;
import org.bukkit.entity.EnderDragon; import org.bukkit.entity.EnderDragon;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Fireball; import org.bukkit.entity.Fireball;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.TNTPrimed; import org.bukkit.entity.TNTPrimed;
import org.bukkit.entity.Wither; import org.bukkit.entity.Wither;
@@ -15,9 +17,9 @@ import org.bukkit.entity.WitherSkull;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityExplodeEvent;
import de.diddiz.LogBlock.LogBlock;
import de.diddiz.LogBlock.Logging; import static de.diddiz.LogBlock.config.Config.getWorldConfig;
import de.diddiz.LogBlock.config.WorldConfig; import static de.diddiz.LogBlock.config.Config.logCreeperExplosionsAsPlayerWhoTriggeredThese;
public class ExplosionLogging extends LoggingListener public class ExplosionLogging extends LoggingListener
{ {
@@ -29,7 +31,7 @@ public class ExplosionLogging extends LoggingListener
public void onEntityExplode(EntityExplodeEvent event) { public void onEntityExplode(EntityExplodeEvent event) {
final WorldConfig wcfg = getWorldConfig(event.getLocation().getWorld()); final WorldConfig wcfg = getWorldConfig(event.getLocation().getWorld());
if (wcfg != null) { if (wcfg != null) {
final String name; String name = "Unknown";
if (event.getEntity() == null) { if (event.getEntity() == null) {
if (!wcfg.isLogging(Logging.MISCEXPLOSION)) if (!wcfg.isLogging(Logging.MISCEXPLOSION))
return; return;
@@ -47,9 +49,22 @@ public class ExplosionLogging extends LoggingListener
} else } else
name = "Creeper"; name = "Creeper";
} else if (event.getEntity() instanceof Fireball) { } else if (event.getEntity() instanceof Fireball) {
if (!wcfg.isLogging(Logging.GHASTFIREBALLEXPLOSION)) Fireball fireball = (Fireball) event.getEntity();
Entity shooter = fireball.getShooter();
if (shooter == null) {
return; return;
name = "Ghast"; }
if (shooter instanceof Ghast) {
if (!wcfg.isLogging(Logging.GHASTFIREBALLEXPLOSION)) {
return;
}
name = "Ghast";
} else if (shooter instanceof Wither) {
if (!wcfg.isLogging(Logging.WITHER)) {
return;
}
name = "Wither";
}
} else if (event.getEntity() instanceof EnderDragon) { } else if (event.getEntity() instanceof EnderDragon) {
if (!wcfg.isLogging(Logging.ENDERDRAGON)) if (!wcfg.isLogging(Logging.ENDERDRAGON))
return; return;