Changes for & release of API 2.14

This commit is contained in:
Luck
2016-11-12 14:10:42 +00:00
Unverified
parent e9131f729a
commit 563dd4683d
88 changed files with 872 additions and 850 deletions
@@ -43,7 +43,7 @@ import me.lucko.luckperms.common.groups.GroupManager;
import me.lucko.luckperms.common.messaging.RedisMessaging;
import me.lucko.luckperms.common.runnables.ExpireTemporaryTask;
import me.lucko.luckperms.common.runnables.UpdateTask;
import me.lucko.luckperms.common.storage.Datastore;
import me.lucko.luckperms.common.storage.Storage;
import me.lucko.luckperms.common.storage.StorageFactory;
import me.lucko.luckperms.common.tracks.TrackManager;
import me.lucko.luckperms.common.users.UserManager;
@@ -77,6 +77,7 @@ import java.io.File;
import java.nio.file.Path;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -105,6 +106,8 @@ public class LPSpongePlugin implements LuckPermsPlugin {
private Path configDir;
private Scheduler scheduler = Sponge.getScheduler();
private Executor syncExecutor = Sponge.getScheduler().createSyncExecutor(this);
private Executor asyncExecutor = Sponge.getScheduler().createAsyncExecutor(this);
private LPTimings timings;
private final Set<UUID> ignoringLogs = ConcurrentHashMap.newKeySet();
@@ -112,7 +115,7 @@ public class LPSpongePlugin implements LuckPermsPlugin {
private UserManager userManager;
private GroupManager groupManager;
private TrackManager trackManager;
private Datastore datastore;
private Storage storage;
private RedisMessaging redisMessaging = null;
private UuidCache uuidCache;
private ApiProvider apiProvider;
@@ -141,7 +144,7 @@ public class LPSpongePlugin implements LuckPermsPlugin {
Sponge.getEventManager().registerListeners(this, new SpongeListener(this));
// initialise datastore
datastore = StorageFactory.getDatastore(this, "h2");
storage = StorageFactory.getInstance(this, "h2");
// initialise redis
if (getConfiguration().isRedisEnabled()) {
@@ -228,7 +231,7 @@ public class LPSpongePlugin implements LuckPermsPlugin {
@Listener
public void onDisable(GameStoppingServerEvent event) {
getLog().info("Closing datastore...");
datastore.shutdown();
storage.shutdown();
if (redisMessaging != null) {
getLog().info("Closing redis...");
@@ -52,7 +52,7 @@ public class SpongeListener extends AbstractListener {
@Listener(order = Order.EARLY)
public void onClientAuth(ClientConnectionEvent.Auth e) {
if (!plugin.getDatastore().isAcceptingLogins()) {
if (!plugin.getStorage().isAcceptingLogins()) {
/* Datastore is disabled, prevent players from joining the server
Just don't load their data, they will be kicked at login */
return;
@@ -89,10 +89,10 @@ public class MigrationPermissionManager extends SubCommand<Object> {
groupCount++;
// Make a LuckPerms group for the one being migrated
plugin.getDatastore().createAndLoadGroup(pmGroup.getIdentifier().toLowerCase()).getUnchecked();
plugin.getStorage().createAndLoadGroup(pmGroup.getIdentifier().toLowerCase()).join();
Group group = plugin.getGroupManager().get(pmGroup.getIdentifier().toLowerCase());
migrateSubject(pmGroup, group);
plugin.getDatastore().saveGroup(group);
plugin.getStorage().saveGroup(group);
}
log.info("PermissionManager Migration: Migrated " + groupCount + " groups");
@@ -117,10 +117,10 @@ public class MigrationPermissionManager extends SubCommand<Object> {
}
// Make a LuckPerms user for the one being migrated
plugin.getDatastore().loadUser(uuid, "null").getUnchecked();
plugin.getStorage().loadUser(uuid, "null").join();
User user = plugin.getUserManager().get(uuid);
migrateSubject(pmUser, user);
plugin.getDatastore().saveUser(user);
plugin.getStorage().saveUser(user);
plugin.getUserManager().cleanup(user);
}
@@ -69,10 +69,10 @@ public class MigrationPermissionsEx extends SubCommand<Object> {
groupCount++;
// Make a LuckPerms group for the one being migrated
plugin.getDatastore().createAndLoadGroup(pexGroup.getIdentifier().toLowerCase()).getUnchecked();
plugin.getStorage().createAndLoadGroup(pexGroup.getIdentifier().toLowerCase()).join();
Group group = plugin.getGroupManager().get(pexGroup.getIdentifier().toLowerCase());
migrateSubject(pexGroup, group);
plugin.getDatastore().saveGroup(group);
plugin.getStorage().saveGroup(group);
}
log.info("PermissionsEx Migration: Migrated " + groupCount + " groups");
@@ -88,10 +88,10 @@ public class MigrationPermissionsEx extends SubCommand<Object> {
}
// Make a LuckPerms user for the one being migrated
plugin.getDatastore().loadUser(uuid, "null").getUnchecked();
plugin.getStorage().loadUser(uuid, "null").join();
User user = plugin.getUserManager().get(uuid);
migrateSubject(pexUser, user);
plugin.getDatastore().saveUser(user);
plugin.getStorage().saveUser(user);
plugin.getUserManager().cleanup(user);
}
@@ -59,10 +59,12 @@ public class LuckPermsSubjectData implements SubjectData {
private void objectSave(PermissionHolder t) {
if (t instanceof User) {
service.getPlugin().getDatastore().saveUser(((User) t), b -> ((User) t).getRefreshBuffer().request());
service.getPlugin().getStorage().saveUser(((User) t))
.thenRunAsync(() -> ((User) t).getRefreshBuffer().request(), service.getPlugin().getAsyncExecutor());
}
if (t instanceof Group) {
service.getPlugin().getDatastore().saveGroup(((Group) t), b -> service.getPlugin().getUpdateTaskBuffer().request());
service.getPlugin().getStorage().saveGroup((Group) t)
.thenRunAsync(() -> service.getPlugin().getUpdateTaskBuffer().request(), service.getPlugin().getAsyncExecutor());
}
}
@@ -97,7 +97,7 @@ public class GroupCollection implements SubjectCollection {
if (!manager.isLoaded(id)) {
service.getPlugin().getLog().warn("Group Subject '" + id + "' was requested, but is not loaded in memory. Loading it from storage now.");
long startTime = System.currentTimeMillis();
service.getPlugin().getDatastore().createAndLoadGroup(id).getUnchecked();
service.getPlugin().getStorage().createAndLoadGroup(id).join();
service.getPlugin().getLog().warn("Loading '" + id + "' took " + (System.currentTimeMillis() - startTime) + " ms.");
}
@@ -109,7 +109,7 @@ public class UserCollection implements SubjectCollection {
if (!manager.isLoaded(UserIdentifier.of(u, null))) {
service.getPlugin().getLog().warn("User Subject '" + u + "' was requested, but is not loaded in memory. Loading them from storage now.");
long startTime = System.currentTimeMillis();
service.getPlugin().getDatastore().loadUser(u, "null").getUnchecked();
service.getPlugin().getStorage().loadUser(u, "null").join();
service.getPlugin().getLog().warn("Loading '" + u + "' took " + (System.currentTimeMillis() - startTime) + " ms.");
}