public void call(String type, Object... params) {
        if (!methods.containsKey(type)) {
            throw new IllegalArgumentException("Not enough type");
        }
        Map<Method, Object> methods = this.methods.get(type);
        for (Map.Entry<Method, Object> entry : methods.entrySet()) {
            try {
                entry.getKey().invoke(entry.getValue(), params);
            } catch (IllegalAccessException | InvocationTargetException e) {
                e.printStackTrace();
            }
        }
    }