@Override
  public void onEnable() {
    inst = this;

    // Config
    getConfig().options().copyDefaults(true);
    saveConfig();

    // Setup database
    Infractions.setDatabase(new LegacyDatabase());
    Infractions.setDefaultOrigin(
        new Origin(Bukkit.getServerName(), Bukkit.getServerName(), OriginType.SERVER));

    getLogger().info("Initializing.");

    // Handle data
    DataManager.initAllData();
    LegacyData.asyncConvert();
    LegacyData.asyncConvertIds();

    loadCommands();
    loadListeners();
    loadMetrics();

    initializeThreads();

    Map<Integer, String> scores = Maps.newHashMap();
    for (int i = 1; i < 6; i++)
      scores.put(
          i,
          ChatColor.translateAlternateColorCodes(
              '&', SettingUtil.getSettingString("chat_score_" + i)));
    CHAT_SCORES = ImmutableMap.copyOf(scores);

    if (SettingUtil.getSettingBoolean("update"))
      new Updater(this, 44721, getFile(), Updater.UpdateType.DEFAULT, true);

    message("enabled");
  }
 /** API */
 public static String getLevelForChat(Player player) {
   if (player.hasPermission("infractions.ignore"))
     return SettingUtil.getSettingString("chat_score_ignore");
   return getLevelForChat(player.getUniqueId());
 }