Search in sources :

Example 1 with GuildSQL

use of fun.rubicon.sql.GuildSQL in project Rubicon by Rubicon-Bot.

the class CommandWhitelist method execute.

@Override
protected Message execute(CommandManager.ParsedCommandInvocation parsedCommandInvocation, UserPermissions userPermissions) {
    String[] args = parsedCommandInvocation.getArgs();
    Member member = parsedCommandInvocation.getMember();
    Guild guild = parsedCommandInvocation.getGuild();
    TextChannel channel = parsedCommandInvocation.getTextChannel();
    Message message = parsedCommandInvocation.getMessage();
    if (args.length == 0)
        return createHelpMessage();
    GuildSQL guildSQL = GuildSQL.fromGuild(guild);
    if (guildSQL.enabledBlacklist()) {
        return new MessageBuilder().setEmbed(EmbedUtil.error("Already using blacklist", "You can't use black- and whitelist on the same server").build()).build();
    }
    switch(args[0]) {
        case "list":
            executeList(args, member, guild, channel);
            break;
        case "add":
        case "whitelist":
            executeAdd(args, member, guild, channel, message);
            break;
        case "remove":
        case "blacklist":
            executeRemove(args, member, guild, channel, message);
            break;
        default:
            SafeMessage.sendMessage(channel, createHelpMessage(), 5);
            break;
    }
    return null;
}
Also used : GuildSQL(fun.rubicon.sql.GuildSQL) TextChannel(net.dv8tion.jda.core.entities.TextChannel) SafeMessage(fun.rubicon.util.SafeMessage) Message(net.dv8tion.jda.core.entities.Message) MessageBuilder(net.dv8tion.jda.core.MessageBuilder) Guild(net.dv8tion.jda.core.entities.Guild) Member(net.dv8tion.jda.core.entities.Member)

Example 2 with GuildSQL

use of fun.rubicon.sql.GuildSQL in project Rubicon by Rubicon-Bot.

the class CommandWhitelist method executeRemove.

private void executeRemove(String[] args, Member member, Guild guild, TextChannel textChannel, Message message) {
    GuildSQL sql = GuildSQL.fromGuild(guild);
    if (message.getMentionedChannels().isEmpty()) {
        SafeMessage.sendMessage(textChannel, EmbedUtil.error("Unknown usage", "Please use `rc!whitelist add <#Channel>`").build(), 7);
        return;
    }
    TextChannel channel = message.getMentionedChannels().get(0);
    if (!sql.isWhitelisted(channel)) {
        SafeMessage.sendMessage(textChannel, EmbedUtil.info("Not whitelisted", "This channel is not whitelisted").build());
        return;
    }
    String oldEntry = RubiconBot.getMySQL().getGuildValue(guild, "whitelist");
    String newEntry;
    if (oldEntry.equals(channel.getId()))
        newEntry = "";
    else
        newEntry = oldEntry.replace(channel.getId(), "");
    if (newEntry.contains(","))
        newEntry = new StringBuilder(newEntry).replace(newEntry.lastIndexOf(","), newEntry.lastIndexOf(",") + 1, "").toString();
    RubiconBot.getMySQL().updateGuildValue(guild, "whitelist", newEntry);
    SafeMessage.sendMessage(textChannel, EmbedUtil.success("Successfully removed channel from whitelist", "Successfully removed channel `" + channel.getName() + "` from whitelist!").build(), 5);
}
Also used : GuildSQL(fun.rubicon.sql.GuildSQL) TextChannel(net.dv8tion.jda.core.entities.TextChannel)

Example 3 with GuildSQL

use of fun.rubicon.sql.GuildSQL in project Rubicon by Rubicon-Bot.

the class CommandBlacklist method executeAdd.

private void executeAdd(String[] args, Member member, Guild guild, TextChannel textChannel, Message message) {
    GuildSQL guildSQL = GuildSQL.fromGuild(guild);
    if (message.getMentionedChannels().isEmpty()) {
        SafeMessage.sendMessage(textChannel, EmbedUtil.error("Unknown usage", "Please use `rc!whitelist add <#Channel>`").build(), 7);
        return;
    }
    TextChannel channel = message.getMentionedChannels().get(0);
    if (guildSQL.isBlacklisted(channel)) {
        SafeMessage.sendMessage(textChannel, EmbedUtil.info("Already blacklisted", "This channel is already whitelisted").build());
        return;
    }
    String oldEntry = RubiconBot.getMySQL().getGuildValue(guild, "blacklist");
    String newEntry;
    if (oldEntry.equals(""))
        newEntry = channel.getId();
    else
        newEntry = oldEntry + "," + channel.getId();
    RubiconBot.getMySQL().updateGuildValue(guild, "blacklist", newEntry);
    SafeMessage.sendMessage(textChannel, EmbedUtil.success("Successfully blacklisted channel", "Successfully whitelisted channel `" + channel.getName() + "` !").build(), 5);
}
Also used : GuildSQL(fun.rubicon.sql.GuildSQL) TextChannel(net.dv8tion.jda.core.entities.TextChannel)

Example 4 with GuildSQL

use of fun.rubicon.sql.GuildSQL in project Rubicon by Rubicon-Bot.

the class CommandBlacklist method execute.

@Override
protected Message execute(CommandManager.ParsedCommandInvocation parsedCommandInvocation, UserPermissions userPermissions) {
    String[] args = parsedCommandInvocation.getArgs();
    Member member = parsedCommandInvocation.getMember();
    Guild guild = parsedCommandInvocation.getGuild();
    TextChannel channel = parsedCommandInvocation.getTextChannel();
    Message message = parsedCommandInvocation.getMessage();
    if (args.length == 0)
        return createHelpMessage();
    GuildSQL guildSQL = GuildSQL.fromGuild(guild);
    if (guildSQL.enabledWhitelist()) {
        return new MessageBuilder().setEmbed(EmbedUtil.error("Already using whitelist", "You can't use black- and whitelist on the same server").build()).build();
    }
    switch(args[0]) {
        case "list":
            executeList(args, member, guild, channel);
            break;
        case "add":
        case "blacklist":
            executeAdd(args, member, guild, channel, message);
            break;
        case "remove":
        case "whitelist":
            executeRemove(args, member, guild, channel, message);
            break;
        default:
            SafeMessage.sendMessage(channel, createHelpMessage(), 5);
            break;
    }
    return null;
}
Also used : GuildSQL(fun.rubicon.sql.GuildSQL) TextChannel(net.dv8tion.jda.core.entities.TextChannel) SafeMessage(fun.rubicon.util.SafeMessage) Message(net.dv8tion.jda.core.entities.Message) MessageBuilder(net.dv8tion.jda.core.MessageBuilder) Guild(net.dv8tion.jda.core.entities.Guild) Member(net.dv8tion.jda.core.entities.Member)

Example 5 with GuildSQL

use of fun.rubicon.sql.GuildSQL in project Rubicon by Rubicon-Bot.

the class CommandBlacklist method executeList.

private void executeList(String[] args, Member member, Guild guild, TextChannel textChannel) {
    GuildSQL guildSQL = GuildSQL.fromGuild(guild);
    if (guildSQL.enabledBlacklist()) {
        List<String> channelIDs = Arrays.asList(RubiconBot.getMySQL().getGuildValue(guild, "blacklist").split(","));
        StringBuilder channels = new StringBuilder();
        channelIDs.forEach(id -> {
            try {
                TextChannel channel = guild.getTextChannelById(id);
                channels.append(channel.getName()).append(", ");
            } catch (NullPointerException ignored) {
                String oldEntry = RubiconBot.getMySQL().getGuildValue(guild, "blacklist");
                String newEntry = oldEntry.replace(id, "");
                if (newEntry.contains(","))
                    newEntry = new StringBuilder(newEntry).replace(newEntry.lastIndexOf(","), newEntry.lastIndexOf(",") + 1, "").toString();
                RubiconBot.getMySQL().updateGuildValue(guild, "blacklist", newEntry);
                if (channelIDs.size() == 0) {
                    SafeMessage.sendMessage(textChannel, EmbedUtil.info("Blacklisted Channels", "Blacklist mode: `" + String.valueOf(guildSQL.enabledBlacklist()).replace("true", "enabled").replace("false", "disabled") + "`").build());
                    return;
                }
            }
        });
        channels.replace(channels.lastIndexOf(","), channels.lastIndexOf(",") + 1, "");
        SafeMessage.sendMessage(textChannel, EmbedUtil.info("Blacklisted Channels", "Blacklist mode: `" + String.valueOf(guildSQL.enabledBlacklist()).replace("true", "enabled").replace("false", "disabled") + "`\nChannels: `" + channels.toString() + "`").build());
    } else
        SafeMessage.sendMessage(textChannel, EmbedUtil.info("Blacklisted Channels", "Blacklist mode: `" + String.valueOf(guildSQL.enabledBlacklist()).replace("true", "enabled").replace("false", "disabled") + "`").build());
}
Also used : GuildSQL(fun.rubicon.sql.GuildSQL) TextChannel(net.dv8tion.jda.core.entities.TextChannel)

Aggregations

GuildSQL (fun.rubicon.sql.GuildSQL)9 TextChannel (net.dv8tion.jda.core.entities.TextChannel)6 SafeMessage (fun.rubicon.util.SafeMessage)2 MessageBuilder (net.dv8tion.jda.core.MessageBuilder)2 Guild (net.dv8tion.jda.core.entities.Guild)2 Member (net.dv8tion.jda.core.entities.Member)2 Message (net.dv8tion.jda.core.entities.Message)2