@Override
    public void onDisable() {
        Iterator<Injectable> it = injected.iterator();

        while (it.hasNext()) {
            Injectable i = it.next();

            if (i instanceof InjectablePlugin) {
                Bukkit.getPluginManager().disablePlugin((InjectablePlugin) i);
            }

            if (i instanceof Listener) {
                HandlerList.unregisterAll((Listener) i);
            }

            try {
                i.setInjected(false);
            } catch (Throwable t) {
                t.printStackTrace();
            }

            it.remove();
        }
    }