【问题标题】:DiscordJS Voice Channel Info Does Not UpdateDiscordJS 语音频道信息不更新
【发布时间】:2021-11-10 21:22:13
【问题描述】:

我的代码:

// not very relevant stuff
const {
  SlashCommandBuilder
} = require('@discordjs/builders');
const {
  MessageEmbed
} = require('discord.js');
const tip = require('../../tips/randomtip')
const fs = require('fs')

{
  const status = require('./status')
  if(status.inUsed = true){
    status.inUsed = false
    fs.writeFileSync( './commands/music/status.json', JSON.stringify(status,null,2))
  }
}


// very relevant stuff
module.exports = {
  data: new SlashCommandBuilder()
  .setName('join')
  .setDescription('Join the voice channel you are in'),
  async execute(interaction) {

    const voice = interaction.member.voice
    // console.log(voice)
    console.log(voice.channel)
  },
};

问题是 voice.channel 保持不变(我没有检查它们是否完全相同相同,但频道名称和频道是相同的,因为这很重要)

我正在使用discord.js v13 最新版本,所以请不要质疑我

【问题讨论】:

  • 你的代码的哪一部分应该改变频道的信息?
  • const voice = interaction.member.voice 应该为用户当前所在的频道设置常量 voice 实际发生的情况是它显示了机器人启动时用户所在的语音频道并且永远不会改变
  • 在命令函数里面,每次调用命令都会更新
  • 没错,但发生的事情是它永远不会更新
  • 鉴于您显示的代码它应该考虑到用户更改语音通道。

标签: javascript node.js discord discord.js


【解决方案1】:

如果您遇到的问题是机器人首次启动后member.voice 变量没有更新,解决方案可能是在客户端构造时添加GUILD_VOICE_STATES 意图。

以下是您如何执行此操作的示例:

const client = new Client ({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_VOICE_STATES] });

添加intents.FLAGS.GUILD_VOICE_STATES 应该使member.voice 在用户更改语音通道时正确更新。

【讨论】:

    猜你喜欢
    • 2020-08-22
    • 2020-08-30
    • 2020-05-30
    • 1970-01-01
    • 2021-11-21
    • 2021-11-03
    • 2022-07-06
    • 2018-06-28
    • 2019-11-24
    相关资源
    最近更新 更多