From d5adc7f42811abeb7efaaf056585eba0bcf16e2a Mon Sep 17 00:00:00 2001 From: Rsl1122 Date: Fri, 1 Feb 2019 11:06:33 +0200 Subject: [PATCH] Refactored UserInfo to have Server UUID in it --- .../importing/importers/BukkitImporter.java | 13 ++++++-- .../plan/data/container/UserInfo.java | 33 ++++++++++--------- .../db/access/queries/LargeFetchQueries.java | 2 +- .../db/access/queries/LargeStoreQueries.java | 2 +- .../containers/AllPlayerContainersQuery.java | 2 +- .../ServerPlayerContainersQuery.java | 2 +- .../plan/db/sql/tables/UserInfoTable.java | 17 ++-------- .../databases/sql/operation/SQLSaveOps.java | 2 +- .../com/djrapitops/plan/db/CommonDBTest.java | 3 +- .../src/test/java/utilities/RandomData.java | 2 +- 10 files changed, 38 insertions(+), 40 deletions(-) diff --git a/Plan/bukkit/src/main/java/com/djrapitops/plan/system/importing/importers/BukkitImporter.java b/Plan/bukkit/src/main/java/com/djrapitops/plan/system/importing/importers/BukkitImporter.java index 74e9979a0..8692b0191 100644 --- a/Plan/bukkit/src/main/java/com/djrapitops/plan/system/importing/importers/BukkitImporter.java +++ b/Plan/bukkit/src/main/java/com/djrapitops/plan/system/importing/importers/BukkitImporter.java @@ -19,6 +19,7 @@ package com.djrapitops.plan.system.importing.importers; import com.djrapitops.plan.Plan; import com.djrapitops.plan.api.exceptions.database.DBException; import com.djrapitops.plan.api.exceptions.database.DBOpException; +import com.djrapitops.plan.data.container.BaseUser; import com.djrapitops.plan.data.container.GeoInfo; import com.djrapitops.plan.data.container.Session; import com.djrapitops.plan.data.container.UserInfo; @@ -186,14 +187,22 @@ public abstract class BukkitImporter implements Importer { helper.submit(service); } - private UserInfo toUserInfo(UserImportData userImportData) { + // TODO Refactor parts to use the base user + private BaseUser toBaseUser(UserImportData userImportData) { UUID uuid = userImportData.getUuid(); String name = userImportData.getName(); long registered = userImportData.getRegistered(); + int timesKicked = userImportData.getTimesKicked(); + return new BaseUser(uuid, name, registered, timesKicked); + } + + private UserInfo toUserInfo(UserImportData userImportData) { + UUID uuid = userImportData.getUuid(); + long registered = userImportData.getRegistered(); boolean op = userImportData.isOp(); boolean banned = userImportData.isBanned(); - return new UserInfo(uuid, name, registered, op, banned); + return new UserInfo(uuid, serverUUID.get(), registered, op, banned); } private Session toSession(UserImportData userImportData) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/data/container/UserInfo.java b/Plan/common/src/main/java/com/djrapitops/plan/data/container/UserInfo.java index 59d4556de..f076f290f 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/data/container/UserInfo.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/data/container/UserInfo.java @@ -26,28 +26,31 @@ import java.util.UUID; */ public class UserInfo { - private final UUID uuid; - @Deprecated - private String name; + private final UUID playerUUID; + private final UUID serverUUID; private long registered; private boolean banned; private boolean opped; - public UserInfo(UUID uuid, String name, long registered, boolean opped, boolean banned) { - this.uuid = uuid; - this.name = name; + public UserInfo(UUID playerUUID, UUID serverUUID, long registered, boolean opped, boolean banned) { + this.playerUUID = playerUUID; + this.serverUUID = serverUUID; this.registered = registered; this.opped = opped; this.banned = banned; } - public UUID getUuid() { - return uuid; + public UUID getPlayerUuid() { + return playerUUID; + } + + public UUID getServerUUID() { + return serverUUID; } @Deprecated public String getName() { - return name; + return null; } public long getRegistered() { @@ -65,25 +68,25 @@ public class UserInfo { @Override public boolean equals(Object o) { if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (!(o instanceof UserInfo)) return false; UserInfo userInfo = (UserInfo) o; return registered == userInfo.registered && banned == userInfo.banned && opped == userInfo.opped && - Objects.equals(uuid, userInfo.uuid) && - Objects.equals(name, userInfo.name); + playerUUID.equals(userInfo.playerUUID) && + serverUUID.equals(userInfo.serverUUID); } @Override public int hashCode() { - return Objects.hash(uuid, name, registered, banned, opped); + return Objects.hash(playerUUID, serverUUID, registered, banned, opped); } @Override public String toString() { return "UserInfo{" + - "uuid=" + uuid + - ", name='" + name + '\'' + + "playerUUID=" + playerUUID + + ", serverUUID=" + serverUUID + ", registered=" + registered + ", banned=" + banned + ", opped=" + opped + diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeFetchQueries.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeFetchQueries.java index bba925cf4..15464a008 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeFetchQueries.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeFetchQueries.java @@ -474,7 +474,7 @@ public class LargeFetchQueries { boolean banned = set.getBoolean(UserInfoTable.BANNED); boolean op = set.getBoolean(UserInfoTable.OP); - userInfos.add(new UserInfo(uuid, "", registered, op, banned)); + userInfos.add(new UserInfo(uuid, serverUUID, registered, op, banned)); serverMap.put(serverUUID, userInfos); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeStoreQueries.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeStoreQueries.java index 8f39165c5..27f676cc2 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeStoreQueries.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/LargeStoreQueries.java @@ -263,7 +263,7 @@ public class LargeStoreQueries { UUID serverUUID = entry.getKey(); // Every User for (UserInfo user : entry.getValue()) { - statement.setString(1, user.getUuid().toString()); + statement.setString(1, user.getPlayerUuid().toString()); statement.setLong(2, user.getRegistered()); statement.setString(3, serverUUID.toString()); statement.setBoolean(4, user.isBanned()); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/AllPlayerContainersQuery.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/AllPlayerContainersQuery.java index adede1a58..5e0615976 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/AllPlayerContainersQuery.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/AllPlayerContainersQuery.java @@ -56,7 +56,7 @@ public class AllPlayerContainersQuery implements Query> { List serverUserInfo = entry.getValue(); for (UserInfo userInfo : serverUserInfo) { - UUID uuid = userInfo.getUuid(); + UUID uuid = userInfo.getPlayerUuid(); if (uuid == null) { continue; } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/ServerPlayerContainersQuery.java b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/ServerPlayerContainersQuery.java index 493098642..930406134 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/ServerPlayerContainersQuery.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/access/queries/containers/ServerPlayerContainersQuery.java @@ -77,7 +77,7 @@ public class ServerPlayerContainersQuery implements Query> for (UserInfo userInfo : serverUserInfo) { PlayerContainer container = new PlayerContainer(); - UUID uuid = userInfo.getUuid(); + UUID uuid = userInfo.getPlayerUuid(); container.putRawData(PlayerKeys.UUID, uuid); container.putRawData(PlayerKeys.REGISTERED, userInfo.getRegistered()); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/UserInfoTable.java b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/UserInfoTable.java index 6857c8992..2d61df356 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/UserInfoTable.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/db/sql/tables/UserInfoTable.java @@ -144,17 +144,12 @@ public class UserInfoTable extends Table { } public Map getAllUserInfo(UUID uuid) { - String usersUUIDColumn = UsersTable.TABLE_NAME + "." + UsersTable.USER_UUID; - String usersNameColumn = UsersTable.TABLE_NAME + "." + UsersTable.USER_NAME + " as name"; - String sql = "SELECT " + TABLE_NAME + "." + REGISTERED + ", " + BANNED + ", " + OP + ", " + - usersNameColumn + ", " + SERVER_UUID + " FROM " + TABLE_NAME + - " INNER JOIN " + UsersTable.TABLE_NAME + " on " + usersUUIDColumn + "=" + TABLE_NAME + "." + USER_UUID + " WHERE " + TABLE_NAME + "." + USER_UUID + "=?"; return query(new QueryStatement>(sql) { @@ -170,10 +165,8 @@ public class UserInfoTable extends Table { long registered = set.getLong(REGISTERED); boolean op = set.getBoolean(OP); boolean banned = set.getBoolean(BANNED); - String name = set.getString("name"); - UUID serverUUID = UUID.fromString(set.getString(SERVER_UUID)); - map.put(serverUUID, new UserInfo(uuid, name, registered, op, banned)); + map.put(serverUUID, new UserInfo(uuid, serverUUID, registered, op, banned)); } return map; } @@ -181,17 +174,12 @@ public class UserInfoTable extends Table { } public List getServerUserInfo(UUID serverUUID) { - String usersUUIDColumn = UsersTable.TABLE_NAME + "." + UsersTable.USER_UUID; - String usersNameColumn = UsersTable.TABLE_NAME + "." + UsersTable.USER_NAME + " as name"; - String sql = "SELECT " + TABLE_NAME + "." + REGISTERED + ", " + BANNED + ", " + OP + ", " + - usersNameColumn + ", " + TABLE_NAME + "." + USER_UUID + " FROM " + TABLE_NAME + - " INNER JOIN " + UsersTable.TABLE_NAME + " on " + usersUUIDColumn + "=" + TABLE_NAME + "." + USER_UUID + " WHERE " + SERVER_UUID + "=?"; return query(new QueryStatement>(sql, 20000) { @@ -205,12 +193,11 @@ public class UserInfoTable extends Table { List userInfo = new ArrayList<>(); while (set.next()) { UUID uuid = UUID.fromString(set.getString(USER_UUID)); - String name = set.getString("name"); long registered = set.getLong(REGISTERED); boolean op = set.getBoolean(OP); boolean banned = set.getBoolean(BANNED); - UserInfo info = new UserInfo(uuid, name, registered, op, banned); + UserInfo info = new UserInfo(uuid, serverUUID, registered, op, banned); if (!userInfo.contains(info)) { userInfo.add(info); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java index 702e38230..c3acb4bfe 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/system/database/databases/sql/operation/SQLSaveOps.java @@ -70,7 +70,7 @@ public class SQLSaveOps extends SQLOps implements SaveOperations { @Override protected void performOperations() { Collection users = ofUsers.values().stream() - .map(user -> new BaseUser(user.getUuid(), user.getName(), user.getRegistered(), 0)) + .map(user -> new BaseUser(user.getPlayerUuid(), user.getName(), user.getRegistered(), 0)) .collect(Collectors.toSet()); execute(LargeStoreQueries.storeAllCommonUserInformation(users)); } diff --git a/Plan/common/src/test/java/com/djrapitops/plan/db/CommonDBTest.java b/Plan/common/src/test/java/com/djrapitops/plan/db/CommonDBTest.java index e525581bb..35e626620 100644 --- a/Plan/common/src/test/java/com/djrapitops/plan/db/CommonDBTest.java +++ b/Plan/common/src/test/java/com/djrapitops/plan/db/CommonDBTest.java @@ -413,10 +413,9 @@ public abstract class CommonDBTest { assertTrue(userInfoTable.isRegistered(playerUUID)); UserInfo userInfo = userInfoTable.getAllUserInfo(playerUUID).get(serverUUID); - assertEquals(playerUUID, userInfo.getUuid()); + assertEquals(playerUUID, userInfo.getPlayerUuid()); assertEquals(123456789L, (long) usersTable.getRegisterDates().get(0)); assertEquals(223456789L, userInfo.getRegistered()); - assertEquals("Test", userInfo.getName()); assertFalse(userInfo.isBanned()); assertFalse(userInfo.isOperator()); diff --git a/Plan/common/src/test/java/utilities/RandomData.java b/Plan/common/src/test/java/utilities/RandomData.java index b3d600f37..ec3af938d 100644 --- a/Plan/common/src/test/java/utilities/RandomData.java +++ b/Plan/common/src/test/java/utilities/RandomData.java @@ -89,7 +89,7 @@ public class RandomData { public static List randomUserData() { List test = new ArrayList<>(); for (int i = 0; i < 20; i++) { - UserInfo info = new UserInfo(UUID.randomUUID(), randomString(10), r.nextLong(), r.nextBoolean(), r.nextBoolean()); + UserInfo info = new UserInfo(UUID.randomUUID(), UUID.randomUUID(), r.nextLong(), r.nextBoolean(), r.nextBoolean()); test.add(info); } return test;