Compare commits

..

4 Commits

Author SHA1 Message Date
3c1dea3451 Merge remote-tracking branch 'origin/master' 2024-09-27 23:43:12 +02:00
36fc89e915 added snowball knockback 2024-09-27 23:42:56 +02:00
7a15984f19 added snowball knockback 2024-09-27 23:35:01 +02:00
87870c96f7 added snowball knockback 2024-09-27 23:32:28 +02:00
3 changed files with 47 additions and 8 deletions

View File

@ -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);
}
}

View File

@ -0,0 +1,22 @@
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() {
return List.of(new SnowballKnockbackListener());
}
}

View File

@ -0,0 +1,18 @@
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.getHitEntity() == null) return;
if(!event.getEntityType().equals(EntityType.SNOWBALL)) return;
if(!(event.getHitEntity() instanceof LivingEntity hitEntity)) return;
Entity snowball = event.getEntity();
getAppliance().dealKnockback(hitEntity, snowball.getVelocity(), 0.4, 0.1);
}
}