带有斜杠命令的 Discord.js 语音通道
Posted
技术标签:
【中文标题】带有斜杠命令的 Discord.js 语音通道【英文标题】:Discord.js Voice Channel with Slash Commands 【发布时间】:2021-06-08 04:48:26 【问题描述】:我想用新的 Discord Slash 命令创建一个音乐机器人,但我不知道如何获取用户所在的语音频道。
使用普通的消息命令是message.member.voice.channel
。
【问题讨论】:
【参考方案1】:因为interaction.member
不包含任何语音信息,所以我定义语音通道如下:
const guild = client.guilds.cache.get(interaction.guild_id)
const member = guild.members.cache.get(interaction.member.user.id);
const voiceChannel = member.voice.channel;
【讨论】:
【参考方案2】:const guild = client.guilds.cache.get(interaction.guild_id) const member = guild.member(interaction.member.user.id) const vchannel = member.voice.channel vchannel.join()
这对我有用。
【讨论】:
【参考方案3】:您可以使用Interaction#member
,如果它是在公会中发送的,它将返回发送交互的成员,如果不是在公会中发送,则返回null
。
【讨论】:
但是 Interaction#member 不包含任何语音信息 - 如果我错了请纠正我 从代码的外观和 JSDoc 注释来看,它返回一个有效的GuildMember
,其中包含任何其他 GuildMember
将具有的所有属性¯_(ツ)_/¯。
如果它不存在,您也可以尝试使用GuildMember#fetch
,然后再次检查,但除此之外我很难过。【参考方案4】:
const voice_channel_id = interaction.guild.members.cache.get(interaction.member.user.id).voice.channelId
【讨论】:
以上是关于带有斜杠命令的 Discord.js 语音通道的主要内容,如果未能解决你的问题,请参考以下文章
如何将变量设置为用户指定的语音通道 - Discord.js