Change users being updated async and refactor update task
This commit is contained in:
@@ -135,7 +135,8 @@ public class HikariDatastore extends Datastore {
|
||||
return false;
|
||||
});
|
||||
|
||||
if (success) plugin.getUserManager().updateOrSetUser(user);
|
||||
// User updating and loading should be done sync as permission attachments are updated
|
||||
if (success) plugin.doSync(() -> plugin.getUserManager().updateOrSetUser(user));
|
||||
return success;
|
||||
}
|
||||
|
||||
@@ -171,7 +172,8 @@ public class HikariDatastore extends Datastore {
|
||||
return true;
|
||||
});
|
||||
|
||||
if (success) plugin.getUserManager().updateOrSetUser(user);
|
||||
// User updating and loading should be done sync as permission attachments are updated
|
||||
if (success) plugin.doSync(() -> plugin.getUserManager().updateOrSetUser(user));
|
||||
return success;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package me.lucko.luckperms.runnables;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import me.lucko.luckperms.LuckPermsPlugin;
|
||||
|
||||
@AllArgsConstructor
|
||||
public class UpdateTask implements Runnable {
|
||||
private final LuckPermsPlugin plugin;
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
plugin.getLogger().info("Running update task.");
|
||||
|
||||
// Reload all of the groups
|
||||
plugin.getDatastore().loadAllGroups();
|
||||
String defaultGroup = plugin.getConfiguration().getDefaultGroupName();
|
||||
if (!plugin.getGroupManager().isLoaded(defaultGroup)) {
|
||||
plugin.getDatastore().createAndLoadGroup(defaultGroup);
|
||||
}
|
||||
|
||||
// Refresh all online users.
|
||||
plugin.getUserManager().updateAllUsers();
|
||||
}
|
||||
}
|
||||
@@ -117,4 +117,9 @@ public abstract class UserManager {
|
||||
* @return a new {@link User} object
|
||||
*/
|
||||
public abstract User makeUser(UUID uuid, String username);
|
||||
|
||||
/**
|
||||
* Reloads the data of all online users
|
||||
*/
|
||||
public abstract void updateAllUsers();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user