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

项目:OldBukkit    文件:Metodos.java   
public static void finalizarMvP() {
    setAcontecendo(false);
    setIniciado(false);

    for(Player p : participantes) {
        teleportSaida(p);
    }

    for(Entity mob : mobsSpawnados) {
        ((Damageable) mob).setHealth(0);
    }

    participantes.clear();
    mobsSpawnados.clear();
    Bukkit.getScheduler().cancelTasks(Main.getInstance());
}
项目:Breakpoint    文件:FlagManager.java   
private void damagePlayer(Player target)
{   
    if (!target.isDead())
    {
        if (target.getGameMode() == GameMode.CREATIVE)
            return;

        double newHealth = ((Damageable) target).getHealth() - 1;

        if (newHealth < 0)
            newHealth = 0;

        target.setHealth(newHealth);
        target.setLastDamageCause(new EntityDamageEvent(target, DamageCause.CUSTOM, 1.0));
    }
}
项目:Breakpoint    文件:FlagManager.java   
private void damagePlayer(Player target)
{   
    if (!target.isDead())
    {
        if (target.getGameMode() == GameMode.CREATIVE)
            return;

        double newHealth = ((Damageable) target).getHealth() - 1;

        if (newHealth < 0)
            newHealth = 0;

        target.setHealth(newHealth);
        target.setLastDamageCause(new EntityDamageEvent(target, DamageCause.CUSTOM, 1.0));
    }
}
项目:gFeatures    文件:Damage.java   
public void onEntityDamage(EntityDamageByEntityEvent event){
    if((OrangeTeam.hasPlayer((Player) event.getDamager()) &&  OrangeTeam.hasPlayer((Player) event.getEntity())) || (BlueTeam.hasPlayer((Player) event.getDamager()) &&  BlueTeam.hasPlayer((Player) event.getEntity()))){
        event.setCancelled(true);
    }
    else{
        Player death = (Player) event.getEntity();
        Damageable d = (Damageable) death;
        int health = (int) d.getHealth();
        double damage = event.getDamage();
        if(health - damage <= 0){
            stats.addDeaths((Player)event.getEntity(), 1);
            stats.addKill((Player)event.getDamager(), 1);
            s.flushAll();
        }
    }
}
项目:gFeatures    文件:Damage.java   
public void onWeaponDamage(WeaponDamageEntityEvent event){
    if((OrangeTeam.hasPlayer((Player) event.getPlayer()) &&  OrangeTeam.hasPlayer((Player) event.getVictim())) || (BlueTeam.hasPlayer((Player) event.getPlayer()) &&  BlueTeam.hasPlayer((Player) event.getVictim()))){
        event.setCancelled(true);
    }
    else{
        Player death = (Player) event.getVictim();
        Damageable d = (Damageable) death;
        int health = (int) d.getHealth();
        double damage = event.getDamage();
        if(health - damage <= 0){
            stats.addDeaths((Player)event.getVictim(), 1);
            stats.addKill((Player)event.getPlayer(), 1);
            s.flushAll();
        }
    }
}
项目:Tint-Health    文件:PlayerListener.java   
@EventHandler(ignoreCancelled = true)
protected void onHeal(EntityRegainHealthEvent e) {
    if (isEnabled()) {
        if (!plugin.fade) {
            if (e.getEntity() instanceof Player) {
                Player p = (Player) e.getEntity();
                if (plugin.functions.isTintEnabled(p)) {
                    Damageable d = (Damageable) p;
                    double heal = e.getAmount();
                    int health = (int) (d.getHealth() + heal);
                    plugin.functions.sendBorder(p, health);
                }
            }
        }
    }
}
项目:UltimateSurvivalGames    文件:UserState.java   
public UserState(Player p, Game game) {
    this.game = game;
    this.player = p;
    this.maxhealth = ((Damageable) p).getMaxHealth();
    this.health = ((Damageable) p).getHealth();
    this.food = p.getFoodLevel();
    this.exp = p.getExp();
    this.level = p.getLevel();
    this.fireticks = p.getFireTicks();
    this.loc = p.getLocation();
    this.gamemode = p.getGameMode();
    this.allowFlying = p.getAllowFlight();
    this.flying = p.isFlying();
    this.ape = p.getActivePotionEffects();
    this.fall = p.getFallDistance();
    this.walk = p.getWalkSpeed();
    this.fly = p.getFlySpeed();
    this.heldslot = p.getInventory().getHeldItemSlot();

    ItemStack[][] store = new ItemStack[2][1];
    store[0] = p.getInventory().getContents();
    store[1] = p.getInventory().getArmorContents();
    this.inventory = store;

    StatisticLoader.load(this);
}
项目:Minotaurus    文件:PlayerData.java   
public PlayerData(Player p, Arena a) {
    this.player = p;
    this.a = a;

    inventory = p.getInventory().getContents();
    armor = p.getInventory().getArmorContents();
    gm = player.getGameMode();
    xp = p.getExp();
    level = p.getLevel();
    hunger = p.getExhaustion();
    maxhealth = ((Damageable) p).getMaxHealth();
    health = ((Damageable) p).getHealth();
    flying = p.getAllowFlight();

    player.setGameMode(GameMode.ADVENTURE);
    player.setAllowFlight(false);
    player.setFlying(false);
    player.setSleepingIgnored(true);
    player.setMaxHealth(20.0);
    player.setHealth(20.0);
    player.setExhaustion(20.0F);
    player.setExp(0F);
    player.setLevel(0);
    Utils.clearInventory(player);
    player.updateInventory();
}
项目:ce    文件:HealingShovel.java   
@Override
public boolean effect(Event event, Player player) {
    EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) event;
    if (e.getDamager() == player && e.getEntity() instanceof Player) {
        Player damaged = (Player) e.getEntity();
        e.setDamage(0);
        EffectManager.playSound(damaged.getLocation(), "ENTITY_GENERIC_DRINK", 0.5f, 1f);
        EffectManager.playSound(damaged.getLocation(), "BLOCK_ANVIL_LAND", 0.5f, 2f);
        short currentDur = player.getItemInHand().getDurability();

        if (((Damageable) damaged).getHealth() + Heal <= ((Damageable) damaged).getMaxHealth()) {
            damaged.setHealth(((Damageable) damaged).getHealth() + Heal);
        } else {
            damaged.setHealth(((Damageable) damaged).getMaxHealth());
        }

        if (currentDur + Heal < player.getItemInHand().getType().getMaxDurability()) {
            player.getItemInHand().setDurability((short) (currentDur + Heal));
        } else {
            player.setItemInHand(new ItemStack(Material.AIR, 1));
            EffectManager.playSound(player.getLocation(), "ENTITY_ITEM_BREAK", 0.1f, 0.3f);
        }
        return true;
    }
    return false;
}
项目:ce    文件:Bandage.java   
private void heal(final Player p) {
    p.sendMessage(ChatColor.GREEN + "The bandage covers your wounds.");
    p.setMetadata("ce." + getOriginalName(), new FixedMetadataValue(main, ChatColor.RED + "You are already using a bandage!"));
    if(p.hasMetadata("ce.bleed")) 
        p.removeMetadata("ce.bleed", main);
    new BukkitRunnable() {
        int localCounter = TotalHealTime;
        @Override
        public void run() {
            if(!p.isDead() && localCounter != 0) {
                if(((Damageable) p).getHealth() == ((Damageable) p).getMaxHealth() && StopAtFullHealth) {
                    p.sendMessage(ChatColor.GREEN + "Your wounds have fully recovered.");
                    this.cancel();
                }
                if(((Damageable) p).getHealth() + healBursts <= ((Damageable) p).getMaxHealth())
                    p.setHealth(((Damageable) p).getHealth() + healBursts);
                else
                    p.setHealth(((Damageable) p).getMaxHealth());
            localCounter--;
            } else {
                p.sendMessage(ChatColor.GREEN + "The bandage has recovered some of your wounds.");
                this.cancel();
            }
        }
    }.runTaskTimer(main, 0l, 20l);
}
项目:ce    文件:Deathbringer.java   
@Override
public void effect(Event e, ItemStack item, int level) {
    EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
    Player player = (Player) event.getDamager();
    Entity ent = event.getEntity();

    double trueDamage = strength + (level/10); 
    double currentHealth = ((Damageable) ent).getHealth();

    if(currentHealth > trueDamage) {
        ((Damageable) ent).setHealth(currentHealth-trueDamage);
        EffectManager.playSound(player.getLocation(), "ENTITY_ENDERDRAGON_GROWL", 0.1f, 0.1f);
    }


}
项目:ce    文件:Lifesteal.java   
@Override
public void effect(Event e, ItemStack item, int level) {
    EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
    Player damager = null;

    if(event.getDamager() instanceof Player)
        damager = (Player) event.getDamager();
    else
        damager = (Player) ((Arrow) event.getDamager()).getShooter();

    if(damager.getGameMode().equals(GameMode.CREATIVE))
        return;

    double newHeal = ((Damageable) damager).getHealth() + heal + level;

    if(newHeal < ((Damageable) damager).getMaxHealth())
        damager.setHealth(newHeal);
    else
        damager.setHealth(((Damageable) damager).getMaxHealth());

    EffectManager.playSound(damager.getLocation(), "ENTITY_EXPERIENCE_ORB_PICKUP", 0.3f, 1f);


}
项目:ce    文件:Vampire.java   
@Override
public void effect(Event e, ItemStack item, int level) {
    EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
    Player damager = (Player) event.getDamager();
    if (!getHasCooldown(damager)) { 
        double heal = (((Damageable) damager).getHealth() + (event.getDamage() / damageHealFraction));
        if ( heal < ((Damageable) damager).getMaxHealth()) 
            damager.setHealth(heal);
         else 
            damager.setHealth(((Damageable) damager).getMaxHealth());
        int food = (int) (damager.getFoodLevel() + (event.getDamage() / damageHealFraction));
        if ( food < 20) 
            damager.setFoodLevel(food);
         else 
            damager.setFoodLevel(20);
        EffectManager.playSound(damager.getLocation(), "ENTITY_PLAYER_BURP", 0.4f, 1f);
        generateCooldown(damager, cooldown);
    }
}
项目:ce    文件:Tools.java   
public static void applyBleed(final Player target, final int bleedDuration) {
    target.sendMessage(ChatColor.RED + "You are Bleeding!");
    target.setMetadata("ce.bleed", new FixedMetadataValue(Main.plugin, null));
    new BukkitRunnable() {

        int seconds = bleedDuration;

        @Override
        public void run() {
            if (seconds >= 0) {
                if (!target.isDead() && target.hasMetadata("ce.bleed")) {
                    target.damage(1 + (((Damageable) target).getHealth() / 15));
                    seconds--;
                } else {
                    target.removeMetadata("ce.bleed", Main.plugin);
                    this.cancel();
                }
            } else {
                target.removeMetadata("ce.bleed", Main.plugin);
                target.sendMessage(ChatColor.GREEN + "You have stopped Bleeding!");
                this.cancel();
            }
        }
    }.runTaskTimer(Main.plugin, 0l, 20l);

}
项目:SkyWars    文件:CrossVersion.java   
/**
 * Supports Bukkit earlier than 1.6. TODO: removable?
 */
public static double getMaxHealth(Damageable d) {
    Validate.notNull(d, "Damageable cannot be null");
    try {
        return d.getMaxHealth();
    } catch (NoSuchMethodError ignored) {
        Class<? extends Damageable> dClass = d.getClass();
        try {
            Method healthMethod = dClass.getMethod("getMaxHealth");
            Object obj = healthMethod.invoke(d);
            if (obj instanceof Number) {
                return ((Number) obj).doubleValue();
            } else {
                SkyStatic.getLogger().log(Level.WARNING, "LivingEntity.getHealth returned {0}, which is not a Number!", obj);
            }
        } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
            SkyStatic.getLogger().log(Level.WARNING, "Couldn't find / use .getMaxHealth method of LivingEntity!", ex);
        }
        return 10;
    }
}
项目:Warzone    文件:EntityDamageModule.java   
@EventHandler
public void onProjectileHit(ProjectileHitEvent event) {
    if (event.getEntityType() != EntityType.FISHING_HOOK &&
        event.getEntityType() != EntityType.SNOWBALL &&
        event.getEntityType() != EntityType.EGG) return;
    ProjectileSource shooter = ((Projectile) event.getEntity()).getShooter();
    if (shooter != null && shooter instanceof Player && event.getHitEntity() instanceof Damageable) {
        ((Damageable) event.getHitEntity()).damage(0.01, (Player) shooter);
    }

}
项目:MCLibrary    文件:Players.java   
public static int getMaxHealth(Player player) {
    try {
        Method maxHealthMethod = Damageable.class.getMethod("getMaxHealth");
        return ((Number) maxHealthMethod.invoke(player)).intValue();
    } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
        throw new IllegalStateException(e);
    }
}
项目:MCLibrary    文件:Players.java   
public static void setHealth(Player player, int maxHealth) {
    Optional<Method> setMaxHealthMethod = Stream.of(Damageable.class.getDeclaredMethods())
            .filter(method -> method.getName().equals("setHealth"))
            .findFirst();
    setMaxHealthMethod.ifPresent(method -> {
        try {
            method.invoke(player, maxHealth);
        } catch (IllegalAccessException | InvocationTargetException e) {
            throw new IllegalStateException(e);
        }
    });
}
项目:world-of-icerealm    文件:BreakBlockSession.java   
public void onMonsterDamaged(EntityDamageEvent event) {

    Monster monster = null;
    for (Monster m : _spawnedMonsters) {
        if (m.getEntityId() == event.getEntity().getEntityId()) {
            monster = m;
            break;
        }
    }



    if (monster != null) {

        if (event.getCause() == DamageCause.FIRE_TICK) {
            event.setCancelled(true);
            event.getEntity().setFireTicks(0);
            // lette, hack, shame on me
            return;
        }

        if (!_blockBroken) {
            Damageable mDamage = (Damageable)monster;

            monster.setHealth(mDamage.getMaxHealth());
            //_logger.info("" + monster.getHealth());   
        }
        else {
            monster.damage(event.getDamage());
            //_logger.info("" + monster.getHealth() + " got damaged!!!");
        }
    }
}
项目:world-of-icerealm    文件:Frontier.java   
@EventHandler(priority = EventPriority.NORMAL)
public void onMonsterSpawn(CreatureSpawnEvent event) {

    if (event.getSpawnReason() != SpawnReason.CUSTOM && _activated && event.getEntity() instanceof Monster) {

        double modifier = calculateGlobalModifier(event.getLocation());

        if (modifier > 0.0) {

            // boost le health
            Damageable entityDamage = event.getEntity();
            double maxHealth = entityDamage.getMaxHealth() + (int)(modifier * entityDamage.getMaxHealth());
            try {
                EntityReflection.setEntityPropertyValue(event.getEntity(), EntityReflection.HEALTH, maxHealth);
                ScenarioService.getInstance().updateDamageModifier(event.getEntity(), modifier);
            }
            catch (Exception ex) {
                _logger.info("exception on Frontier!");
            }

            // ajuste les rare drops, rien en diamant dans le premier palier
            if (LocationUtil.getDistanceBetween(event.getLocation(), event.getLocation().getWorld().getSpawnLocation()) <= _divider) {
                RareDropsMultiplierData.getInstance().addEntityRareDropsMultiplier(event.getEntity().getEntityId(), new RareDropsMultipliers(0.25, 0.25, 0.00));
            }
            else {
                RareDropsMultiplierData.getInstance().addEntityRareDropsMultiplier(event.getEntity().getEntityId(), new RareDropsMultipliers(modifier, modifier, modifier));
            }
        }
    }
}
项目:world-of-icerealm    文件:ScenarioService.java   
public Entity spawnCreature(World w, Location l, EntityType t, double modifier, boolean burn) {
    LivingEntity creature = (LivingEntity)this.spawnCreature(w, l, t);

    // refactoring for v1.6.2
    Damageable damageable = (Damageable)creature;
    int maxHealth = (int)damageable.getMaxHealth() + (int)(modifier * damageable.getMaxHealth());


    EntityReflection.setEntityPropertyValue(creature, EntityReflection.HEALTH, maxHealth);
    _customMonster.updateFireproofMonster(creature, burn);
    _customMonster.updateDamageModifierMonster(creature, modifier);
    return creature;
}
项目:Breakpoint    文件:BPPlayer.java   
public void purify()
{
    Player player = getPlayer();

    clearInventory();
    player.setHealth(((Damageable) player).getMaxHealth());
    player.setFoodLevel(15);
    player.setSaturation(Float.MAX_VALUE);
    for (PotionEffect pe : player.getActivePotionEffects())
        player.removePotionEffect(pe.getType());
}
项目:CraftPlugins    文件:Blockode.java   
@EventHandler(priority = EventPriority.NORMAL,ignoreCancelled = true)  //这就是我说的那个监听器了,事件发生时会触发下面这个方法
public void onBedEnter(final PlayerBedEnterEvent e)  {
    /*new BukkitRunnable(){//保证晚上
            @Override
            public void run(){
                gameworld.setTime(111111);
            };
        }.runTaskTimer(Bukkit.getPluginManager().getPlugin("blockode"), 0L, 200L);*/

    final Damageable playerdg=(Damageable)e.getPlayer();
    if(isInList(e.getPlayer()) && playerdg.getHealth()<playerdg.getMaxHealth()){//回血
        new BukkitRunnable(){
            @Override
            public void run(){
                if(playerdg.getHealth()<playerdg.getMaxHealth()&&e.getPlayer().isSleeping()){
                    e.getPlayer().setHealth(playerdg.getHealth()+6);
                }
                else{
                    //e.getPlayer().teleport(e.getPlayer().getLocation());
                    ((CraftPlayer) e.getPlayer()).getHandle().a(true, false, false);
                    e.getBed().setType(Material.AIR);
                    cancel();
                        };
            }
        }.runTaskTimer(Bukkit.getPluginManager().getPlugin("blockode"), 20L, 20L);
    }
    else{
        return;
    }
}
项目:CraftPlugins    文件:Blockode.java   
@EventHandler(priority = EventPriority.NORMAL,ignoreCancelled = true)  //这就是我说的那个监听器了,事件发生时会触发下面这个方法
public void onBedEnter(final PlayerBedEnterEvent e)  {
    /*new BukkitRunnable(){//保证晚上
            @Override
            public void run(){
                gameworld.setTime(111111);
            };
        }.runTaskTimer(Bukkit.getPluginManager().getPlugin("blockode"), 0L, 200L);*/

    final Damageable playerdg=(Damageable)e.getPlayer();
    if(isInList(e.getPlayer()) && playerdg.getHealth()<playerdg.getMaxHealth()){//回血
        new BukkitRunnable(){
            @Override
            public void run(){
                if(playerdg.getHealth()<playerdg.getMaxHealth()&&e.getPlayer().isSleeping()){
                    e.getPlayer().setHealth(playerdg.getHealth()+6);
                }
                else{
                    //e.getPlayer().teleport(e.getPlayer().getLocation());
                    ((CraftPlayer) e.getPlayer()).getHandle().a(true, false, false);
                    e.getBed().setType(Material.AIR);
                    cancel();
                        };
            }
        }.runTaskTimer(Bukkit.getPluginManager().getPlugin("blockode"), 20L, 20L);
    }
    else{
        return;
    }
}
项目:RpgPlus    文件:EntityWrapper.java   
@Override
public LuaValue rawget(LuaValue key) {
    if (key.isstring()) {
        switch (key.checkjstring()) {
            case "health":
                if (entity.getEntity() instanceof Damageable) {
                    return LuaValue.valueOf(((Damageable) entity.getEntity()).getHealth());
                }
                break;
            case "maxHealth":
                if (entity.getEntity() instanceof Damageable) {
                    return LuaValue.valueOf(((Damageable) entity.getEntity()).getMaxHealth());
                }
                break;
            case "name":
                return LuaValue.valueOf(entity.getName());
            case "secondName":
                return LuaValue.valueOf(entity.getSecondName());
            case "invulnerable":
                return LuaValue.valueOf(!entity.isTakingDamage());
            case "nameVisible":
                return LuaValue.valueOf(entity.isNameVisible());
            case "location":
                return ScriptUtil.getLocation(entity.getNpc().getStoredLocation());
            case "worldName":
                return LuaValue.valueOf(entity.getEntity().getWorld().getName());
            case "target":
                return ScriptUtil.getTarget(entity);
            case "bukkitEntity":
                return CoerceJavaToLua.coerce(entity.getEntity());
            case "npc":
                return CoerceJavaToLua.coerce(entity.getNpc());
        }
    }
    return super.rawget(key);
}
项目:RpgPlus    文件:EntityWrapper.java   
@Override
public void rawset(LuaValue key, LuaValue value) {
    if (key.isstring()) {
        switch (key.checkjstring()) {
            case "health":
                if (entity.getEntity() instanceof Damageable) {
                    ((Damageable) entity.getEntity()).setHealth(value.checkdouble());
                }
                break;
            case "maxHealth":
                if (entity.getEntity() instanceof Damageable) {
                    ((Damageable) entity.getEntity()).setMaxHealth(value.checkdouble());
                }
                break;
            case "name":
                entity.setName(ChatColor.translateAlternateColorCodes('&', value.checkjstring()));
                break;
            case "secondName":
                entity.setSecondName(ChatColor.translateAlternateColorCodes('&', value.checkjstring()));
                break;
            case "invulnerable":
                entity.setTakingDamage(!value.checkboolean());
                break;
            case "nameVisible":
                entity.setNameVisible(value.checkboolean());
                break;
            case "target":
                getEntity().getNpc().getNavigator().getLocalParameters().stuckAction(new StuckAction() {

                    @Override
                    public boolean run(NPC npc, Navigator nav) {
                        return true;
                    }
                });
                entity.setTarget(value == LuaValue.NIL ? null : ScriptUtil.getPlayer(value));
                break;
        }
    }
    super.rawset(key, value);
}
项目:RpgPlus    文件:EntityWrapperTest.java   
private void mockDamagableEntity() {
    //create a mocked, minimal creeper
    entity = mock(Creeper.class);
    assumeTrue(entity instanceof Damageable);
    managedEntity = mock(RpgPlusEntity.class);
    when(managedEntity.getEntity()).thenReturn(entity);
}
项目:RpgPlus    文件:EntityWrapperTest.java   
@Test
public void testHealthField() {
    mockDamagableEntity();
    setLuaVariable("entity", new EntityWrapper(managedEntity, mock(EntityEventManager.class)));

    //test if getting health works
    when(((Damageable) entity).getHealth()).thenReturn(42.0);
    assertEquals(42, executeLua("return entity.health").checkdouble(), 0);

    //test if setting health works
    executeLua("entity.health = 21");
    verify((Damageable) entity).setHealth(21);
}
项目:RpgPlus    文件:EntityWrapperTest.java   
@Test
public void testMaximumHealthField() {
    mockDamagableEntity();
    setLuaVariable("entity", new EntityWrapper(managedEntity, mock(EntityEventManager.class)));

    //test if getting maximum health works
    when(((Damageable) entity).getMaxHealth()).thenReturn(42.0);
    assertEquals(42, executeLua("return entity.maxHealth").checkdouble(), 0);

    //test if setting maximum health works
    executeLua("entity.maxHealth = 21");
    verify((Damageable) entity).setMaxHealth(21);
}
项目:Breakpoint    文件:BPPlayer.java   
public void purify()
{
    Player player = getPlayer();

    clearInventory();
    player.setHealth(((Damageable) player).getMaxHealth());
    player.setFoodLevel(15);
    player.setSaturation(Float.MAX_VALUE);
    for (PotionEffect pe : player.getActivePotionEffects())
        player.removePotionEffect(pe.getType());
}
项目:skRayFall    文件:EffCitizenSetMaxHealth.java   
@Override
protected void execute(Event evt) {
  NPCRegistry registry = CitizensAPI.getNPCRegistry();
  NPC npcH = registry.getById(id.getSingle(evt).intValue());
  Damageable npc = (Damageable) npcH.getEntity();
  npc.setMaxHealth(maxHealth.getSingle(evt).doubleValue());
}
项目:StarQuestCode    文件:Knapsack.java   
public Knapsack(Player p) {

        this.hunger = p.getFoodLevel();
        this.health = ((Damageable) p).getHealth();
        this.xp = p.getExp();
        this.xpLevel = p.getLevel();
        this.potions = CardboardPotionEffect.boxPotions(p.getActivePotionEffects());
        this.inventory = new Crate(p.getInventory());
        this.armor = new Crate(p.getInventory().getArmorContents());

    }
项目:StarQuestCode    文件:SQDuties.java   
public void disableDuty(Player p, String group) {

        permission.playerRemoveGroup(p, group + "_duty");
        p.setGameMode(GameMode.SURVIVAL);
        ((Damageable) p).setHealth(20F);
        p.getInventory().clear();
        p.getInventory().setArmorContents(null);
        restoreInv(p.getName());
        restoreLoc(p.getName());
        Database.deleteKey(p.getName());
        p.sendMessage(ChatColor.RED + "Dutymode disabled!");
    }
项目:StarQuestCode    文件:Knapsack.java   
public Knapsack(Player p) {

        this.hunger = p.getFoodLevel();
        this.health = ((Damageable) p).getHealth();
        this.xp = p.getExp();
        this.xpLevel = p.getLevel();
        this.potions = CardboardPotionEffect.boxPotions(p.getActivePotionEffects());
        this.inventory = new Crate(p.getInventory());
        this.armor = new Crate(p.getInventory().getArmorContents());

    }
项目:StarQuestCode    文件:Knapsack.java   
public Knapsack(Player p) {

        this.hunger = p.getFoodLevel();
        this.health = ((Damageable) p).getHealth();
        this.xp = p.getExp();
        this.xpLevel = p.getLevel();
        this.potions = CardboardPotionEffect.boxPotions(p.getActivePotionEffects());
        this.inventory = new Crate(p.getInventory());
        this.armor = new Crate(p.getInventory().getArmorContents());

    }
项目:Pugna    文件:MobLevel.java   
public boolean alter(Entity mob, CreatureType type)
{
    if (pg.config.diffmob != true)
        return true;
    if (type == null)
        return true;

    Damageable mob2 = (Damageable) mob;

    mob2.setMaxHealth(150);
    mob2.setHealth(150);
    return true;
}
项目:ce    文件:Bandage.java   
@Override
public boolean effect(Event event, Player player) {
    if(event instanceof PlayerInteractEvent) {
            if(((Damageable) player).getHealth() != ((Damageable) player).getMaxHealth()) {
                heal(player);
                return true;
            } else
                player.sendMessage(ChatColor.RED + "You do not have any wounds to apply the bandage to!");
    } else if(event instanceof PlayerInteractEntityEvent || event instanceof EntityDamageByEntityEvent) {
        Player toHeal = null;

        if(event instanceof PlayerInteractEntityEvent) {
            toHeal = ((PlayerInteractEntityEvent) event).getPlayer();
        } else if(event instanceof EntityDamageByEntityEvent) {
            EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) event;
            if(e.getDamager() == player && e.getEntity() instanceof Player) {
                e.setDamage(0);
                toHeal = (Player) e.getEntity();
            }
        }

        if(toHeal != null) {
          if(!toHeal.hasMetadata("ce." + getOriginalName()))
            if(((Damageable) toHeal).getHealth() != ((Damageable) toHeal).getMaxHealth()) {
                heal(toHeal);
                player.sendMessage(ChatColor.GREEN + "You have applied a bandage on " + toHeal.getName() + ".");
                toHeal.sendMessage(ChatColor.GREEN + player.getName() + " has applied a bandage on you.");
                return true;
            } else
                player.sendMessage(ChatColor.RED + "Your target does not have any wounds to apply the bandage to!");
          else
              player.sendMessage(ChatColor.RED + "Your target is already using a bandage!");
        }
    }
    return false;
}
项目:HorseMount    文件:HorseMount.java   
@EventHandler
public void onEntityDamage(EntityDamageEvent event) {
    if (event.getEntityType() == EntityType.HORSE && ((LivingEntity) event.getEntity()).getCustomName() != null && ((LivingEntity) event.getEntity()).getCustomName().equalsIgnoreCase("[HM] Display")) {
        event.setCancelled(true);
    }
    if (event.getEntityType() == EntityType.PLAYER && event.getEntity().getVehicle() != null) {
        Damageable p = (Damageable) event.getEntity();
        if (event.getDamage() >= p.getHealth()) {
            Horse h = (Horse) event.getEntity().getVehicle();
            h.remove();
        }
    }
}
项目:kidstimeout    文件:KidsTimeoutEntityListener.java   
@EventHandler
public void onEntityDamageByEntityEvent(EntityDamageByEntityEvent event) {
    Player killer = null;
    Entity entity = event.getEntity();

    if (entity instanceof Player)
        return;

    if (event.getDamage() < ((Damageable)entity).getHealth())
        return;

    if (!plugin.isMobKillPunishable(entity))
        return;

    // track arrows back to the shooter
    if (event.getDamager() instanceof Projectile) {
        Projectile projectile = (Projectile) event.getDamager();
        ProjectileSource source = (ProjectileSource) projectile.getShooter();
        if (!(source instanceof Player))
            return;
        killer = (Player)source;
    }

    if (event.getDamager() instanceof Player)
        killer = (Player)event.getDamager();

    if (killer != null) {
        if (cancel && (!killer.isOp()))
            event.setCancelled(true);

        plugin.getLogger().info("player " + killer.getName() + " killed a " + entity.getType().name().toString());
        plugin.doTimeout(killer);
    }
}
项目:SkyWars    文件:CrossVersion.java   
/**
 * Supports Bukkit earlier than 1.6. TODO: removable?
 */
public static void setHealth(Damageable d, double health) {
    Validate.notNull(d, "Damageable cannot be null");
    try {
        d.setHealth(health);
    } catch (NoSuchMethodError ignored) {
        Class<? extends Damageable> dClass = d.getClass();
        try {
            Method healthMethod = dClass.getMethod("setHealth", Integer.TYPE);
            healthMethod.invoke(d, (int) health);
        } catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
            SkyStatic.getLogger().log(Level.WARNING, "Couldn't find / use .setHealth method of LivingEntity!", ex);
        }
    }
}