I have an little crazy problem with HashMap
when i register an new events like my custom TownInvasion
it's show OK registered in DATATABLESOFEVENT and count of HashMap is 1
Code: Select all
EventManager.getInstance().registerPrimalEvent(new TownInvasionManager());
but when i call openMenu DATATABLESOFEVENT is null ...
i dont understund why
Code: Select all
public class EventManager extends L2Script{ public static final int NPC_ID_PRIMALHELPER = 1000008; private Map<String, IPrimalEventManager> DATATABLESOFEVENT; public EventManager(){ super(-1, "EventManager", "custom EventManager"); DATATABLESOFEVENT = new HashMap<String, IPrimalEventManager>(); _log.info("Event constructor"); } public void registerPrimalEvent(IPrimalEventManager pem){ _log.info("new event loaded -> "+ pem.getEventName().toLowerCase()); DATATABLESOFEVENT.put(pem.getEventName().toLowerCase(),pem); } public int size() { return DATATABLESOFEVENT.size(); } public IPrimalEventManager getPrimalEvent(String name){ return DATATABLESOFEVENT.get(name.toLowerCase()); } public void openMenu(String command, L2PcInstance activeChar){ NpcHtmlMessage html = new NpcHtmlMessage(1000008); String htmlrender = ""; htmlrender += "<html><body>"; htmlrender += "Primal EventManager:<br>"; htmlrender += "<br>"; _log.info("gen menu -> events : " + size()); for( Map.Entry<String, IPrimalEventManager> primalEventd : DATATABLES.entrySet()){ _log.info(" Event key -> " + primalEventd.getKey()); htmlrender += primalEventd.getValue().getEventName(); } htmlrender += "</center><br>"; htmlrender += "</body></html>"; html.setHtml(htmlrender); activeChar.sendPacket(html); } public static EventManager getInstance() { return SingletonHolder._instance; } private static class SingletonHolder { protected static final EventManager _instance = new EventManager(); } public static void main(String[] args) { AdminCommandHandler.getInstance().registerHandler(new EventManagerCmd()); EventManager.getInstance(); }}