Search in sources :

Example 11 with Guild

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

the class Prefix method setupSubcommands.

@Override
public void setupSubcommands() {
    subcommands.add(new Subcommand("View the prefix of your server!", "view", "view") {

        @Override
        public void onCall(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
            sendTranslatedMessage("The prefix for this server is **{0}**.".replace("{0}", GuildUtils.getPrefix(guild)), channel, user);
        }
    });
    subcommands.add(new Subcommand("Change the prefix of your server.", "change", "change") {

        @Override
        public void onCall(Guild guild, MessageChannel channel, User user, Message message, String[] args) throws Exception {
            if (args.length > 2) {
                if (guild.getMember(user).hasPermission(Permission.MANAGE_SERVER)) {
                    String newPrefix = message.getRawContent().replace(GuildUtils.getPrefix(guild) + args[0] + " " + "" + args[1] + " ", "").replace(" ", "");
                    if (newPrefix.length() == message.getRawContent().length()) {
                        newPrefix = message.getRawContent().replace("/" + args[0] + " " + args[1] + " ", "");
                    }
                    if (!newPrefix.contains(" ") && !newPrefix.contains("$")) {
                        GuildUtils.updatePrefix(newPrefix, guild);
                        r.db("data").table("guilds").filter(row -> row.g("guild_id").eq(guild.getId())).update(r.hashMap("prefix", newPrefix)).run(connection);
                        sendTranslatedMessage("Successfully updated the prefix,  {0}!".replace("{0}", newPrefix), channel, user);
                    } else
                        sendTranslatedMessage("Your supplied prefix contained invalid characters!", channel, user);
                } else {
                    sendTranslatedMessage("You need ```Manage Server``` permissions.", channel, user);
                }
            } else {
                sendTranslatedMessage("You must include a prefix as your third argument!", channel, user);
            }
        }
    });
}
Also used : Guild(net.dv8tion.jda.core.entities.Guild) GuildUtils(tk.ardentbot.utils.discord.GuildUtils) Permission(net.dv8tion.jda.core.Permission) User(net.dv8tion.jda.core.entities.User) Command(tk.ardentbot.core.executor.Command) Database.connection(tk.ardentbot.rethink.Database.connection) Subcommand(tk.ardentbot.core.executor.Subcommand) Database.r(tk.ardentbot.rethink.Database.r) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) Message(net.dv8tion.jda.core.entities.Message) User(net.dv8tion.jda.core.entities.User) Subcommand(tk.ardentbot.core.executor.Subcommand) MessageChannel(net.dv8tion.jda.core.entities.MessageChannel) Message(net.dv8tion.jda.core.entities.Message) Guild(net.dv8tion.jda.core.entities.Guild)

Example 12 with Guild

use of net.dv8tion.jda.core.entities.Guild in project MantaroBot by Mantaro.

the class TrackScheduler method onTrackSchedulerStop.

private void onTrackSchedulerStop() {
    getVoteStop().clear();
    Guild g = getGuild();
    if (g == null)
        return;
    AudioManager m = g.getAudioManager();
    if (m == null)
        return;
    m.closeAudioConnection();
    AudioTrackContext previousTrack;
    try {
        previousTrack = getPreviousTrack();
        if (previousTrack != null && previousTrack.getRequestedChannel() != null && previousTrack.getRequestedChannel().canTalk())
            previousTrack.getRequestedChannel().sendMessage(":mega: Finished playing queue! Hope you enjoyed it.").queue(message -> message.delete().queueAfter(20, TimeUnit.SECONDS));
    }//fuck
     catch (Exception ignored) {
    }
}
Also used : AudioPlayer(com.sedmelluq.discord.lavaplayer.player.AudioPlayer) Getter(lombok.Getter) TextChannel(net.dv8tion.jda.core.entities.TextChannel) MantaroShard(net.kodehawa.mantarobot.MantaroShard) Message(net.dv8tion.jda.core.entities.Message) ArrayList(java.util.ArrayList) MantaroBot(net.kodehawa.mantarobot.MantaroBot) DBGuild(net.kodehawa.mantarobot.data.entities.DBGuild) AudioTrackEndReason(com.sedmelluq.discord.lavaplayer.track.AudioTrackEndReason) AudioTrackInfo(com.sedmelluq.discord.lavaplayer.track.AudioTrackInfo) AudioTrackState(com.sedmelluq.discord.lavaplayer.track.AudioTrackState) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException) VoiceChannel(net.dv8tion.jda.core.entities.VoiceChannel) AudioManager(net.dv8tion.jda.core.managers.AudioManager) BlockingQueue(java.util.concurrent.BlockingQueue) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) Guild(net.dv8tion.jda.core.entities.Guild) List(java.util.List) GuildData(net.kodehawa.mantarobot.data.entities.helpers.GuildData) MantaroData(net.kodehawa.mantarobot.data.MantaroData) AudioTrack(com.sedmelluq.discord.lavaplayer.track.AudioTrack) AudioEventAdapter(com.sedmelluq.discord.lavaplayer.player.event.AudioEventAdapter) Collections(java.util.Collections) AudioManager(net.dv8tion.jda.core.managers.AudioManager) DBGuild(net.kodehawa.mantarobot.data.entities.DBGuild) Guild(net.dv8tion.jda.core.entities.Guild) FriendlyException(com.sedmelluq.discord.lavaplayer.tools.FriendlyException)

Example 13 with Guild

use of net.dv8tion.jda.core.entities.Guild in project MantaroBot by Mantaro.

the class VoiceLeave method run.

@Override
public void run() {
    MantaroBot.getInstance().getAudioManager().getMusicManagers().forEach((guildId, manager) -> {
        try {
            Guild guild = MantaroBot.getInstance().getGuildById(guildId);
            if (guild == null)
                return;
            GuildVoiceState voiceState = guild.getSelfMember().getVoiceState();
            if (voiceState == null)
                return;
            if (voiceState.inVoiceChannel()) {
                TextChannel channel = guild.getPublicChannel();
                if (channel != null) {
                    if (channel.canTalk()) {
                        VoiceChannel voiceChannel = voiceState.getChannel();
                        AudioPlayer player = manager.getAudioPlayer();
                        GuildMusicManager mm = MantaroBot.getInstance().getAudioManager().getMusicManager(guild);
                        if (player == null || mm == null || voiceChannel == null)
                            return;
                        if (mm.getTrackScheduler().getCurrentTrack().getRequestedChannel() != null) {
                            channel = mm.getTrackScheduler().getCurrentTrack().getRequestedChannel();
                        }
                        if (voiceState.isGuildMuted()) {
                            channel.sendMessage(EmoteReference.SAD + "Pausing player because I got muted :(").queue();
                            player.setPaused(true);
                        }
                        if (voiceChannel.getMembers().size() == 1) {
                            channel.sendMessage(EmoteReference.THINKING + "I decided to leave **" + voiceChannel.getName() + "** " + "because I was left all " + "alone :<").queue();
                            if (mm.getTrackScheduler().getAudioPlayer().getPlayingTrack() != null) {
                                mm.getTrackScheduler().getAudioPlayer().getPlayingTrack().stop();
                                mm.getTrackScheduler().getQueue().clear();
                                mm.getTrackScheduler().next(true);
                            } else {
                                guild.getAudioManager().closeAudioConnection();
                            }
                        }
                    }
                }
            }
        } catch (Exception ignored) {
        }
    });
}
Also used : TextChannel(net.dv8tion.jda.core.entities.TextChannel) GuildMusicManager(net.kodehawa.mantarobot.commands.music.GuildMusicManager) AudioPlayer(com.sedmelluq.discord.lavaplayer.player.AudioPlayer) GuildVoiceState(net.dv8tion.jda.core.entities.GuildVoiceState) VoiceChannel(net.dv8tion.jda.core.entities.VoiceChannel) Guild(net.dv8tion.jda.core.entities.Guild)

Example 14 with Guild

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

the class Leave method onLeave.

@SubscribeEvent
public void onLeave(GuildLeaveEvent event) {
    botLeaveEvents.add(Instant.now());
    Guild guild = event.getGuild();
    Shard shard = GuildUtils.getShard(guild);
    String id = guild.getId();
    Ardent.cleverbots.remove(id);
    shard.botPrefixData.remove(guild);
}
Also used : Guild(net.dv8tion.jda.core.entities.Guild) Shard(tk.ardentbot.main.Shard) SubscribeEvent(net.dv8tion.jda.core.hooks.SubscribeEvent)

Example 15 with Guild

use of net.dv8tion.jda.core.entities.Guild 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)

Aggregations

Guild (net.dv8tion.jda.core.entities.Guild)27 User (net.dv8tion.jda.core.entities.User)14 Message (net.dv8tion.jda.core.entities.Message)13 MessageChannel (net.dv8tion.jda.core.entities.MessageChannel)11 EmbedBuilder (net.dv8tion.jda.core.EmbedBuilder)10 Shard (tk.ardentbot.main.Shard)9 Subcommand (tk.ardentbot.core.executor.Subcommand)8 TextChannel (net.dv8tion.jda.core.entities.TextChannel)7 Command (tk.ardentbot.core.executor.Command)7 ArrayList (java.util.ArrayList)6 HashMap (java.util.HashMap)6 List (java.util.List)5 Database.connection (tk.ardentbot.rethink.Database.connection)4 Database.r (tk.ardentbot.rethink.Database.r)4 AudioPlayer (com.sedmelluq.discord.lavaplayer.player.AudioPlayer)3 AudioTrack (com.sedmelluq.discord.lavaplayer.track.AudioTrack)3 Map (java.util.Map)3 Member (net.dv8tion.jda.core.entities.Member)3 MessageEmbed (net.dv8tion.jda.core.entities.MessageEmbed)3 GuildMessageReceivedEvent (net.dv8tion.jda.core.events.message.guild.GuildMessageReceivedEvent)3