private void dbInit() {
    // Initialize connection pool
    String driver, url, user, pass;

    if (plugin.getConfig().getBoolean("mysql.enabled")) { // MySQL
      dbms = DBMS.MySQL;
      ConfigurationSection cs = plugin.getConfig().getConfigurationSection("mysql");
      String host = cs.getString("host");
      int port = cs.getInt("port");
      String db = cs.getString("database");

      driver = "com.mysql.jdbc.Driver";
      url = "jdbc:mysql://" + host + ":" + port + "/" + db + "?zeroDateTimeBehavior=convertToNull";
      user = cs.getString("user");
      pass = cs.getString("password");
    } else { // H2
      driver = "org.h2.Driver";
      url =
          "jdbc:h2:" + plugin.getDataFolder() + File.separator + "xAuth;MODE=MySQL;IGNORECASE=TRUE";
      user = "******";
      pass = "";
    }

    try {
      connPool = new ConnectionPool(driver, url, user, pass);
    } catch (ClassNotFoundException e) {
      xAuthLog.severe("Failed to create instance of " + getDBMS() + " JDBC Driver!", e);
    }

    // Register tables
    activeTables.add(Table.ACCOUNT);
    activeTables.add(Table.PLAYERDATA);

    // Activate session table only if session length is higher than zero
    if (plugin.getConfig().getInt("session.length") > 0) activeTables.add(Table.SESSION);

    // Activate location table only if location protection is enabled
    if (plugin.getConfig().getBoolean("guest.protect-location")) activeTables.add(Table.LOCATION);

    // Activate lockout table only if lockouts are enabled
    if (plugin.getConfig().getInt("strikes.lockout-length") > 0) activeTables.add(Table.LOCKOUT);
  }
  public String getTable(Table tbl) {
    if (dbms == DBMS.H2) return tbl.getName();

    return plugin.getConfig().getString("mysql.tables." + tbl.toString().toLowerCase());
  }