Java 类org.bukkit.entity.Bat 实例源码

项目:OpenUHC    文件:Bats.java   
/**
 * Upon a bat's death, drops a golden apple the majority of the time, with a small chance of instantly killing the
 * player.
 *
 * @param event The event
 */
@EventHandler
public void onEntityDeath(EntityDeathEvent event) {
  Entity entity = event.getEntity();
  Player player = event.getEntity().getKiller();
  if (entity instanceof Bat && player != null) {
    if (0.01 > Math.random()) {
      player.damage(Integer.MAX_VALUE, entity);
    } else {
      entity.getWorld().dropItem(entity.getLocation(), new ItemStack(Material.GOLDEN_APPLE));
    }
  }
}
项目:OldBukkit    文件:RemoveBatsRunnable.java   
@Override
public void run()
{
    for (Bat bat : spawnedBats)
    {
        bat.remove();
    }

    spawnedBats.clear();
}
项目:ObsidianDestroyer    文件:SpigotListener.java   
@EventHandler(ignoreCancelled = true)
public void onEntityExplode(BlockExplodeEvent event) {
    if (event == null || ChunkManager.getInstance().getDisabledWorlds().contains(event.getBlock().getLocation().getWorld().getName())) {
        return; // do not do anything in case explosions get cancelled
    }

    final Block detonatorBlock = event.getBlock();

    if (detonatorBlock == null) {
        return;
    }
    if (detonatorBlock.hasMetadata("ObbyEntity")) {
        return;
    }
    if (event.getYield() <= 0) {
        return;
    }

    // feeling batty?! Spawn a bat to tie onto the EntityExplodeEvent.
    try {
        Bat bat = (Bat) Bukkit.getWorld(detonatorBlock.getWorld().getName()).spawnEntity(detonatorBlock.getLocation(), EntityType.BAT);
        if (bat != null) {
            bat.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 100, 1), true);
        }
        // Construct a new event but don't call it.
        EntityExplodeEvent entityExplodeEvent = new EntityExplodeEvent(bat, event.getBlock().getLocation(), event.blockList(), event.getYield());
        ChunkManager.getInstance().handleExplosion(entityExplodeEvent, event.getBlock().getLocation());
        if (bat != null) {
            bat.remove(); // bye
        }
    } catch (Exception e) {
        ObsidianDestroyer.debug(e.toString());
    }
}
项目:OldBukkit    文件:LsMito.java   
public static void setMito(String playerName)
{

    Player newMito = Bukkit.getPlayer(playerName);
    String oldMito = getMito();

    if (newMito != null)
    {
        NewMitoEvent newMitoEvent = new NewMitoEvent(newMito, oldMito);

        Bukkit.getPluginManager().callEvent(newMitoEvent);

        if (ConfigDefaults.spawnBats)
        {
            HashSet<Bat> spawnedBats = new HashSet<>();

            for (int i = 0; i < ConfigDefaults.batsAmout; i++)
            {
                Bat bat = newMito.getWorld().spawn(newMito.getLocation().add(0, .5, 0), Bat.class);

                if (ConfigDefaults.enableBatName)
                {
                    bat.setCustomNameVisible(true);
                    bat.setCustomName(ConfigDefaults.batName.replaceAll("(?i)\\{player\\}", newMito == null ? playerName : newMito.getName()));
                }

                spawnedBats.add(bat);
            }

            Bukkit.getScheduler().scheduleSyncDelayedTask(LsMitoPlugin.getPlugin(), new RemoveBatsRunnable(spawnedBats), ConfigDefaults.batsDespawnDelay * 20);
        }

        if (ConfigDefaults.spawnLightningEffect)
        {
            Vector[] vectors = {new Vector(1.5, 0, 0), new Vector(-1.5, 0, 0), new Vector(0, 0, 1.5), new Vector(0, 0, -1.5)};

            for (Vector vec : vectors)
            {
                newMito.getWorld().strikeLightningEffect(newMito.getLocation().add(vec));
            }
        }
    }

    if (ConfigDefaults.enableRunCommands)
    {
        for (String command : ConfigDefaults.runCommands)
        {
            if (oldMito == null && command.matches(".*(?i)\\{oldmito\\}.*")) continue;

            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command.replaceAll("(?i)\\{oldmito\\}", oldMito).replaceAll("(?i)\\{newmito\\}", newMito == null ? playerName : newMito.getName()));
        }
    }

    Bukkit.getScheduler().runTask(LsMitoPlugin.getPlugin(), new UpdateMitoRunnable());
    Bukkit.broadcastMessage(ConfigDefaults.newMitoMessage.replaceAll("(?i)\\{player\\}", newMito == null ? playerName : newMito.getName()));
    DBFile.setMito(newMito == null ? playerName : newMito.getName());
}
项目:OldBukkit    文件:RemoveBatsRunnable.java   
public RemoveBatsRunnable(HashSet<Bat> spawnedBats) 
{
    this.spawnedBats = spawnedBats;
}
项目:SonarPet    文件:EntityBatPet.java   
@Override
public Bat getBukkitEntity() {
    return (Bat) super.getBukkitEntity();
}
项目:RpgPlus    文件:BatEntityWrapper.java   
BatEntityWrapper(RpgPlusEntity<Bat> entity, EntityEventManager entityEventManager) {
    super(entity, entityEventManager);
}
项目:RpgPlus    文件:BatTrait.java   
@Override
public void onSpawn() {
    Bat bat = (Bat) getNPC().getEntity();
    bat.setAwake(isAwake);
}
项目:RpgPlus    文件:BatTrait.java   
public void setAwake(boolean awake) {
    isAwake = awake;
    if (getNPC().isSpawned()) ((Bat) getNPC().getEntity()).setAwake(awake);
}
项目:CanaryBukkit    文件:CanaryBat.java   
public CanaryBat(net.canarymod.api.entity.living.animal.Bat entity) {
    super(entity);
}
项目:CanaryBukkit    文件:CanaryBat.java   
@Override
protected net.canarymod.api.entity.living.animal.Bat getHandle() {
    return (net.canarymod.api.entity.living.animal.Bat) super.getHandle();
}
项目:EndHQ-Libraries    文件:RemoteBat.java   
public RemoteBat(int inID, EntityManager inManager)
{
    super(inID, RemoteEntityType.Bat, inManager);
}