Setting a mobs target

Discussion in 'Plugin Development' started by AstramG, Apr 16, 2013.

Thread Status:
Not open for further replies.
  1. Offline

    AstramG

    I've tried using this code however, it doesn't work! The hashmap is correctly set up as:

    HashMap<UUID, String> minionIds = new HashMap<UUID, String>();

    However, it's very odd this wont work:
    Code:
    @EventHandler
        public void sendMinion(PlayerInteractEntityEvent event) {
            Entity entity = event.getRightClicked();
            Player player = event.getPlayer();
            if (player.getItemInHand().getType() == Material.APPLE) {
                List<Entity> entities = Bukkit.getWorld(player.getWorld().getName()).getEntities();
                for (int i = 0; i < entities.size(); i ++) {
                    if (minionIds.containsValue(entities.get(i).getUniqueId())) {
                        UUID id = entities.get(i).getUniqueId();
                        if (minionIds.get(id).equalsIgnoreCase(player.getName())) {
                            Monster mob = (Monster) entities.get(i);
                            mob.setTarget((LivingEntity) entity);
                        }
                    }
                }
            }
        }
     
  2. Offline

    Spikes

  3. Offline

    AstramG

  4. Offline

    Spikes

    Really don't know. I never modified a mob
     
  5. Offline

    AstramG

    Thanks for your help :), but I really need this :p

    Anyone else?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 1, 2016
  6. Offline

    TomTheDeveloper

    You need to create a new class, here is a tutorial of it:tutorial click here
    But if you don't understand it, just ask it to me, I can explain it, and give you an example
     
  7. Offline

    gopro_2027

    you need to use creature instead of living entity. heres pieces of it used in my golem plugin
    Code:
    final Creature entity = (Creature) Bukkit.getWorld(worldName).spawnEntity(loc, EntityType.IRON_GOLEM);
    if(randomEntity1 instanceof Player) {
    entity.getTarget();
    entity.setTarget((Player) randomEntity1);
    }
    and heres a full plugin. you can just paste it in for yourself to see that it works ;)
    Code:
    package me.gopro2027.SentryGun;
     
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.World;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Creature;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.LivingEntity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
     
    public class Main extends JavaPlugin implements Listener {
        LivingEntity entity;
        Player player;
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player) {
                final Player player = (Player) sender;
                if(cmd.getName().equalsIgnoreCase("turret") && player.hasPermission("turret.spawn")) {
                    Location loc = player.getLocation();
                        World w = Bukkit.getServer().getWorld("world");
                        double y = loc.getY();
                        double x = loc.getX();
                        double z = loc.getZ();
                        Location sentry = new Location(w,x,y,z);
                        final Creature entity = (Creature) Bukkit.getWorld("world").spawnEntity(sentry, EntityType.SNOWMAN);
                        entity.setMaxHealth(250.0);
                        entity.setHealth(250.0);
                        entity.setTicksLived(20 * 20);
                        entity.setRemoveWhenFarAway(true);
                        entity.setCanPickupItems(true);
                        entity.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 100000, 10));
                        entity.getEquipment().setHelmet(new ItemStack(Material.AIR, 1));
                        entity.getEquipment().setHelmetDropChance(0.0F);
                        entity.getEntityId();
                       
               
                Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                    @SuppressWarnings("deprecation")
                    public void run() {
                        Player anyplayer = (Player) player;
                        entity.getTarget();
                        entity.setTarget(anyplayer);
                        entity.throwSnowball();
                       
                               
                   
                    }
                    }
                , 1, 1);
                }
            }
            return false;
       
        }
        }
            
     
Thread Status:
Not open for further replies.

Share This Page