Fix real name update.

This commit is contained in:
DNx5
2016-02-16 07:14:40 +07:00
parent 814bc8df4e
commit 7c1dd888cc
7 changed files with 54 additions and 6 deletions
@@ -230,6 +230,15 @@ public class CacheDataSource implements DataSource {
cachedAuths.invalidate(oldOne);
}
@Override
public boolean updateRealName(String user, String realName) {
boolean result = source.updateRealName(user, realName);
if (result) {
cachedAuths.refresh(user);
}
return result;
}
@Override
public List<PlayerAuth> getAllAuths() {
return source.getAllAuths();
@@ -204,6 +204,7 @@ public interface DataSource {
*/
void updateName(String oldOne, String newOne);
boolean updateRealName(String user, String realName);
/**
* Method getAllAuths.
*
@@ -716,6 +716,11 @@ public class FlatFile implements DataSource {
this.removeAuth(oldOne);
}
@Override
public boolean updateRealName(String user, String realName) {
return false;
}
@Override
public List<PlayerAuth> getAllAuths() {
BufferedReader br = null;
@@ -885,6 +885,21 @@ public class MySQL implements DataSource {
}
}
@Override
public boolean updateRealName(String user, String realName) {
try (Connection con = getConnection()) {
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
PreparedStatement pst = con.prepareStatement(sql);
pst.setString(1, realName);
pst.setString(2, user);
pst.executeUpdate();
return true;
} catch (SQLException ex) {
logSqlException(ex);
}
return false;
}
@Override
public List<PlayerAuth> getAllAuths() {
List<PlayerAuth> auths = new ArrayList<>();
@@ -593,6 +593,20 @@ public class SQLite implements DataSource {
}
}
@Override
public boolean updateRealName(String user, String realName) {
String sql = "UPDATE " + tableName + " SET " + col.REAL_NAME + "=? WHERE " + col.NAME + "=?;";
try(PreparedStatement pst = con.prepareStatement(sql)) {
pst.setString(1, realName);
pst.setString(2, user);
pst.executeUpdate();
return true;
} catch (SQLException ex) {
logSqlException(ex);
}
return false;
}
@Override
public List<PlayerAuth> getAllAuths() {
List<PlayerAuth> auths = new ArrayList<>();