From 498d96267b92aee56437b15f514daf82ee6f3db9 Mon Sep 17 00:00:00 2001 From: Minecon724 Date: Sat, 29 Jan 2022 15:10:18 +0100 Subject: [PATCH] amog --- src/main/java/pl/minecon724/giants/Main.java | 26 ++++++++++++++++++-- src/main/resources/config.yml | 2 ++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/pl/minecon724/giants/Main.java b/src/main/java/pl/minecon724/giants/Main.java index f96d150..7767117 100644 --- a/src/main/java/pl/minecon724/giants/Main.java +++ b/src/main/java/pl/minecon724/giants/Main.java @@ -1,7 +1,10 @@ package pl.minecon724.giants; import java.io.File; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Random; @@ -20,15 +23,18 @@ import org.bukkit.event.entity.EntitySpawnEvent; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; +import org.bukkit.scheduler.BukkitRunnable; public class Main extends JavaPlugin implements Listener { File configFile = new File(getDataFolder(), "config.yml"); FileConfiguration config; Random rnd = new Random(); + List giants = new ArrayList(); boolean ai; double chance; + double attackDamage; Map effects = new HashMap(); @Override @@ -40,6 +46,7 @@ public class Main extends JavaPlugin implements Listener { ai = config.getBoolean("ai"); chance = config.getDouble("chance"); + attackDamage = config.getDouble("attackDamage"); for (Object s : config.getList("effects")) { try { String[] parts = ((String) s).split(":"); @@ -60,6 +67,17 @@ public class Main extends JavaPlugin implements Listener { } getServer().getPluginManager().registerEvents(this, this); + new BukkitRunnable() { + @Override + public void run() { + for (Entity e : giants) { + Collection nearby = e.getWorld().getNearbyEntities(e.getBoundingBox().expand(4D, 1D, 4D)); + for (Entity n : nearby) { + ((LivingEntity) n).damage(attackDamage, e); + } + } + } + }.runTaskTimer(this, 20L, 0L) } @EventHandler @@ -75,12 +93,16 @@ public class Main extends JavaPlugin implements Listener { Entity spawnGiant(boolean ai, Location pos) { LivingEntity entity = (LivingEntity) pos.getWorld().spawnEntity(pos, EntityType.GIANT); if (ai) { - entity.addPassenger(pos.getWorld().spawnEntity(pos, EntityType.HUSK)); + Entity passenger = pos.getWorld().spawnEntity(pos, EntityType.HUSK); + new PotionEffect(PotionEffectType.INVISIBILITY, Integer.MAX_VALUE, 1).apply((LivingEntity) passenger); + passenger.setInvulnerable(true); + entity.addPassenger(passenger); } for (Entry t : effects.entrySet()) { PotionEffect effect = new PotionEffect(t.getKey(), Integer.MAX_VALUE, t.getValue()); effect.apply(entity); } - return null; + giants.add((Entity) entity); + return entity; } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index fe2fb62..a6b1b6e 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,8 +1,10 @@ ai: true +attackDamage: 1.0 # Spawning chance, from 0 to 1 chance: 0.02 # Additional potion effects # type:amplifier # See https://hub.spigotmc.org/javadocs/spigot/org/bukkit/potion/PotionEffectType.html +# Set to [] to disable effects: - "JUMP:2" \ No newline at end of file