@Override
    public void onEnable() {
        setConstant(this);
        long time = System.currentTimeMillis();
        this.getDataFolder().mkdir();
        this.saveDefaultConfig();
        FileConfiguration config = getConfig();
        log = config.getBoolean("Log.Enabled", true);
        if (config.getDouble("Config.Version") < Double.parseDouble(this.getDescription().getVersion().substring(0, 1))) {
            File file = new File(this.getDataFolder(), "/config.yml");
            if (!file.exists())
                this.saveDefaultConfig();
        }
        DEFAULT_ADMIN = config.getString("Label.Console", "Server");
        DEFAULT_REASON = config.getString("Label.Reason", "Unsure");
        DEFAULT_DENY_MESSAGE = ChatColor.RED + config.getString("Messages.Permission", "You do not have the required permissions.");

        PluginManager pm = getServer().getPluginManager();
        pm.registerEvents(new UltraBanPlayerListener(this), this);
        loadCommands();

        PluginDescriptionFile pdf = this.getDescription();
        //Storage
        if (config.getString("Database").equalsIgnoreCase("mysql"))
            db = new SQL(this);
        else
            db = new SQLite(this);
        db.load();
        //Sync
        if (config.getBoolean("Sync.Enabled", false)) {
            long t = config.getLong("Sync.Timing", 72000L);
            this.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
                @Override
                public void run() {
                    onDisable();
                    db.load();
                }
            }, 1, t);
        }
        //Updater
        if (config.getBoolean("AutoUpdater.Enabled", true)) {
            Updater up = new Updater(this, pdf.getName().toLowerCase(), this.getFile(), UpdateType.DEFAULT, true);
            if (!up.getResult().equals(UpdateResult.SUCCESS) || up.pluginFile(this.getFile().getName()))
                if (up.getResult().equals(UpdateResult.FAIL_NOVERSION))
                    this.getLogger().info("Unable to connect to dev.bukkit.org.");
                else
                    this.getLogger().info("No Updates found on dev.bukkit.org.");
            else
                this.getLogger().info("Update " + up.getLatestVersionString() + " found please restart your server.");
        }
        this.getLogger().info("Loaded. " + ((long) (System.currentTimeMillis() - time) / 1000) + " secs.");
    }