1h - Fix Arrows bouncing off entities, remove the arrow after hit.
This commit is contained in:
		
							parent
							
								
									9a3b472e96
								
							
						
					
					
						commit
						38a84c9416
					
				| @ -20,6 +20,7 @@ import org.bukkit.Material; | ||||
| import org.bukkit.block.Block; | ||||
| import org.bukkit.block.BlockFace; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.entity.Arrow; | ||||
| import org.bukkit.entity.Enderman; | ||||
| import org.bukkit.entity.Entity; | ||||
| import org.bukkit.entity.EntityType; | ||||
| @ -790,14 +791,15 @@ public class EngineMain extends Engine | ||||
| 	// -------------------------------------------- // | ||||
| 	 | ||||
| 	@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) | ||||
| 	public void canCombatDamageHappen(EntityDamageEvent event) | ||||
| 	public void canCombatDamageHappen(EntityDamageByEntityEvent event) | ||||
| 	{ | ||||
| 		// TODO: Can't we just listen to the class type the sub is of? | ||||
| 		if (!(event instanceof EntityDamageByEntityEvent)) return; | ||||
| 		EntityDamageByEntityEvent sub = (EntityDamageByEntityEvent)event; | ||||
| 		 | ||||
| 		if (this.canCombatDamageHappen(sub, true)) return; | ||||
| 		if (this.canCombatDamageHappen(event, true)) return; | ||||
| 		event.setCancelled(true); | ||||
| 
 | ||||
| 		Entity damager = event.getDamager(); | ||||
| 		if ( ! (damager instanceof Arrow)) return; | ||||
| 
 | ||||
| 		damager.remove(); | ||||
| 	} | ||||
| 
 | ||||
| 	// mainly for flaming arrows; don't want allies or people in safe zones to be ignited even after damage event is cancelled | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user