Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,13 @@ public Collection<User> getByIP(String ip) {
public User getByName(String name) {
plugin.reportMainThread();
return connector.runQuery(connection -> {
var ps = connection.prepareStatement("SELECT * FROM librepremium_data WHERE LOWER(last_nickname)=LOWER(?)");
var ps = connection.prepareStatement("SELECT * FROM librepremium_data WHERE last_nickname_lower = ?");

ps.setString(1, name);
ps.setString(1, name.toLowerCase());

var rs = ps.executeQuery();

return getUserFromResult(rs);

});
}

Expand Down Expand Up @@ -236,7 +235,8 @@ public void validateSchema() {
"hashed_password VARCHAR(255)," +
"salt VARCHAR(255)," +
"algo VARCHAR(255)," +
"last_nickname VARCHAR(255) NOT NULL UNIQUE," +
"last_nickname VARCHAR(255) NOT NULL," +
"last_nickname_lower VARCHAR(255) AS (LOWER(last_nickname)) STORED," +
"joined TIMESTAMP NULL DEFAULT NULL," +
"last_seen TIMESTAMP NULL DEFAULT NULL," +
"last_server VARCHAR(255)" +
Expand All @@ -261,12 +261,12 @@ public void validateSchema() {
}
if (!columns.contains("email")) {
connection.prepareStatement("ALTER TABLE librepremium_data ADD COLUMN email VARCHAR(255) NULL DEFAULT NULL").executeUpdate();
}

try {
connection.prepareStatement(addUnique("last_nickname")).executeUpdate();
connection.prepareStatement("CREATE UNIQUE INDEX idx_nickname_lower ON librepremium_data (last_nickname_lower)").executeUpdate();
} catch (SQLException ignored) {
}
}
});
}

Expand Down