@Override
    public void onEnable() {
        if (getServer().getPluginManager().getPlugin("Vault") == null) {
            getLogger().severe("Disabling plugin, Vault not found");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }

        getCommand("rankup").setExecutor(new RankupCommand(this));
        
        getServer().getPluginManager().registerEvents(new SignListener(this), this);
        
        if (!reloadRanks()) {
            getLogger().log(Level.SEVERE, "Disabling plugin, invalid configuration.");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }
        if (!reloadTranslations()) {
            getLogger().log(Level.SEVERE, "Disabling plugin, invalid configuration.");
            getServer().getPluginManager().disablePlugin(this);
            return;
        }
        // Delay economy and permissions init until after all
        // plugins are loaded.
        getServer().getScheduler().runTask(this, new Runnable() {
            @Override
            public void run() {
                try {
                    setupPermissions();
                } catch (IllegalStateException e) {
                    getLogger().severe(e.getMessage());
                    getPluginLoader().disablePlugin(Main.this);
                    return;
                }
                try {
                    setupEconomy();
                } catch (IllegalStateException e) {
                    getLogger().severe(e.getMessage());
                    getPluginLoader().disablePlugin(Main.this);
                }
            }
        });
    }