@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { if (channel.getGuild().getSelfMember().getVoiceState().inVoiceChannel()) { if ((!member.getVoiceState().inVoiceChannel() || !channel.getGuild().getSelfMember().getVoiceState() .getAudioChannel().getId() .equals(member.getVoiceState().getAudioChannel() .getId())) && !getPermissions(channel) .hasPermission(member, Permission.LEAVE_OTHER)) { MessageUtils.sendErrorMessage("You need the permission `" + Permission.LEAVE_OTHER + "` for me to leave a different voice channel!", channel, sender); return; } channel.getGuild().getAudioManager().closeAudioConnection(); if (FlareBotManager.instance().getLastActive().containsKey(guild.getGuildIdLong())) FlareBotManager.instance().getLastActive().remove(guild.getGuildIdLong()); MessageUtils.sendInfoMessage("Bye bye! I've left the channel for now", channel, sender); } }
@Override public void onCommand(User sender, GuildWrapper guild, TextChannel channel, Message message, String[] args, Member member) { if (member.getVoiceState().inVoiceChannel()) { if (channel.getGuild().getAudioManager().isAttemptingToConnect()) { MessageUtils.sendErrorMessage("Currently connecting to a voice channel! Try again soon!", channel); return; } if (channel.getGuild().getSelfMember().getVoiceState().inVoiceChannel() && !channel.getGuild() .getSelfMember() .getVoiceState() .getAudioChannel() .getId() .equals(member .getVoiceState() .getAudioChannel() .getId()) && !getPermissions(channel).hasPermission(member, Permission.JOIN_OTHER)) { MessageUtils.sendErrorMessage("You need the permission `" + Permission.JOIN_OTHER + "` for me to join your voice channel while I'm in one!", channel); return; } GuildUtils.joinChannel(channel, member); } }
!(channel.getGuild().getSelfMember().getVoiceState().getAudioChannel().getId() .equals(member.getVoiceState().getAudioChannel().getId()))) { MessageUtils.sendErrorMessage("I cannot join your channel! I am already in a channel!", channel); return;