Source:
<code>public void pulse() { super.pulse(); if (getTicksLived() >= ticksToLive) { remove(); } if (getTicksLived() == 1) { GlowWorld world = (GlowWorld) location.getWorld(); if (!isSilent) { world.playSound(location, Sound.ENTITY_LIGHTNING_THUNDER, 10000, 0.8F + ThreadLocalRandom.current().nextFloat() * 0.2F); world.playSound(location, Sound.ENTITY_GENERIC_EXPLODE, 2, 0.5F + ThreadLocalRandom.current().nextFloat() * 0.2F); } if (!effect) { if (world.getGameRuleMap().getBoolean("doFireTick")) { GlowBlock block = world.getBlockAt(location); setBlockOnFire(block); for (int i = 0; i < 4; i++) { int x = location.getBlockX() - 1 + ThreadLocalRandom.current().nextInt(3); int z = location.getBlockZ() - 1 + ThreadLocalRandom.current().nextInt(3); int y = location.getBlockY() - 1 + ThreadLocalRandom.current().nextInt(3); block = world.getBlockAt(x, y, z); setBlockOnFire(block); } } for (Entity entity : getNearbyEntities(3, 6, 3)) { if (entity.isDead()) { continue; } if (entity instanceof Damageable) { ((Damageable) entity) .damage(5, this, EntityDamageEvent.DamageCause.LIGHTNING); } if (entity instanceof Pig) { GlowPig pig = (GlowPig) entity; <START> GlowPigZombie zombie = EntityStorage.create(GlowPigZombie.class, location); <END> PigZapEvent event = new PigZapEvent(pig, this, zombie); if (EventFactory.getInstance().callEvent(event).isCancelled()) { zombie.remove(); } pig.remove(); world.spawn(location, zombie, CreatureSpawnEvent.SpawnReason.LIGHTNING); } entity.setFireTicks(entity.getMaxFireTicks()); } } } }</code><technical_language>other attributes custom name copied? equipped saddle dropped</technical_language>

Target:
public void pulse() { super.pulse(); if (getTicksLived() >= ticksToLive) { remove(); } if (getTicksLived() == 1) { GlowWorld world = (GlowWorld) location.getWorld(); if (!isSilent) { world.playSound(location, Sound.ENTITY_LIGHTNING_THUNDER, 10000, 0.8F + ThreadLocalRandom.current().nextFloat() * 0.2F); world.playSound(location, Sound.ENTITY_GENERIC_EXPLODE, 2, 0.5F + ThreadLocalRandom.current().nextFloat() * 0.2F); } if (!effect) { if (world.getGameRuleMap().getBoolean("doFireTick")) { GlowBlock block = world.getBlockAt(location); setBlockOnFire(block); for (int i = 0; i < 4; i++) { int x = location.getBlockX() - 1 + ThreadLocalRandom.current().nextInt(3); int z = location.getBlockZ() - 1 + ThreadLocalRandom.current().nextInt(3); int y = location.getBlockY() - 1 + ThreadLocalRandom.current().nextInt(3); block = world.getBlockAt(x, y, z); setBlockOnFire(block); } } for (Entity entity : getNearbyEntities(3, 6, 3)) { if (entity.isDead()) { continue; } if (entity instanceof Damageable) { ((Damageable) entity) .damage(5, this, EntityDamageEvent.DamageCause.LIGHTNING); } if (entity instanceof Pig) { GlowPig pig = (GlowPig) entity; GlowPigZombie zombie = EntityStorage.create(GlowPigZombie.class, location); PigZapEvent event = new PigZapEvent(pig, this, zombie); if (EventFactory.getInstance().callEvent(event).isCancelled()) { zombie.remove(); } else { zombie.setCustomName(pig.getCustomName()); pig.remove(); world.spawn(location, zombie, CreatureSpawnEvent.SpawnReason.LIGHTNING); } } entity.setFireTicks(entity.getMaxFireTicks()); } } } }