/* * 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 . */ package com.l2jserver.gameserver.handler; import java.io.File; import java.util.HashMap; import java.util.Map; import com.l2jserver.gameserver.model.effects.L2Effect; import com.l2jserver.gameserver.scripting.L2ScriptEngineManager; /** * @author BiggBoss, UnAfraid */ public final class EffectHandler implements IHandler, String> { private final Map> _handlers; protected EffectHandler() { _handlers = new HashMap<>(); } @Override public void registerHandler(Class handler) { _handlers.put(handler.getSimpleName(), handler); } @Override public synchronized void removeHandler(Class handler) { _handlers.remove(handler.getSimpleName()); } @Override public final Class getHandler(String name) { return _handlers.get(name); } @Override public int size() { return _handlers.size(); } public void executeScript() { try { File file = new File(L2ScriptEngineManager.SCRIPT_FOLDER, "handlers/EffectMasterHandler.java"); L2ScriptEngineManager.getInstance().executeScript(file); } catch (Exception e) { throw new Error("Problems while running EffectMansterHandler", e); } } private static final class SingletonHolder { protected static final EffectHandler _instance = new EffectHandler(); } public static EffectHandler getInstance() { return SingletonHolder._instance; } }