use of fredboat.db.transfer.GuildModules in project FredBoat by Frederikam.
the class ModulesCommand method onInvoke.
@Override
public void onInvoke(@Nonnull CommandContext context) {
if (!context.hasArguments()) {
displayModuleStatus(context);
return;
}
if (!PermsUtil.checkPermsWithFeedback(PermissionLevel.ADMIN, context)) {
return;
}
// editing module status happens here
String args = context.rawArgs.toLowerCase();
boolean enable;
if (args.contains("enable")) {
enable = true;
} else if (args.contains("disable")) {
enable = false;
} else {
HelpCommand.sendFormattedCommandHelp(context);
return;
}
Module module = CommandRegistry.whichModule(args, context);
if (module == null) {
context.reply(context.i18nFormat("moduleCantParse", context.getPrefix() + context.command.name));
return;
} else if (module.lockedModule) {
context.reply(context.i18nFormat("moduleLocked", context.i18n(module.translationKey)) + "\n" + MAGICAL_LENNY);
return;
}
Function<GuildModules, GuildModules> transform;
String output;
if (enable) {
transform = gm -> gm.enableModule(module);
output = context.i18nFormat("moduleEnable", "**" + context.i18n(module.translationKey) + "**") + "\n" + context.i18nFormat("moduleShowCommands", "`" + context.getPrefix() + CommandInitializer.COMMANDS_COMM_NAME + " " + context.i18n(module.translationKey) + "`");
} else {
transform = gm -> gm.disableModule(module);
output = context.i18nFormat("moduleDisable", "**" + context.i18n(module.translationKey) + "**");
}
Launcher.getBotController().getGuildModulesService().transformGuildModules(context.guild, transform);
// if the transaction right above this line fails, it won't be reached, which is intended
context.reply(output);
}
use of fredboat.db.transfer.GuildModules in project FredBoat by Frederikam.
the class ModulesCommand method displayModuleStatus.
private static void displayModuleStatus(@Nonnull CommandContext context) {
GuildModules gm = Launcher.getBotController().getGuildModulesService().fetchGuildModules(context.guild);
Function<Module, String> moduleStatusFormatter = moduleStatusLine(gm, context);
String moduleStatus = "";
if (PermsUtil.checkPerms(PermissionLevel.BOT_ADMIN, context.invoker)) {
moduleStatus = moduleStatusFormatter.apply(Module.ADMIN) + " " + Emojis.LOCK + "\n" + moduleStatusFormatter.apply(Module.INFO) + " " + Emojis.LOCK + "\n" + moduleStatusFormatter.apply(Module.CONFIG) + " " + Emojis.LOCK + "\n";
}
moduleStatus += moduleStatusFormatter.apply(Module.MUSIC) + " " + Emojis.LOCK + "\n" + moduleStatusFormatter.apply(Module.MOD) + "\n" + moduleStatusFormatter.apply(Module.UTIL) + "\n" + moduleStatusFormatter.apply(Module.FUN) + "\n";
String howto = "`" + context.getPrefix() + CommandInitializer.MODULES_COMM_NAME + " " + ENABLE + "/" + DISABLE + " <module>`";
context.reply(CentralMessaging.getColoredEmbedBuilder().addField(context.i18n("moduleStatus"), moduleStatus, false).addField("", context.i18nFormat("modulesHowTo", howto), false).build());
}
Aggregations