public void addListener(PluginListener<T> listener) {
        Validate.notNull(listener, "Listener cannot be null.");
        Validate.isTrue(!listeners.containsKey(listener.getClass()), "Listener cannot already exist!");
        listeners.put(listener.getClass(), listener);
        if (registered)
            listener.register();
    }