From 36fc89e91579216619605d19aabcb1bf8723450f Mon Sep 17 00:00:00 2001 From: lars <larslukasneuhaus@gmx.de> Date: Fri, 27 Sep 2024 23:42:56 +0200 Subject: [PATCH] added snowball knockback --- .../appliances/snowballKnockback/SnowballKnockback.java | 7 +++++++ .../snowballKnockback/SnowballKnockbackListener.java | 5 ++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockback.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockback.java index dccf065..cc9d54a 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockback.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockback.java @@ -1,12 +1,19 @@ package eu.mhsl.craftattack.spawn.appliances.snowballKnockback; import eu.mhsl.craftattack.spawn.appliance.Appliance; +import org.bukkit.entity.LivingEntity; import org.bukkit.event.Listener; +import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; import java.util.List; public class SnowballKnockback extends Appliance { + public void dealKnockback(LivingEntity entity, Vector velocityVector, double strength, double damage) { + entity.damage(damage); + entity.knockback(strength, -velocityVector.getX(), -velocityVector.getZ()); + } + @Override @NotNull protected List<Listener> listeners() { diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockbackListener.java b/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockbackListener.java index 3fa5852..0667e86 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockbackListener.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliances/snowballKnockback/SnowballKnockbackListener.java @@ -8,12 +8,11 @@ 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.getEntityType().equals(EntityType.SNOWBALL)) return; if(!(event.getHitEntity() instanceof LivingEntity hitEntity)) return; Entity snowball = event.getEntity(); - hitEntity.damage(0.1); - hitEntity.knockback(0.4, -snowball.getVelocity().getX(), -snowball.getVelocity().getZ()); + getAppliance().dealKnockback(hitEntity, snowball.getVelocity(), 0.4, 0.1); } }