Search in sources :

Example 66 with Member

use of net.dv8tion.jda.core.entities.Member in project atypical-rpg-bot by Ryert.

the class RefreshData method scan.

// Scans the player base looking for unregistered users
public static int scan() {
    int badUser = 0;
    for (Member member : GuildManagement.CONTROLLER.getGuild().getMembers()) {
        if (!DatabaseManager.isPresent(member.getUser().getId())) {
            DatabaseManager.add(member.getUser().getId(), new Player());
            badUser++;
        }
        if (member.getRoles().size() == 0)
            GuildManagement.addRole(member, "Arrival");
    }
    return badUser;
}
Also used : Player(me.ryert.player.data.Player) Member(net.dv8tion.jda.core.entities.Member)

Example 67 with Member

use of net.dv8tion.jda.core.entities.Member in project Ardent by adamint.

the class MuteDaemon method run.

@Override
public void run() {
    for (Shard shard : ShardManager.getShards()) {
        HashMap<String, HashMap<String, Long>> mutes = shard.botMuteData.getMutes();
        for (String guildID : mutes.keySet()) {
            Guild guild = shard.jda.getGuildById(guildID);
            for (String userID : mutes.get(guildID).keySet()) {
                Member member = guild.getMember(shard.jda.getUserById(userID));
                if (!shard.botMuteData.isMuted(member) && shard.botMuteData.wasMute(member)) {
                    shard.botMuteData.unmute(member);
                    member.getUser().openPrivateChannel().queue(privateChannel -> {
                        try {
                            privateChannel.sendMessage("You can now speak in {0}".replace("{0}", guild.getName())).queue();
                        } catch (Exception e) {
                            new BotException(e);
                        }
                    });
                }
            }
        }
    }
}
Also used : HashMap(java.util.HashMap) BotException(tk.ardentbot.core.misc.logging.BotException) Shard(tk.ardentbot.main.Shard) Guild(net.dv8tion.jda.core.entities.Guild) Member(net.dv8tion.jda.core.entities.Member) BotException(tk.ardentbot.core.misc.logging.BotException)

Example 68 with Member

use of net.dv8tion.jda.core.entities.Member in project Ardent by adamint.

the class Leave method onUserLeave.

@SubscribeEvent
public void onUserLeave(GuildMemberLeaveEvent event) throws SQLException {
    userLeaveEvents.add(Instant.now());
    Guild guild = event.getGuild();
    Member left = event.getMember();
    Triplet<String, String, String> automessageSettings = Automessage.getMessagesAndChannel(guild);
    String channelId = automessageSettings.getA();
    String leave = automessageSettings.getC();
    if (channelId != null && leave != null) {
        TextChannel channel = guild.getTextChannelById(channelId);
        if (channel != null) {
            try {
                leave = leave.replace("{user}", left.getUser().getName()).replace("{servername}", guild.getName()).replace("{amtusers}", String.valueOf(guild.getMembers().size()));
                channel.sendMessage(leave).queue();
            } catch (PermissionException ex) {
            }
        }
    }
}
Also used : PermissionException(net.dv8tion.jda.core.exceptions.PermissionException) TextChannel(net.dv8tion.jda.core.entities.TextChannel) Guild(net.dv8tion.jda.core.entities.Guild) Member(net.dv8tion.jda.core.entities.Member) SubscribeEvent(net.dv8tion.jda.core.hooks.SubscribeEvent)

Example 69 with Member

use of net.dv8tion.jda.core.entities.Member in project Ardent by adamint.

the class OnMessage method onMessage.

@SubscribeEvent
public void onMessage(MessageReceivedEvent event) {
    if (!Ardent.started)
        return;
    if (event.getAuthor().isBot())
        return;
    try {
        switch(event.getChannel().getType()) {
            case TEXT:
                TriviaChecker.check(event);
                Guild guild = event.getGuild();
                Shard shard = GuildUtils.getShard(guild);
                shard.factory.incrementMessagesReceived();
                if (event.getGuild() == null)
                    // This one will never be executed. But just in case to avoid NPE.
                    return;
                AntiAdvertisingSettings antiAdvertisingSettings = BaseCommand.asPojo(r.table("anti_advertising_settings").get(guild.getId()).run(connection), AntiAdvertisingSettings.class);
                if (antiAdvertisingSettings != null && !antiAdvertisingSettings.isAllow_discord_server_links()) {
                    if (!event.getMember().hasPermission(Permission.MANAGE_SERVER)) {
                        if (event.getMessage().getRawContent().contains("discordapp.com/invite") || event.getMessage().getRawContent().contains("discord.gg")) {
                            event.getMessage().delete().queue();
                            ArrayList<AdvertisingInfraction> infractions = BaseCommand.queryAsArrayList(AdvertisingInfraction.class, r.table("advertising_infractions").filter(row -> row.g("guild_id").eq(guild.getId()).and(row.g("user_id").eq(event.getAuthor().getId()))).run(connection));
                            if (infractions.size() > 2 && antiAdvertisingSettings.isBan_after_two_infractions()) {
                                guild.getController().ban(event.getAuthor(), 1).queue();
                                shard.help.sendEditedTranslation("Banned {0} for advertising.", event.getAuthor(), event.getChannel(), UserUtils.getNameWithDiscriminator(event.getAuthor().getId()));
                                event.getAuthor().openPrivateChannel().queue(privateChannel -> {
                                    privateChannel.sendMessage("You were banned from " + guild.getName() + " for advertising.").queue();
                                });
                                r.table("advertising_infractions").filter(row -> row.g("guild_id").eq(guild.getId()).and(row.g("user_id").eq(event.getAuthor().getId()))).delete().run(connection);
                            } else {
                                r.table("advertising_infractions").insert(r.json(BaseCommand.getStaticGson().toJson(new AdvertisingInfraction(event.getAuthor().getId(), guild.getId())))).run(connection);
                                shard.help.sendEditedTranslation("{0}, you can't advertise Discord servers here!", event.getAuthor(), event.getChannel(), event.getAuthor().getAsMention());
                            }
                            return;
                        }
                    }
                }
                if (guild.getId().equalsIgnoreCase("260841592070340609")) {
                    UserUtils.addMoney(event.getAuthor(), 0.10);
                }
                Member ardentMember = event.getGuild().getMember(event.getJDA().getSelfUser());
                Member userMember = event.getMember();
                if (ardentMember == null || userMember == null || userMember.hasPermission(Permission.MANAGE_SERVER) || !ardentMember.hasPermission(Permission.MESSAGE_MANAGE)) {
                    shard.factory.pass(event, GuildUtils.getPrefix(guild));
                    // The event will be handled and musn't be resumed here.
                    return;
                }
                if (!shard.botMuteData.isMuted(event.getMember())) {
                    shard.factory.pass(event, GuildUtils.getPrefix(guild));
                    // The event will be handled and musn't be resumed here.
                    return;
                }
                event.getMessage().delete().queue();
                String reply = "Sorry, but you're muted in {0} until {1}".replace("{0}", event.getGuild().getName()).replace("{1}", Date.from(Instant.ofEpochSecond(shard.botMuteData.getUnmuteTime(event.getMember()) / 1000)).toLocaleString());
                event.getAuthor().openPrivateChannel().queue(privateChannel -> privateChannel.sendMessage(reply).queue());
                break;
            case PRIVATE:
                event.getChannel().sendMessage("Please use Ardent commands inside of a guild!").queue();
                shard0.factory.incrementMessagesReceived();
                break;
        }
    } catch (Exception ex) {
        new BotException(ex);
    }
}
Also used : AntiAdvertisingSettings(tk.ardentbot.rethink.models.AntiAdvertisingSettings) BotException(tk.ardentbot.core.misc.logging.BotException) AdvertisingInfraction(tk.ardentbot.rethink.models.AdvertisingInfraction) Guild(net.dv8tion.jda.core.entities.Guild) Shard(tk.ardentbot.main.Shard) Member(net.dv8tion.jda.core.entities.Member) BotException(tk.ardentbot.core.misc.logging.BotException) SubscribeEvent(net.dv8tion.jda.core.hooks.SubscribeEvent)

Aggregations

Member (net.dv8tion.jda.core.entities.Member)69 Guild (net.dv8tion.jda.core.entities.Guild)22 Message (net.dv8tion.jda.core.entities.Message)22 EmbedBuilder (net.dv8tion.jda.core.EmbedBuilder)17 User (net.dv8tion.jda.core.entities.User)17 TextChannel (net.dv8tion.jda.core.entities.TextChannel)16 MessageBuilder (net.dv8tion.jda.core.MessageBuilder)11 ArrayList (java.util.ArrayList)10 List (java.util.List)10 Permission (net.dv8tion.jda.core.Permission)8 GuildWrapper (stream.flarebot.flarebot.objects.GuildWrapper)8 Role (net.dv8tion.jda.core.entities.Role)7 CommandType (stream.flarebot.flarebot.commands.CommandType)7 MessageUtils (stream.flarebot.flarebot.util.MessageUtils)7 Collectors (java.util.stream.Collectors)6 Permission (stream.flarebot.flarebot.permissions.Permission)6 GuildPlayer (fredboat.audio.player.GuildPlayer)5 AudioTrackContext (fredboat.audio.queue.AudioTrackContext)5 JDA (net.dv8tion.jda.core.JDA)5 Command (stream.flarebot.flarebot.commands.Command)5