added snowball knockback
This commit is contained in:
		| @@ -1,7 +1,7 @@ | ||||
| package eu.mhsl.craftattack.spawn.appliances.customAdvancements; | ||||
|  | ||||
| import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; | ||||
| import org.bukkit.entity.Entity; | ||||
| import org.bukkit.Material; | ||||
| import org.bukkit.entity.Player; | ||||
| import org.bukkit.event.EventHandler; | ||||
| import org.bukkit.event.entity.EntityDamageByEntityEvent; | ||||
| @@ -9,12 +9,11 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; | ||||
| public class CustomAdvancementsDamageEntityListener extends ApplianceListener<CustomAdvancements> { | ||||
|     @EventHandler | ||||
|     public void onEntityDamageEntity(EntityDamageByEntityEvent event) { | ||||
|         Entity damaged = event.getEntity(); | ||||
|         if(!(damaged instanceof Player)) return; | ||||
|         Entity damager = event.getDamager(); | ||||
|         if(!(damager instanceof Player)) return; | ||||
|         if(damaged.hasPermission("admin")) { | ||||
|             getAppliance().grantAdvancement("search_trouble", (Player) damager); | ||||
|         } | ||||
|         if(!(event.getEntity() instanceof Player damaged)) return; | ||||
|         if(!(event.getDamager() instanceof Player damager)) return; | ||||
|         if(!damager.getInventory().getItemInMainHand().getType().equals(Material.AIR)) return; | ||||
|         if(!damaged.hasPermission("admin")) return; | ||||
|  | ||||
|         getAppliance().grantAdvancement("search_trouble", damager); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,15 @@ | ||||
| package eu.mhsl.craftattack.spawn.appliances.snowballKnockback; | ||||
|  | ||||
| import eu.mhsl.craftattack.spawn.appliance.Appliance; | ||||
| import org.bukkit.event.Listener; | ||||
| import org.jetbrains.annotations.NotNull; | ||||
|  | ||||
| import java.util.List; | ||||
|  | ||||
| public class SnowballKnockback extends Appliance { | ||||
|     @Override | ||||
|     @NotNull | ||||
|     protected List<Listener> listeners() { | ||||
|         return List.of(new SnowballKnockbackListener()); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| package eu.mhsl.craftattack.spawn.appliances.snowballKnockback; | ||||
|  | ||||
| import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; | ||||
| import org.bukkit.entity.*; | ||||
| import org.bukkit.event.EventHandler; | ||||
| import org.bukkit.event.entity.ProjectileHitEvent; | ||||
|  | ||||
| public class SnowballKnockbackListener extends ApplianceListener<SnowballKnockback> { | ||||
|     @EventHandler | ||||
|     public void onSnowballHit(ProjectileHitEvent event) { | ||||
|         if(!event.getEntityType().equals(EntityType.SNOWBALL)) return; | ||||
|         if(event.getHitEntity() == null) return; | ||||
|         if(!(event.getHitEntity() instanceof LivingEntity hitEntity)) return; | ||||
|  | ||||
|         Entity snowball = event.getEntity(); | ||||
|         hitEntity.damage(0.0001); | ||||
|         hitEntity.knockback(0.4, -snowball.getVelocity().getX(), -snowball.getVelocity().getZ()); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user