mirror of
https://github.com/PlayPro/CoreProtect.git
synced 2026-10-28 09:44:56 +00:00
Added Ghast fireball attribution
This commit is contained in:
1 parent
e2f8da9070
commit
68d3f19d93
1 file changed
+52
-24
@@ -1,13 +1,18 @@
|
||||
package net.coreprotect.listener.entity;
|
||||
|
||||
import org.bukkit.ExplosionResult;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Creeper;
|
||||
import org.bukkit.entity.EnderCrystal;
|
||||
import org.bukkit.entity.EnderDragon;
|
||||
import org.bukkit.entity.EnderDragonPart;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Fireball;
|
||||
import org.bukkit.entity.Ghast;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Minecart;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.TNTPrimed;
|
||||
import org.bukkit.entity.Wither;
|
||||
import org.bukkit.entity.WitherSkull;
|
||||
@@ -15,6 +20,7 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||
import org.bukkit.projectiles.ProjectileSource;
|
||||
|
||||
import net.coreprotect.bukkit.BukkitAdapter;
|
||||
import net.coreprotect.config.Config;
|
||||
@@ -32,29 +38,7 @@ public final class EntityExplodeListener extends Queue implements Listener {
|
||||
}
|
||||
|
||||
World world = event.getLocation().getWorld();
|
||||
String user = "#explosion";
|
||||
|
||||
if (entity instanceof TNTPrimed) {
|
||||
user = "#tnt";
|
||||
}
|
||||
else if (entity instanceof Minecart) {
|
||||
String name = entity.getType().name();
|
||||
if (name.contains("TNT")) {
|
||||
user = "#tnt";
|
||||
}
|
||||
}
|
||||
else if (entity instanceof Creeper) {
|
||||
user = "#creeper";
|
||||
}
|
||||
else if (entity instanceof EnderDragon || entity instanceof EnderDragonPart) {
|
||||
user = "#enderdragon";
|
||||
}
|
||||
else if (entity instanceof Wither || entity instanceof WitherSkull) {
|
||||
user = "#wither";
|
||||
}
|
||||
else if (entity instanceof EnderCrystal) {
|
||||
user = "#end_crystal";
|
||||
}
|
||||
String user = getExplosionUser(entity);
|
||||
|
||||
boolean log = false;
|
||||
if (Config.getConfig(world).EXPLOSIONS) {
|
||||
@@ -69,4 +53,48 @@ public final class EntityExplodeListener extends Queue implements Listener {
|
||||
BlockExplodeListener.processBlockExplode(user, world, event.blockList());
|
||||
}
|
||||
}
|
||||
|
||||
static String getExplosionUser(Entity entity) {
|
||||
if (entity instanceof TNTPrimed) {
|
||||
return "#tnt";
|
||||
}
|
||||
else if (entity instanceof Minecart) {
|
||||
String name = entity.getType().name();
|
||||
if (name.contains("TNT")) {
|
||||
return "#tnt";
|
||||
}
|
||||
}
|
||||
else if (entity instanceof Creeper) {
|
||||
return "#creeper";
|
||||
}
|
||||
else if (entity instanceof Fireball) {
|
||||
return getFireballUser((Fireball) entity);
|
||||
}
|
||||
else if (entity instanceof EnderDragon || entity instanceof EnderDragonPart) {
|
||||
return "#enderdragon";
|
||||
}
|
||||
else if (entity instanceof Wither || entity instanceof WitherSkull) {
|
||||
return "#wither";
|
||||
}
|
||||
else if (entity instanceof EnderCrystal) {
|
||||
return "#end_crystal";
|
||||
}
|
||||
|
||||
return "#explosion";
|
||||
}
|
||||
|
||||
private static String getFireballUser(Fireball fireball) {
|
||||
ProjectileSource shooter = fireball.getShooter();
|
||||
if (shooter instanceof Player) {
|
||||
return ((Player) shooter).getName();
|
||||
}
|
||||
else if (shooter instanceof Ghast) {
|
||||
return "#ghast";
|
||||
}
|
||||
else if (shooter instanceof LivingEntity) {
|
||||
return "#" + ((LivingEntity) shooter).getType().name().toLowerCase(Locale.ROOT);
|
||||
}
|
||||
|
||||
return "#explosion";
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user