diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/CombinedConfigurateStorage.java b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/CombinedConfigurateStorage.java index 55955aa4e..ffbfd07b3 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/CombinedConfigurateStorage.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/CombinedConfigurateStorage.java @@ -32,6 +32,7 @@ import me.lucko.luckperms.common.storage.implementation.file.loader.ConfigurateL import me.lucko.luckperms.common.storage.implementation.file.watcher.FileWatcher; import me.lucko.luckperms.common.storage.misc.NodeEntry; import me.lucko.luckperms.common.util.Iterators; +import me.lucko.luckperms.common.util.Uuids; import net.luckperms.api.node.Node; @@ -43,6 +44,7 @@ import java.nio.file.Path; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.UUID; import java.util.concurrent.locks.ReentrantLock; @@ -256,7 +258,8 @@ public class CombinedConfigurateStorage extends AbstractConfigurateStorage { public Set getUniqueUsers() throws IOException { return this.usersLoader.getNode().getChildrenMap().keySet().stream() .map(Object::toString) - .map(UUID::fromString) + .map(Uuids::fromString) + .filter(Objects::nonNull) .collect(Collectors.toSet()); } diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/SeparatedConfigurateStorage.java b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/SeparatedConfigurateStorage.java index 2d182e5ce..345a2d596 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/SeparatedConfigurateStorage.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/file/SeparatedConfigurateStorage.java @@ -45,6 +45,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.UUID; import java.util.function.Predicate; @@ -248,7 +249,8 @@ public class SeparatedConfigurateStorage extends AbstractConfigurateStorage { return stream.filter(getFileTypeFilter()) .map(p -> p.getFileName().toString()) .map(s -> s.substring(0, s.length() - this.fileExtension.length())) - .map(UUID::fromString) + .map(Uuids::fromString) + .filter(Objects::nonNull) .collect(Collectors.toSet()); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/mongodb/MongoStorage.java b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/mongodb/MongoStorage.java index 99bf70827..3ee9c826e 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/mongodb/MongoStorage.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/mongodb/MongoStorage.java @@ -353,7 +353,11 @@ public class MongoStorage implements StorageImplementation { MongoCollection c = this.database.getCollection(this.prefix + "users"); try (MongoCursor cursor = c.find().iterator()) { while (cursor.hasNext()) { - uuids.add(getDocumentId(cursor.next())); + try { + uuids.add(getDocumentId(cursor.next())); + } catch (IllegalArgumentException e) { + // ignore + } } } return uuids; diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java index 5eee8815a..990d2aca2 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java @@ -43,6 +43,7 @@ import me.lucko.luckperms.common.storage.implementation.StorageImplementation; import me.lucko.luckperms.common.storage.implementation.sql.connection.ConnectionFactory; import me.lucko.luckperms.common.storage.misc.NodeEntry; import me.lucko.luckperms.common.storage.misc.PlayerSaveResultImpl; +import me.lucko.luckperms.common.util.Uuids; import me.lucko.luckperms.common.util.gson.GsonProvider; import net.luckperms.api.actionlog.Action; @@ -353,8 +354,10 @@ public class SqlStorage implements StorageImplementation { try (PreparedStatement ps = c.prepareStatement(this.statementProcessor.apply(USER_PERMISSIONS_SELECT_DISTINCT))) { try (ResultSet rs = ps.executeQuery()) { while (rs.next()) { - String uuid = rs.getString("uuid"); - uuids.add(UUID.fromString(uuid)); + UUID uuid = Uuids.fromString(rs.getString("uuid")); + if (uuid != null) { + uuids.add(uuid); + } } } }