Jump to content
  • 0

Raid Boss Info Npc Code


Question

Posted
package net.sf.l2j.gameserver.instancemanager;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;

import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;

public class RaidBossInfoManager
{
   private static final Logger _log = Logger.getLogger(RaidBossInfoManager.class.getName());
  
   private final Map<Integer, Long> _raidBosses;
  
   public static RaidBossInfoManager getInstance()
   {
       return SingletonHolder._instance;
   }
  
   protected RaidBossInfoManager()
   {
       _raidBosses = new ConcurrentHashMap<>();
       load();
   }
  
   public void load()
   {
       try (Connection con = L2DatabaseFactory.getInstance().getConnection())
       {
           PreparedStatement statement;
           ResultSet rs;
          
           statement = con.prepareStatement("SELECT boss_id, respawn_time FROM grandboss_data UNION SELECT boss_id, respawn_time FROM raidboss_spawnlist ORDER BY boss_id");
           rs = statement.executeQuery();
           while (rs.next())
           {
               int bossId = rs.getInt("boss_id");
               if (Config.LIST_RAID_BOSS_IDS.contains(bossId))
                   _raidBosses.put(bossId, rs.getLong("respawn_time"));
           }
           rs.close();
           statement.close();
       }
       catch (Exception e)
       {
           e.printStackTrace();
       }
      
       _log.info("RaidBossInfoManager: Loaded " + _raidBosses.size() + " instances.");
   }
  
   public void updateRaidBossInfo(int bossId, long respawnTime)
   {
       _raidBosses.put(bossId, respawnTime);
   }
  
   public long getRaidBossRespawnTime(int bossId)
   {
       return _raidBosses.get(bossId);
   }
  
   private static class SingletonHolder
   {
       protected static final RaidBossInfoManager _instance = new RaidBossInfoManager();
   }
}

L2j_a_Cis_1.png

if (Config.LIST_RAID_BOSS_IDS.contains(bossId))

Config.java

public static List<Integer> LIST_RAID_BOSS_IDS;


LIST_RAID_BOSS_IDS = new ArrayList<>();
           for (String val : RAID_BOSS_IDS.split(","))
           {
               int npcId = Integer.parseInt(val);
               LIST_RAID_BOSS_IDS.add(npcId);
           }

Need someones help please!

 

aCis 364

7 answers to this question

Recommended Posts

  • 0
Posted (edited)

Alright... as 364 loads all configs in 1 function go to :

go to configs

public static final void loadGameServer()

 

and load your custom file there... take an example from other like 

loadNpcs();
Edited by melron
  • 0
Posted (edited)

image.png

 

Here is the config(if I got what you ask me) in gameserver/config/custom.properties
and it reads it in Config.java with this

RAID_BOSS_IDS = custom.getProperty("RaidBossIds", "0,0");
LIST_RAID_BOSS_IDS = new ArrayList<>();
    for (String val : RAID_BOSS_IDS.split(","))
        {
            int npcId = Integer.parseInt(val);
            LIST_RAID_BOSS_IDS.add(npcId);
        }
Edited by NickTs
  • 0
Posted (edited)

If you will post ur correct RaidBossInfoManager here we will check this... 3rd error saying error in  85 line.... but u gave as a code with 70 lines...

 

1st error (59 line)

}

2nd error (44 line)

}

3rd error (85 line)


4th error (38 line)

rs = statement.executeQuery();
Edited by melron
  • 0
Posted (edited)

/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.instancemanager;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;

import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;

/**
 * @author rapfersan92
 */
public class RaidBossInfoManager
{
   private static final Logger _log = Logger.getLogger(RaidBossInfoManager.class.getName());
  
   private final Map<Integer, Long> _raidBosses;
  
   public static RaidBossInfoManager getInstance()
   {
       return SingletonHolder._instance;
   }
  
   protected RaidBossInfoManager()
   {
       _raidBosses = new ConcurrentHashMap<>();
       load();
   }
  
   public void load()
   {
       try (Connection con = L2DatabaseFactory.getInstance().getConnection())
       {
           PreparedStatement statement;
           ResultSet rs;
          
           statement = con.prepareStatement("SELECT boss_id, respawn_time FROM grandboss_data UNION SELECT boss_id, respawn_time FROM raidboss_spawnlist ORDER BY boss_id");
           rs = statement.executeQuery();
           while (rs.next())
           {
               int bossId = rs.getInt("boss_id");
               if (Config.LIST_RAID_BOSS_IDS.contains(bossId))
                   _raidBosses.put(bossId, rs.getLong("respawn_time"));
           }
           rs.close();
           statement.close();
       }
       catch (Exception e)
       {
           e.printStackTrace();
       }
      
       _log.info("RaidBossInfoManager: Loaded " + _raidBosses.size() + " instances.");
   }
  
   public void updateRaidBossInfo(int bossId, long respawnTime)
   {
       _raidBosses.put(bossId, respawnTime);
   }
  
   public long getRaidBossRespawnTime(int bossId)
   {
       return _raidBosses.get(bossId);
   }
  
   private static class SingletonHolder
   {
       protected static final RaidBossInfoManager _instance = new RaidBossInfoManager();
   }
}

Did not post the whole thing sorry for the inconvenience.

 

 

if (Config.LIST_RAID_BOSS_IDS.contains(bossId))
load();
protected static final RaidBossInfoManager _instance = new RaidBossInfoManager();
return SingletonHolder._instance;

Also in the Gameserver.java

 

 

RaidBossInfoManager.getInstance();
gameServer = new GameServer();
Edited by NickTs
  • 0
Posted (edited)

Oh yeah I figured out what you wanted to point out.

 

Worked! Thanks a lot for the help! Lock it!  ;D

Edited by NickTs
  • 0
Posted

Oh yeah I figured out what you wanted to point out.

 

Worked! Thanks a lot for the help! Lock it!  ;D

np :)

Guest
This topic is now closed to further replies.
×
×
  • Create New...