public L2NpcTemplate getValidTemplate(int bossId) { L2NpcTemplate template = NpcTable.getInstance().getTemplate(bossId); if (template == null) return null; if (!template.isType("L2RaidBoss")) return null; return template; }
private void fillSpawnTable() { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("SELECT * FROM spawnlist"); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { if (template1.isType("L2SiegeGuard")) { // Don't spawn guards, they're spawned during castle sieges. } else if (template1.isType("L2RaidBoss")) { // Don't spawn raidbosses ; raidbosses are supposed to be loaded in another table ! _log.warning( "SpawnTable: RB (" + template1.getIdTemplate() + ") is in regular spawnlist, move it in raidboss_spawnlist."); } else if (!Config.ALLOW_CLASS_MASTERS && template1.isType("L2ClassMaster")) { // Dont' spawn class masters (if config is setuped to false). } else if (!Config.WYVERN_ALLOW_UPGRADER && template1.isType("L2WyvernManager")) { // Dont' spawn wyvern managers (if config is setuped to false). } else { spawnDat = new L2Spawn(template1); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); switch (rset.getInt("periodOfDay")) { case 0: // default spawnDat.init(); _npcSpawnCount++; break; case 1: // Day DayNightSpawnManager.getInstance().addDayCreature(spawnDat); _npcSpawnCount++; break; case 2: // Night DayNightSpawnManager.getInstance().addNightCreature(spawnDat); _npcSpawnCount++; break; } _spawntable.add(spawnDat); } } else { _log.warning( "SpawnTable: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("SpawnTable: Spawn could not be initialized: " + e); } _log.config("SpawnTable: Loaded " + _spawntable.size() + " Npc Spawn Locations."); if (Config.DEBUG) _log.fine( "SpawnTable: Spawning completed, total number of NPCs in the world: " + _npcSpawnCount); }