QoL fix for npc players with death messages
This commit is contained in:
parent
9704f1493c
commit
8b107587e7
|
@ -35,6 +35,7 @@ import org.bukkit.event.entity.EntityPortalEvent;
|
||||||
import org.bukkit.event.entity.EntityTargetEvent;
|
import org.bukkit.event.entity.EntityTargetEvent;
|
||||||
import org.bukkit.event.entity.EntityTransformEvent;
|
import org.bukkit.event.entity.EntityTransformEvent;
|
||||||
import org.bukkit.event.entity.ItemDespawnEvent;
|
import org.bukkit.event.entity.ItemDespawnEvent;
|
||||||
|
import org.bukkit.event.entity.PlayerDeathEvent;
|
||||||
import org.bukkit.event.entity.PlayerLeashEntityEvent;
|
import org.bukkit.event.entity.PlayerLeashEntityEvent;
|
||||||
import org.bukkit.event.entity.PotionSplashEvent;
|
import org.bukkit.event.entity.PotionSplashEvent;
|
||||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||||
|
@ -340,12 +341,9 @@ public class EventListen implements Listener {
|
||||||
if (delay < 0)
|
if (delay < 0)
|
||||||
return;
|
return;
|
||||||
int deathAnimationTicks = event.getEntity() instanceof LivingEntity ? 20 : 2;
|
int deathAnimationTicks = event.getEntity() instanceof LivingEntity ? 20 : 2;
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), new Runnable() {
|
Bukkit.getScheduler().scheduleSyncDelayedTask(CitizensAPI.getPlugin(), () -> {
|
||||||
@Override
|
if (!npc.isSpawned() && npc.getOwningRegistry().getByUniqueId(npc.getUniqueId()) == npc) {
|
||||||
public void run() {
|
npc.spawn(location, SpawnReason.TIMED_RESPAWN);
|
||||||
if (!npc.isSpawned() && npc.getOwningRegistry().getByUniqueId(npc.getUniqueId()) == npc) {
|
|
||||||
npc.spawn(location, SpawnReason.TIMED_RESPAWN);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, delay + deathAnimationTicks);
|
}, delay + deathAnimationTicks);
|
||||||
}
|
}
|
||||||
|
@ -457,6 +455,18 @@ public class EventListen implements Listener {
|
||||||
checkCreationEvent(event);
|
checkCreationEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onPlayerDeath(PlayerDeathEvent event) {
|
||||||
|
final NPC npc = CitizensAPI.getNPCRegistry().getNPC(event.getEntity());
|
||||||
|
if (npc == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (npc.requiresNameHologram()) {
|
||||||
|
event.setDeathMessage(event.getDeathMessage().replace(npc.getEntity().getName(), npc.getFullName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
public void onPlayerFish(PlayerFishEvent event) {
|
public void onPlayerFish(PlayerFishEvent event) {
|
||||||
if (CitizensAPI.getNPCRegistry().isNPC(event.getCaught())
|
if (CitizensAPI.getNPCRegistry().isNPC(event.getCaught())
|
||||||
|
|
Loading…
Reference in New Issue