@Override public void onDisable() { for (Hook hook : hooks) { if (hook.isProvided()) { hook.unload(); } } }
@Override public void onEnable() { registerHooks(); for (Hook hook : hooks) { if (hook.isProvided()) { hook.load(); } } }
@SuppressWarnings("unchecked") @Override public <T extends Hook> T getHook(Class<T> cls) { for (Hook hook : hooks) { if (cls.isAssignableFrom(hook.getClass())) { return (T) hook; } } return null; }