Always load user data caches alongside user instances

This commit is contained in:
Luck
2017-05-02 16:55:08 +01:00
Unverified
parent f56bb251e9
commit 163e6e0f2a
18 changed files with 59 additions and 162 deletions
@@ -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();
}
}