--- a/net/minecraft/world/entity/projectile/SpectralArrow.java
+++ b/net/minecraft/world/entity/projectile/SpectralArrow.java
@@ -12,6 +12,7 @@
 import net.minecraft.world.level.Level;
 
 public class SpectralArrow extends AbstractArrow {
+
     public int duration = 200;
 
     public SpectralArrow(EntityType<? extends SpectralArrow> type, Level world) {
@@ -30,15 +31,17 @@
     public void tick() {
         super.tick();
         if (this.level().isClientSide && !this.inGround) {
-            this.level().addParticle(ParticleTypes.INSTANT_EFFECT, this.getX(), this.getY(), this.getZ(), 0.0, 0.0, 0.0);
+            this.level().addParticle(ParticleTypes.INSTANT_EFFECT, this.getX(), this.getY(), this.getZ(), 0.0D, 0.0D, 0.0D);
         }
+
     }
 
     @Override
     protected void doPostHurtEffects(LivingEntity target) {
         super.doPostHurtEffects(target);
-        MobEffectInstance mobEffectInstance = new MobEffectInstance(MobEffects.GLOWING, this.duration, 0);
-        target.addEffect(mobEffectInstance, this.getEffectSource());
+        MobEffectInstance mobeffect = new MobEffectInstance(MobEffects.GLOWING, this.duration, 0);
+
+        target.addEffect(mobeffect, this.getEffectSource(), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ARROW); // CraftBukkit
     }
 
     @Override
@@ -47,6 +50,7 @@
         if (nbt.contains("Duration")) {
             this.duration = nbt.getInt("Duration");
         }
+
     }
 
     @Override
