Search in sources :

Example 1 with GuildModules

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);
}
Also used : GuildModules(fredboat.db.transfer.GuildModules) Module(fredboat.definitions.Module)

Example 2 with GuildModules

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());
}
Also used : GuildModules(fredboat.db.transfer.GuildModules) Module(fredboat.definitions.Module)

Aggregations

GuildModules (fredboat.db.transfer.GuildModules)2 Module (fredboat.definitions.Module)2