【问题标题】:Discord.js Voice Channel with Slash Commands带有斜杠命令的 Discord.js 语音通道
【发布时间】:2021-06-08 04:48:26
【问题描述】:

我想用新的 Discord Slash 命令创建一个音乐机器人,但我不知道如何获取用户所在的语音频道。

使用普通的消息命令是message.member.voice.channel

【问题讨论】:

    标签: discord.js


    【解决方案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

        【讨论】:

          猜你喜欢
          • 2022-01-07
          • 2022-12-04
          • 2022-01-03
          • 1970-01-01
          • 2022-11-26
          • 2021-10-10
          • 2021-07-02
          • 2021-11-17
          • 2021-03-09
          相关资源
          最近更新 更多