Refactor ProgressLogger slightly

This commit is contained in:
Luck 2018-12-19 10:39:48 +00:00
parent 6d8077ffd0
commit e3a6db5f97
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B
9 changed files with 50 additions and 44 deletions

View File

@ -39,6 +39,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.Group;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.model.User;
@ -77,7 +78,7 @@ public class MigrationBPermissions extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("bPermissions");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "bPermissions");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -117,7 +118,7 @@ public class MigrationBPermissions extends SubCommand<Object> {
AtomicInteger userLoadCount = new AtomicInteger(0);
for (String user : users) {
world.loadOne(user, CalculableType.USER);
log.logProgress("Forcefully loaded {} users so far.", userLoadCount.incrementAndGet());
log.logProgress("Forcefully loaded {} users so far.", userLoadCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
}
}
log.log("Forcefully loaded all users.");
@ -168,7 +169,7 @@ public class MigrationBPermissions extends SubCommand<Object> {
plugin.getStorage().saveUser(lpUser);
plugin.getUserManager().cleanup(lpUser);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users in world " + world.getName() + ".");

View File

@ -34,6 +34,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.Group;
import me.lucko.luckperms.common.model.User;
import me.lucko.luckperms.common.model.UserIdentifier;
@ -70,7 +71,7 @@ public class MigrationGroupManager extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("GroupManager");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "GroupManager");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -210,7 +211,7 @@ public class MigrationGroupManager extends SubCommand<Object> {
}
}
log.logProgress("Migrated {} users so far in world " + world, userWorldCount.incrementAndGet());
log.logProgress("Migrated {} users so far in world " + world, userWorldCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userWorldCount.get() + " users in world " + world);
});
@ -250,7 +251,7 @@ public class MigrationGroupManager extends SubCommand<Object> {
plugin.getStorage().saveUser(user);
plugin.getUserManager().cleanup(user);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -34,6 +34,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.Group;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.model.User;
@ -59,7 +60,7 @@ public class MigrationPermissionsBukkit extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("PermissionsBukkit");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "PermissionsBukkit");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -114,7 +115,7 @@ public class MigrationPermissionsBukkit extends SubCommand<Object> {
plugin.getUserManager().cleanup(lpUser);
plugin.getStorage().saveUser(lpUser);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -34,6 +34,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.Group;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.model.Track;
@ -93,7 +94,7 @@ public class MigrationPermissionsEx extends SubCommand<Object> {
@SuppressWarnings("deprecation")
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("PermissionsEx");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "PermissionsEx");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -176,7 +177,7 @@ public class MigrationPermissionsEx extends SubCommand<Object> {
plugin.getUserManager().cleanup(lpUser);
plugin.getStorage().saveUser(lpUser);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -42,6 +42,7 @@ import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.config.ConfigKeys;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.model.User;
import me.lucko.luckperms.common.node.factory.NodeFactory;
@ -77,7 +78,7 @@ public class MigrationPowerfulPerms extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("PowerfulPerms");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "PowerfulPerms");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -264,7 +265,7 @@ public class MigrationPowerfulPerms extends SubCommand<Object> {
plugin.getUserManager().cleanup(user);
plugin.getStorage().saveUser(user);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -34,6 +34,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.Group;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.model.Track;
@ -70,7 +71,7 @@ public class MigrationZPermissions extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("zPermissions");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "zPermissions");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -182,7 +183,7 @@ public class MigrationZPermissions extends SubCommand<Object> {
plugin.getUserManager().cleanup(user);
plugin.getStorage().saveUser(user);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -32,6 +32,7 @@ import me.lucko.luckperms.common.command.access.CommandPermission;
import me.lucko.luckperms.common.commands.migration.MigrationUtils;
import me.lucko.luckperms.common.locale.LocaleManager;
import me.lucko.luckperms.common.locale.command.CommandSpec;
import me.lucko.luckperms.common.locale.message.Message;
import me.lucko.luckperms.common.model.PermissionHolder;
import me.lucko.luckperms.common.node.factory.NodeFactory;
import me.lucko.luckperms.common.plugin.LuckPermsPlugin;
@ -57,7 +58,7 @@ public class MigrationBungeePerms extends SubCommand<Object> {
@Override
public CommandResult execute(LuckPermsPlugin plugin, Sender sender, Object o, List<String> args, String label) {
ProgressLogger log = new ProgressLogger("BungeePerms");
ProgressLogger log = new ProgressLogger(Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS, "BungeePerms");
log.addListener(plugin.getConsoleSender());
log.addListener(sender);
@ -118,7 +119,7 @@ public class MigrationBungeePerms extends SubCommand<Object> {
plugin.getStorage().saveUser(user);
plugin.getUserManager().cleanup(user);
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet());
log.logProgress("Migrated {} users so far.", userCount.incrementAndGet(), ProgressLogger.DEFAULT_NOTIFY_FREQUENCY);
});
log.log("Migrated " + userCount.get() + " users.");

View File

@ -88,7 +88,7 @@ public class Exporter implements Runnable {
this.filePath = filePath;
this.includeUsers = includeUsers;
this.log = new ProgressLogger(null, Message.EXPORT_LOG, Message.EXPORT_LOG_PROGRESS);
this.log = new ProgressLogger(Message.EXPORT_LOG, Message.EXPORT_LOG_PROGRESS, null);
this.log.addListener(plugin.getConsoleSender());
this.log.addListener(executor);
}

View File

@ -32,59 +32,58 @@ import java.util.HashSet;
import java.util.Set;
public class ProgressLogger {
private static final int NOTIFY_FREQUENCY = 500;
public static final int DEFAULT_NOTIFY_FREQUENCY = 500;
private final String pluginName;
private final Message logMessage;
private final Message logProgressMessage;
private final String logPrefixParam;
private final Set<Sender> listeners = new HashSet<>();
public ProgressLogger(String pluginName) {
this(pluginName, Message.MIGRATION_LOG, Message.MIGRATION_LOG_PROGRESS);
}
public ProgressLogger(String pluginName, Message logMessage, Message logProgressMessage) {
this.pluginName = pluginName;
public ProgressLogger(Message logMessage, Message logProgressMessage, String logPrefixParam) {
this.logMessage = logMessage;
this.logProgressMessage = logProgressMessage;
this.logPrefixParam = logPrefixParam;
}
public void addListener(Sender sender) {
this.listeners.add(sender);
}
public Set<Sender> getListeners() {
return this.listeners;
}
public void log(String msg) {
if (this.pluginName == null) {
this.listeners.forEach(s -> this.logMessage.send(s, msg));
} else {
this.listeners.forEach(s -> this.logMessage.send(s, this.pluginName, msg));
}
dispatchMessage(this.logMessage, msg);
}
public void logError(String msg) {
if (this.pluginName == null) {
this.listeners.forEach(s -> this.logMessage.send(s, "Error -> " + msg));
} else {
this.listeners.forEach(s -> this.logMessage.send(s, this.pluginName, "Error -> " + msg));
}
dispatchMessage(this.logMessage, "Error -> " + msg);
}
public void logAllProgress(String msg, int amount) {
if (this.pluginName == null) {
this.listeners.forEach(s -> this.logProgressMessage.send(s, msg.replace("{}", Integer.toString(amount))));
} else {
this.listeners.forEach(s -> this.logProgressMessage.send(s, this.pluginName, msg.replace("{}", Integer.toString(amount))));
}
dispatchMessage(this.logProgressMessage, msg.replace("{}", Integer.toString(amount)));
}
public void logProgress(String msg, int amount) {
if (amount % NOTIFY_FREQUENCY == 0) {
public void logProgress(String msg, int amount, int notifyFrequency) {
if (amount % notifyFrequency == 0) {
logAllProgress(msg, amount);
}
}
public Set<Sender> getListeners() {
return this.listeners;
private Object[] formParams(String content) {
if (this.logPrefixParam != null) {
return new Object[]{this.logPrefixParam, content};
} else {
return new Object[]{content};
}
}
private void dispatchMessage(Message messageType, String content) {
Object[] params = formParams(content);
for (Sender s : this.listeners) {
messageType.send(s, params);
}
}
}