简体   繁体   English

如何检查成员是否加入了特定的语音频道 DiscordJS

[英]how to check if the member is joined to an specific voice channel DiscordJS

I want to check if the member is joined to the voice channel that the bot is joined.我想检查成员是否加入了机器人加入的语音频道。 The whole code is working, I just want to add that line that I put in code comments.整个代码都在工作,我只想添加我在代码注释中添加的那一行。 My code:我的代码:

const { QueryType } = require('discord-player');
const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'play',
    aliases: ['p'],
    permissions: ['CONNECT'],
    description: 'Plays a music',
    voiceChannel: true,

    async execute(message, args, cmd, client, Discord, profileData) {
// if the member that used the comamnd is not joined to the voicechannel that the bot is playing music on it, return;
        const player = client.player
if (!args[0]) return message.channel.send({ content: `${message.author}, Write the name of the music you want to search. <:Cross:961558777667149874>` });

        const res = await client.player.search(args.join(' '), {
            requestedBy: message.member,
            searchEngine: QueryType.AUTO
        });

        if (!res || !res.tracks.length) return message.channel.send({ content: `${message.author}, No results found! <:Cross:961558777667149874>` });

        const queue = await client.player.createQueue(message.guild, {
            metadata: message.channel
        });

        try {
            if (!queue.connection) await queue.connect(message.member.voice.channel)
        } catch {
            await client.player.deleteQueue(message.guild.id);
            return message.channel.send({ content: `<:Cross:961558777667149874> ${message.author}, I can't join audio channel ` });
        }

if(client.config.opt.selfDeaf === false) {
let channel = message.member.voice.channel;
const { joinVoiceChannel } = require('@discordjs/voice');
const connection = joinVoiceChannel({
   channelId: channel.id,
   guildId: channel.guild.id,
   adapterCreator: channel.guild.voiceAdapterCreator,
   selfDeaf: false
});
}

        res.playlist ? queue.addTracks(res.tracks) : queue.addTrack(res.tracks[0]);

        if (!queue.playing) await queue.play();
        

    },
};

I am not getting any errors.我没有收到任何错误。 I am using node.js v16 and discord.js v13我正在使用 node.js v16 和 discord.js v13

You can use this code to return if the member isn't in the same voice channel as you.如果该成员与您不在同一语音频道,您可以使用此代码返回。

if(message.member.voice.channelId !== message.guild.me.voice.channelId) return;

Then it will return if they aren't in the same channel.如果他们不在同一个频道,它将返回。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM