Skip to content

Commit 64ac860

Browse files
committed
Reject 0 as register date on Bukkit based servers
Applied a patch to existing data Affects issues: - Fixed #4201
1 parent 3cb0e12 commit 64ac860

2 files changed

Lines changed: 5 additions & 3 deletions

File tree

Plan/bukkit/src/main/java/com/djrapitops/plan/gathering/domain/BukkitPlayerData.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ public Optional<String> getCurrentGameMode() {
7575

7676
@Override
7777
public Optional<Long> getRegisterDate() {
78-
return Optional.of(player.getFirstPlayed());
78+
long firstPlayed = player.getFirstPlayed();
79+
return firstPlayed > 0 ? Optional.of(firstPlayed) : Optional.empty();
7980
}
8081

8182
@Override

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/patches/RegisterDateMinimizationPatch.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,13 @@ private Query<Map<UUID, Long>> fetchSmallestServerRegisterDates() {
5555
UserInfoTable.USER_ID + ',' +
5656
"MIN(" + UserInfoTable.REGISTERED + ") as min_registered" +
5757
FROM + UserInfoTable.TABLE_NAME +
58+
WHERE + UserInfoTable.REGISTERED + "!=0" +
5859
GROUP_BY + UserInfoTable.USER_ID;
5960

6061
String sql = SELECT + UsersTable.USER_UUID + ",u1." + UsersTable.REGISTERED + ",min_registered" +
6162
FROM + '(' + selectSmallestRegisterDates + ") u2" +
6263
INNER_JOIN + UsersTable.TABLE_NAME + " u1 on u1." + UsersTable.ID + "=u2." + UserInfoTable.USER_ID +
63-
WHERE + "u1." + UsersTable.REGISTERED + ">min_registered";
64+
WHERE + "u1." + UsersTable.REGISTERED + ">min_registered OR u1." + UsersTable.REGISTERED + "=0";
6465

6566
return new QueryAllStatement<>(sql, 500) {
6667
@Override
@@ -83,7 +84,7 @@ protected void applyPatch() {
8384

8485
String sql = "UPDATE " + UsersTable.TABLE_NAME + " SET " + UsersTable.REGISTERED + "=?" +
8586
WHERE + UsersTable.USER_UUID + "=?" +
86-
AND + UsersTable.REGISTERED + ">?";
87+
AND + UsersTable.REGISTERED + ">? OR " + UsersTable.REGISTERED + "=0";
8788

8889
execute(new ExecBatchStatement(sql) {
8990
@Override

0 commit comments

Comments
 (0)