本文整理汇总了Java中org.bukkit.entity.LivingEntity类的典型用法代码示例。如果您正苦于以下问题:Java LivingEntity类的具体用法?Java LivingEntity怎么用?Java LivingEntity使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
LivingEntity类属于org.bukkit.entity包,在下文中一共展示了LivingEntity类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: damageNearbyEnemies
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
private void damageNearbyEnemies(Player player, int dmg)
{
Collection<Entity> enemies = player.getLocation().getWorld().getNearbyEntities(player.getLocation().add(0, 0.5, 0), 3.5f, 1.5f, 3.5f);
for(Entity e : enemies)
{
if(e instanceof LivingEntity && e != (Entity)player)
{
LivingEntity enemy = (LivingEntity)e;
enemy.damage(dmg, (Entity)player);
}
}
}
示例2: call
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
@Override
public void call(Event event) {
if (event instanceof EntityDamageByEntityEvent) {
final EntityDamageByEntityEvent edbe = (EntityDamageByEntityEvent) event;
if (edbe.getEntity() instanceof LivingEntity) {
final LivingEntity le = (LivingEntity) edbe.getEntity();
final Location eye = profile.getPlayer().getEyeLocation();
final double yawBetween = Helper.getYawBetween(eye, le.getLocation());
final double playerYaw = profile.getPlayer().getEyeLocation().getYaw();
final double angleBetween = Math.abs(180 - Math.abs(Math.abs(yawBetween - playerYaw) - 180));
callback(angleBetween >= DISALLOWED_ANGLE && previousAngles.size() >= NEEDED_SAMPLES
&& getAverageAngle() >= DISALLOWED_ANGLE);
previousAngles.put(angleBetween, System.currentTimeMillis());
}
}
}
示例3: spawnCompanion
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
/**
* Spawns a random companion for the player with a random name at the location given
* @param player
* @param location
*/
protected void spawnCompanion(Player player, Location location) {
// Older versions of the server require custom names to only apply to Living Entities
//Bukkit.getLogger().info("DEBUG: spawning compantion at " + location);
if (!islandCompanion.isEmpty() && location != null) {
Random rand = new Random();
int randomNum = rand.nextInt(islandCompanion.size());
EntityType type = islandCompanion.get(randomNum);
if (type != null) {
LivingEntity companion = (LivingEntity) location.getWorld().spawnEntity(location, type);
if (!companionNames.isEmpty()) {
randomNum = rand.nextInt(companionNames.size());
String name = companionNames.get(randomNum).replace("[player]", player.getName());
//plugin.getLogger().info("DEBUG: name is " + name);
companion.setCustomName(name);
companion.setCustomNameVisible(true);
}
}
}
}
示例4: castSpell
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
public void castSpell(final LivingEntity caster, final MobData md, Player target) {
final Location loc = target.getLocation();
if (RMath.flatDistance(caster.getLocation(), loc) < 50) {
RScheduler.schedule(SakiRPG.plugin, new Runnable() {
public void run() {
if (target != null && target.isOnline()) {
for (Entity e : RMath.getNearbyEntities(loc, 2))
if (e instanceof Player)
return;
md.entity.teleport(loc);
md.invuln = System.currentTimeMillis() + 1000;
}
}
});
}
}
示例5: inflictDamage
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
/**
* Inflicts the given damage on an entity.
*
* This method will call the appropriate damage method and fire an {@link EntityDamageEvent}.
*
* @param entity Entity to inflict damage upon
* @param damage Amount of half-hearts of damage to inflict
* @param info {@link DamageInfo} object that details the type of damage
* @return the final {@link Damage} object (never null)
*
* @throws NullPointerException if entity or info is null
* throws IllegalArgumentExcpetion if hearts is less than zero
*/
public static @Nonnull
Damage inflictDamage(@Nonnull LivingEntity entity, int damage, @Nonnull DamageInfo info) {
Preconditions.checkNotNull(entity, "living entity");
Preconditions.checkArgument(damage >= 0, "damage must be greater than or equal to zero");
Preconditions.checkNotNull(info, "damage info");
DamageAPIHelper helper = DamageAPIHelper.get();
EntityDamageEvent event = new EntityDamageEvent(entity, DamageCause.CUSTOM, damage);
helper.setEventDamageInfo(event, info);
Bukkit.getPluginManager().callEvent(event);
if(event.isCancelled()) {
return null;
}
entity.damage(event.getDamage());
helper.setEventDamageInfo(event, null);
return helper.getOurEvent(event).toDamageObject();
}
示例6: getAmmo
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
/**
* This figures out if the gun's ammo is in the entity's inventory.
*
* @param entity the entity to check
* @return the Bullet type found that is valid for this gun, or null.
*/
public Bullet getAmmo(LivingEntity entity) {
if (entity == null || !enabled)
return null;
ItemStack[] inv;
if (entity instanceof InventoryHolder) {
// complex inventory
InventoryHolder holder = (InventoryHolder) entity;
inv = holder.getInventory().getContents();
} else {
// simple inventory
inv = entity.getEquipment().getArmorContents();
}
if (inv != null) {
for (ItemStack item : inv) {
Bullet bullet = AddGun.getPlugin().getAmmo().findBullet(item);
if (bullet != null && this.allBullets.contains(bullet.getName())) {
return bullet;
}
}
}
return null;
}
示例7: getVectorsNormal
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
private ArrayList<Vector> getVectorsNormal(LivingEntity e) {
ArrayList<Vector> vectors = new ArrayList<Vector>();
Vector v = e.getEyeLocation().getDirection().normalize();
v.setY(0);
vectors.add(v);
double z = v.getZ();
double x = v.getX();
double radians = Math.atan(z / x);
if (x < 0)
radians += Math.PI;
for (int k = 1; k < 4; k++) {
Vector v2 = new Vector();
v2.setY(v.getY());
v2.setX(Math.cos(radians + k * Math.PI / 2));
v2.setZ(Math.sin(radians + k * Math.PI / 2));
vectors.add(v2.normalize());
}
return vectors;
}
示例8: hasGun
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
/**
* Check if this living entity has a gun of this type already in possession
* @param entity the entity to check
* @return true if already in inventory, false otherwise.
*/
public boolean hasGun(LivingEntity entity) {
if (entity == null || !enabled)
return false;
ItemStack[] inv;
if (entity instanceof InventoryHolder) {
// complex inventory
InventoryHolder holder = (InventoryHolder) entity;
inv = holder.getInventory().getContents();
} else {
// simple inventory
inv = entity.getEquipment().getArmorContents();
}
if (inv != null) {
for (ItemStack item : inv) {
if (isGun(item)) {
return true;
}
}
}
return false;
}
示例9: onPlayerMove
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
@EventHandler
public void onPlayerMove(PlayerMoveEvent event)
{
if (event.getPlayer().getGameMode() != GameMode.ADVENTURE)
return;
if (event.getPlayer().getAllowFlight())
return;
if (this.hub.getPlayerManager().isBusy(event.getPlayer()))
return;
if (((LivingEntity) event.getPlayer()).isOnGround())
{
event.getPlayer().setAllowFlight(true);
this.allowed.add(event.getPlayer().getUniqueId());
}
}
示例10: onPlayerMove
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerMove(PlayerMoveEvent event) {
Player player = event.getPlayer();
if (!InventoryManager.playerIsLoaded(player)) {
return;
}
PlayerWrapper playerWrapper = InventoryManager.get(player);
if (playerWrapper.hasPet() && playerWrapper.getPet().getPassenger() != player) {
LivingEntity petEntity = playerWrapper.getPet();
PetType pet = PetManager.getPetFromEntity(petEntity, player);
if (pet != null && pet.getRole() != PetType.Role.COMPANION) {
EntityUtils.goPetToPlayer(player, petEntity);
}
}
}
示例11: resolve
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
public @Nullable
DamageInfo resolve(@Nonnull LivingEntity entity, @Nonnull Lifetime lifetime, @Nonnull EntityDamageEvent damageEvent) {
if(damageEvent instanceof EntityDamageByEntityEvent && damageEvent.getCause() == DamageCause.ENTITY_ATTACK) {
EntityDamageByEntityEvent entityEvent = (EntityDamageByEntityEvent) damageEvent;
if(entityEvent.getDamager() instanceof LivingEntity) {
LivingEntity attacker = (LivingEntity) entityEvent.getDamager();
Material weaponMaterial;
ItemStack held = attacker.getEquipment().getItemInMainHand();
if(held != null) {
weaponMaterial = held.getType();
} else {
weaponMaterial = Material.AIR;
}
return new SimpleMeleeDamageInfo(attacker, weaponMaterial);
}
}
return null;
}
示例12: disableAI
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
public void disableAI() {
for (World world : getServer().getWorlds()) {
if (config.ignored_world.contains(world.getName())) {
continue;
}
if (world.getLivingEntities().size() >= this.config.world_entity) {
if (!disableAIWorlds.contains(world.getName())) {
disableAIWorlds.add(world.getName());
getLogger().info("disable entity ai in " + world.getName());
}
for (Chunk chunk : world.getLoadedChunks()) {
int entityCount = getLivingEntityCount(chunk);
if (entityCount >= this.config.chunk_entity) {
for (Entity entity : chunk.getEntities()) {
if (entity instanceof LivingEntity) {
setFromMobSpawner((LivingEntity) entity, true);
}
}
}
}
}
}
}
示例13: getLivingEntities
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
public List<LivingEntity> getLivingEntities() {
List<LivingEntity> list = new ArrayList<LivingEntity>();
for (Object o : world.loadedEntityList) {
if (o instanceof net.minecraft.entity.Entity) {
net.minecraft.entity.Entity mcEnt = (net.minecraft.entity.Entity) o;
Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null
if (bukkitEntity != null && bukkitEntity instanceof LivingEntity) {
list.add((LivingEntity) bukkitEntity);
}
}
}
return list;
}
示例14: execute
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
@Override
public void execute(KingdomFactionsPlayer player) {
setLocation(player.getPlayer().getTargetBlock((Set<Material>) null, 80).getLocation());
SpellExecuteEvent event = new SpellExecuteEvent(executeLocation, this, player);
if (event.isCancelled())
return;
playEffect(executeLocation);
for (Entity e : Utils.getInstance().getNearbyEntities(executeLocation, 3)) {
if (e instanceof LivingEntity) {
LivingEntity en = (LivingEntity) e;
if (e instanceof Player) {
Player p = (Player) e;
if (PlayerModule.getInstance().getPlayer(p).isVanished()) continue;
en.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 5 * 20, 1));
en.addPotionEffect(new PotionEffect(PotionEffectType.WEAKNESS, 5 * 20, 1));
en.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, 5 * 20, 1));
}
}
}
}
示例15: getVectorsFlameWave
import org.bukkit.entity.LivingEntity; //导入依赖的package包/类
private ArrayList<Vector> getVectorsFlameWave(LivingEntity e) {
ArrayList<Vector> vectors = new ArrayList<Vector>();
Vector v = e.getEyeLocation().getDirection().normalize();
v.setY(0);
vectors.add(v);
double z = v.getZ();
double x = v.getX();
double radians = Math.atan(z / x);
if (x < 0)
radians += Math.PI;
for (int k = 1; k < 24; k++) {
Vector v2 = new Vector();
v2.setY(v.getY());
v2.setX(Math.cos(radians + k * Math.PI / 12));
v2.setZ(Math.sin(radians + k * Math.PI / 12));
vectors.add(v2.normalize());
}
return vectors;
}