use of com.djrapitops.plan.delivery.domain.Nickname in project Plan by plan-player-analytics.
the class NicknameQueries method fetchNicknameDataOfServer.
/**
* Query database for nickname information of a server.
*
* @param serverUUID UUID the the Plan server.
* @return Map: Player UUID - List of Nicknames on the server.
*/
public static Query<Map<UUID, List<Nickname>>> fetchNicknameDataOfServer(ServerUUID serverUUID) {
String sql = SELECT + NicknamesTable.NICKNAME + ',' + NicknamesTable.LAST_USED + ',' + NicknamesTable.USER_UUID + FROM + NicknamesTable.TABLE_NAME + WHERE + NicknamesTable.SERVER_UUID + "=?";
return new QueryStatement<Map<UUID, List<Nickname>>>(sql, 5000) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, serverUUID.toString());
}
@Override
public Map<UUID, List<Nickname>> processResults(ResultSet set) throws SQLException {
Map<UUID, List<Nickname>> serverMap = new HashMap<>();
while (set.next()) {
UUID uuid = UUID.fromString(set.getString(NicknamesTable.USER_UUID));
List<Nickname> nicknames = serverMap.computeIfAbsent(uuid, Lists::create);
nicknames.add(new Nickname(set.getString(NicknamesTable.NICKNAME), set.getLong(NicknamesTable.LAST_USED), serverUUID));
}
return serverMap;
}
};
}
use of com.djrapitops.plan.delivery.domain.Nickname in project Plan by plan-player-analytics.
the class NicknameQueries method fetchNicknameDataOfPlayer.
public static Query<List<Nickname>> fetchNicknameDataOfPlayer(UUID playerUUID) {
String sql = SELECT + NicknamesTable.NICKNAME + ',' + NicknamesTable.LAST_USED + ',' + NicknamesTable.SERVER_UUID + FROM + NicknamesTable.TABLE_NAME + WHERE + NicknamesTable.USER_UUID + "=?";
return new QueryStatement<List<Nickname>>(sql, 5000) {
@Override
public void prepare(PreparedStatement statement) throws SQLException {
statement.setString(1, playerUUID.toString());
}
@Override
public List<Nickname> processResults(ResultSet set) throws SQLException {
List<Nickname> nicknames = new ArrayList<>();
while (set.next()) {
ServerUUID serverUUID = ServerUUID.fromString(set.getString(NicknamesTable.SERVER_UUID));
String nickname = set.getString(NicknamesTable.NICKNAME);
nicknames.add(new Nickname(nickname, set.getLong(NicknamesTable.LAST_USED), serverUUID));
}
return nicknames;
}
};
}
use of com.djrapitops.plan.delivery.domain.Nickname in project Plan by plan-player-analytics.
the class NicknameQueriesTest method allNicknamesAreSaved.
@Test
default void allNicknamesAreSaved() {
db().executeTransaction(new PlayerServerRegisterTransaction(playerUUID, RandomData::randomTime, TestConstants.PLAYER_ONE_NAME, serverUUID(), TestConstants.GET_PLAYER_HOSTNAME));
List<Nickname> saved = RandomData.randomNicknames(serverUUID());
for (Nickname nickname : saved) {
db().executeTransaction(new NicknameStoreTransaction(playerUUID, nickname, (uuid, name) -> false));
db().executeTransaction(new NicknameStoreTransaction(playerUUID, nickname, (uuid, name) -> true));
}
forcePersistenceCheck();
List<Nickname> fetched = db().query(NicknameQueries.fetchNicknameDataOfPlayer(playerUUID));
assertEquals(saved, fetched);
}
Aggregations