类org.bukkit.entity.IronGolem源码实例Demo

下面列出了怎么用org.bukkit.entity.IronGolem的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemDeath(EntityDeathEvent event) {
    if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        event.getDrops().clear();
                    }
                }
            }
        }
    }
}
 
源代码2 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemDeath(EntityDeathEvent event) {
    if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        event.getDrops().clear();
                    }
                }
            }
        }
    }
}
 
源代码3 项目: civcraft   文件: MobListener.java
@EventHandler(priority = EventPriority.NORMAL)
public void onChunkLoad(ChunkLoadEvent event) {
	
	for (Entity e : event.getChunk().getEntities()) {
		if (e instanceof Monster) {
			e.remove();
			return;
		}
		
		if (e instanceof IronGolem) {
			e.remove();
			return;
		}
	}

}
 
源代码4 项目: Slimefun4   文件: TestIronGolemListener.java
private PlayerInteractEntityEvent callIronGolemEvent(EquipmentSlot hand, ItemStack itemInHand) {
    // Fake Player with an Iron Ingot
    Player player = server.addPlayer();

    if (hand == EquipmentSlot.HAND) {
        player.getInventory().setItemInMainHand(itemInHand);
    }
    else {
        player.getInventory().setItemInOffHand(itemInHand);
    }

    // Fake Iron Golem
    IronGolem golem = Mockito.mock(IronGolem.class);
    Mockito.when(golem.getType()).thenReturn(EntityType.IRON_GOLEM);

    // Fake Event
    PlayerInteractEntityEvent event = new PlayerInteractEntityEvent(player, golem, hand);
    listener.onIronGolemHeal(event);
    return event;
}
 
源代码5 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTargetDie(PlayerDeathEvent event) {
    if (Main.isPlayerInGame(event.getEntity())) {
        Game game = Main.getPlayerGameProfile(event.getEntity()).getGame();

        List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
        for (SpecialItem item : golems) {
            Golem golem = (Golem) item;
            IronGolem iron = (IronGolem) golem.getEntity();
            if (iron.getTarget() != null && iron.getTarget().equals(event.getEntity())) {
                iron.setTarget(null);
            }
        }
    }
}
 
源代码6 项目: BedWars   文件: Golem.java
public void spawn() {
    final TeamColor color = TeamColor.fromApiColor(team.getColor());
    final IronGolem golem = (IronGolem) location.getWorld().spawnEntity(location, EntityType.IRON_GOLEM);
    golem.setHealth(health);
    golem.setCustomName(name
            .replace("%teamcolor%", color.chatColor.toString())
            .replace("%team%", team.getName()));
    golem.setCustomNameVisible(showName);
    try {
        golem.setInvulnerable(false);
    } catch (Throwable ignored) {
        // Still can throw an exception on some old versions
    }
    
    entity = golem;

    EntityUtils.makeMobAttackTarget(golem, speed, followRange, -1)
            .getTargetSelector()
            .attackNearestTarget(0, "EntityPlayer");

    game.registerSpecialItem(this);
    Main.registerGameEntity(golem, (org.screamingsandals.bedwars.game.Game) game);
    MiscUtils.sendActionBarMessage(player, i18nonly("specials_golem_created"));

    //TODO - make this better by checking full inventory
    if (item.getAmount() > 1) {
        item.setAmount(item.getAmount() - 1);
    } else {
        player.getInventory().remove(item);
    }

    player.updateInventory();
}
 
源代码7 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTargetDie(PlayerDeathEvent event) {
    if (Main.isPlayerInGame(event.getEntity())) {
        Game game = Main.getPlayerGameProfile(event.getEntity()).getGame();

        List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
        for (SpecialItem item : golems) {
            Golem golem = (Golem) item;
            IronGolem iron = (IronGolem) golem.getEntity();
            if (iron.getTarget() != null && iron.getTarget().equals(event.getEntity())) {
                iron.setTarget(null);
            }
        }
    }
}
 
源代码8 项目: BedWars   文件: Golem.java
public void spawn() {
    final TeamColor color = TeamColor.fromApiColor(team.getColor());
    final IronGolem golem = (IronGolem) location.getWorld().spawnEntity(location, EntityType.IRON_GOLEM);
    golem.setHealth(health);
    golem.setCustomName(name
            .replace("%teamcolor%", color.chatColor.toString())
            .replace("%team%", team.getName()));
    golem.setCustomNameVisible(showName);
    try {
        golem.setInvulnerable(false);
    } catch (Throwable ignored) {
        // Still can throw an exception on some old versions
    }
    
    entity = golem;

    EntityUtils.makeMobAttackTarget(golem, speed, followRange, -1)
            .getTargetSelector()
            .attackNearestTarget(0, "EntityPlayer");

    game.registerSpecialItem(this);
    Main.registerGameEntity(golem, (org.screamingsandals.bedwars.game.Game) game);
    MiscUtils.sendActionBarMessage(player, i18nonly("specials_golem_created"));

    //TODO - make this better by checking full inventory
    if (item.getAmount() > 1) {
        item.setAmount(item.getAmount() - 1);
    } else {
        player.getInventory().remove(item);
    }

    player.updateInventory();
}
 
源代码9 项目: EliteMobs   文件: AggroPrevention.java
@EventHandler
public void onTarget(EntityTargetLivingEntityEvent event) {

    if (EntityTracker.isEliteMob(event.getEntity()) &&
            event.getTarget() != null && EntityTracker.isEliteMob(event.getTarget()) &&
            !(event.getTarget() instanceof IronGolem) && !(event.getEntity() instanceof IronGolem))
        event.setCancelled(true);

}
 
源代码10 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTarget(EntityTargetEvent event) {
	if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        if (event.getTarget() instanceof Player) {
                            final Player player = (Player) event.getTarget();
                            if (game.isProtectionActive(player)) {
                                event.setCancelled(true);
                                return;
                            }

                            if (Main.isPlayerInGame(player)) {
                                if (golem.getTeam() == game.getTeamOfPlayer(player)) {
                                	event.setCancelled(true);
                                    // Try to find enemy
                                    Player playerTarget = MiscUtils.findTarget(game, player, golem.getFollowRange());
                                    if (playerTarget != null) {
                                    	// Oh. We found enemy!
                                        ironGolem.setTarget(playerTarget);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 
源代码11 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTarget(EntityTargetEvent event) {
	if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        if (event.getTarget() instanceof Player) {
                            final Player player = (Player) event.getTarget();
                            if (game.isProtectionActive(player)) {
                                event.setCancelled(true);
                                return;
                            }

                            if (Main.isPlayerInGame(player)) {
                                if (golem.getTeam() == game.getTeamOfPlayer(player)) {
                                	event.setCancelled(true);
                                    // Try to find enemy
                                    Player playerTarget = MiscUtils.findTarget(game, player, golem.getFollowRange());
                                    if (playerTarget != null) {
                                    	// Oh. We found enemy!
                                        ironGolem.setTarget(playerTarget);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 
源代码12 项目: askyblock   文件: IslandGuard1_9.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onLingeringPotionDamage(final EntityDamageByEntityEvent e) {
    if (!IslandGuard.inWorld(e.getEntity().getLocation())) {
        return;
    }
    if (e.getEntity() == null || e.getEntity().getUniqueId() == null) {
        return;
    }
    if (e.getCause().equals(DamageCause.ENTITY_ATTACK) && thrownPotions.containsKey(e.getDamager().getEntityId())) {
        UUID attacker = thrownPotions.get(e.getDamager().getEntityId());
        // Self damage
        if (attacker.equals(e.getEntity().getUniqueId())) {
            return;
        }
        Island island = plugin.getGrid().getIslandAt(e.getEntity().getLocation());
        boolean inNether = false;
        if (e.getEntity().getWorld().equals(ASkyBlock.getNetherWorld())) {
            inNether = true;
        }
        // Monsters being hurt
        if (e.getEntity() instanceof Monster || e.getEntity() instanceof Slime || e.getEntity() instanceof Squid) {
            // Normal island check
            if (island != null && island.getMembers().contains(attacker)) {
                // Members always allowed
                return;
            }
            if (actionAllowed(attacker, e.getEntity().getLocation(), SettingsFlag.HURT_MONSTERS)) {
                return;
            }
            // Not allowed
            e.setCancelled(true);
            return;
        }

        // Mobs being hurt
        if (e.getEntity() instanceof Animals || e.getEntity() instanceof IronGolem || e.getEntity() instanceof Snowman
                || e.getEntity() instanceof Villager) {
            if (island != null && (island.getIgsFlag(SettingsFlag.HURT_MOBS) || island.getMembers().contains(attacker))) {
                return;
            }
            e.setCancelled(true);
            return;
        }

        // Establish whether PVP is allowed or not.
        boolean pvp = false;
        if ((inNether && island != null && island.getIgsFlag(SettingsFlag.NETHER_PVP) || (!inNether && island != null && island.getIgsFlag(SettingsFlag.PVP)))) {
            pvp = true;
        }

        // Players being hurt PvP
        if (e.getEntity() instanceof Player) {
            if (pvp) {
            } else {
                e.setCancelled(true);
            }
        }
    }
}
 
源代码13 项目: askyblock   文件: IslandGuard.java
/**
 * Checks for splash damage. If there is any to any affected entity and it's not allowed, it won't work on any of them.
 * @param e - event
 */
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onSplashPotionSplash(final PotionSplashEvent e) {
    if (DEBUG) {
        plugin.getLogger().info(e.getEventName());
        plugin.getLogger().info("splash entity = " + e.getEntity());
        plugin.getLogger().info("splash entity type = " + e.getEntityType());
        plugin.getLogger().info("splash affected entities = " + e.getAffectedEntities());
        //plugin.getLogger().info("splash hit entity = " + e.getHitEntity());
    }
    if (!IslandGuard.inWorld(e.getEntity().getLocation())) {
        return;
    }
    // Try to get the shooter
    Projectile projectile = e.getEntity();
    if (DEBUG)
        plugin.getLogger().info("splash shooter = " + projectile.getShooter());
    if (projectile.getShooter() != null && projectile.getShooter() instanceof Player) {
        Player attacker = (Player)projectile.getShooter();
        // Run through all the affected entities
        for (LivingEntity entity: e.getAffectedEntities()) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: affected splash entity = " + entity);
            // Self damage
            if (attacker.equals(entity)) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Self damage from splash potion!");
                continue;
            }
            Island island = plugin.getGrid().getIslandAt(entity.getLocation());
            boolean inNether = false;
            if (entity.getWorld().equals(ASkyBlock.getNetherWorld())) {
                inNether = true;
            }
            // Monsters being hurt
            if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) {
                // Normal island check
                if (island != null && island.getMembers().contains(attacker.getUniqueId())) {
                    // Members always allowed
                    continue;
                }
                if (actionAllowed(attacker, entity.getLocation(), SettingsFlag.HURT_MONSTERS)) {
                    continue;
                }
                // Not allowed
                Util.sendMessage(attacker, ChatColor.RED + plugin.myLocale(attacker.getUniqueId()).islandProtected);
                e.setCancelled(true);
                return;
            }

            // Mobs being hurt
            if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman
                    || entity instanceof Villager) {
                if (island != null && (island.getIgsFlag(SettingsFlag.HURT_MOBS) || island.getMembers().contains(attacker.getUniqueId()))) {
                    continue;
                }
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Mobs not allowed to be hurt. Blocking");
                Util.sendMessage(attacker, ChatColor.RED + plugin.myLocale(attacker.getUniqueId()).islandProtected);
                e.setCancelled(true);
                return;
            }

            // Establish whether PVP is allowed or not.
            boolean pvp = false;
            if ((inNether && island != null && island.getIgsFlag(SettingsFlag.NETHER_PVP) || (!inNether && island != null && island.getIgsFlag(SettingsFlag.PVP)))) {
                if (DEBUG) plugin.getLogger().info("DEBUG: PVP allowed");
                pvp = true;
            }

            // Players being hurt PvP
            if (entity instanceof Player) {
                if (pvp) {
                    if (DEBUG) plugin.getLogger().info("DEBUG: PVP allowed");
                } else {
                    if (DEBUG) plugin.getLogger().info("DEBUG: PVP not allowed");
                    Util.sendMessage(attacker, ChatColor.RED + plugin.myLocale(attacker.getUniqueId()).targetInNoPVPArea);
                    e.setCancelled(true);
                    return;
                }
            }
        }
    }
}
 
 类所在包
 类方法
 同包方法