Always load user data caches alongside user instances
This commit is contained in:
@@ -83,12 +83,8 @@ public class SpongeUserManager implements UserManager, LPSubjectCollection {
|
||||
.expireAfterWrite(1, TimeUnit.MINUTES)
|
||||
.build(u -> {
|
||||
if (isLoaded(UserIdentifier.of(u, null))) {
|
||||
|
||||
SpongeUser user = get(u);
|
||||
if (user.getUserData() == null) {
|
||||
user.setupData(false);
|
||||
}
|
||||
|
||||
user.preCalculateData(false);
|
||||
return get(u).getSpongeData();
|
||||
}
|
||||
|
||||
@@ -101,12 +97,7 @@ public class SpongeUserManager implements UserManager, LPSubjectCollection {
|
||||
throw new RuntimeException();
|
||||
}
|
||||
|
||||
user.setupData(false);
|
||||
|
||||
if (user.getUserData() == null) {
|
||||
getPlugin().getLog().warn("User data not present for requested user id: " + u);
|
||||
}
|
||||
|
||||
user.preCalculateData(false);
|
||||
return user.getSpongeData();
|
||||
});
|
||||
|
||||
|
||||
@@ -96,13 +96,6 @@ public class SpongeUser extends User {
|
||||
return (now - lastUse) > 600000;
|
||||
}
|
||||
|
||||
private synchronized void checkData() {
|
||||
if (parent.getUserData() == null) {
|
||||
plugin.getLog().warn("User " + parent.getName().orElse("unknown") + " - " + parent.getUuid() + " does not have any data loaded.");
|
||||
parent.setupData(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getIdentifier() {
|
||||
return plugin.getUuidCache().getExternalUUID(parent.getUuid()).toString();
|
||||
@@ -134,7 +127,6 @@ public class SpongeUser extends User {
|
||||
public Tristate getPermissionValue(ContextSet contexts, String permission) {
|
||||
logUsage();
|
||||
try (Timing ignored = plugin.getTimings().time(LPTiming.USER_GET_PERMISSION_VALUE)) {
|
||||
checkData();
|
||||
return parent.getUserData().getPermissionData(plugin.getService().calculateContexts(contexts)).getPermissionValue(permission);
|
||||
}
|
||||
}
|
||||
@@ -153,7 +145,6 @@ public class SpongeUser extends User {
|
||||
try (Timing ignored = plugin.getTimings().time(LPTiming.USER_GET_PARENTS)) {
|
||||
ImmutableSet.Builder<SubjectReference> subjects = ImmutableSet.builder();
|
||||
|
||||
checkData();
|
||||
for (String perm : parent.getUserData().getPermissionData(plugin.getService().calculateContexts(contexts)).getImmutableBacking().keySet()) {
|
||||
if (!perm.startsWith("group.")) {
|
||||
continue;
|
||||
@@ -176,8 +167,6 @@ public class SpongeUser extends User {
|
||||
public Optional<String> getOption(ContextSet contexts, String s) {
|
||||
logUsage();
|
||||
try (Timing ignored = plugin.getTimings().time(LPTiming.USER_GET_OPTION)) {
|
||||
checkData();
|
||||
|
||||
MetaData data = parent.getUserData().getMetaData(plugin.getService().calculateContexts(contexts));
|
||||
if (s.equalsIgnoreCase("prefix")) {
|
||||
if (data.getPrefix() != null) {
|
||||
|
||||
@@ -280,8 +280,6 @@ public class LuckPermsService implements PermissionService {
|
||||
|
||||
for (User user : plugin.getUserManager().getAll().values()) {
|
||||
UserCache userCache = user.getUserData();
|
||||
if (userCache == null) continue;
|
||||
|
||||
userCache.invalidateCache();
|
||||
}
|
||||
|
||||
@@ -305,8 +303,6 @@ public class LuckPermsService implements PermissionService {
|
||||
|
||||
for (User user : plugin.getUserManager().getAll().values()) {
|
||||
UserCache userCache = user.getUserData();
|
||||
if (userCache == null) continue;
|
||||
|
||||
userCache.invalidateCache();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user