DiscordJS 语音频道信息未更新

Sir*_*art 2 javascript node.js discord discord.js

我的代码:

\n
// not very relevant stuff\nconst {\n  SlashCommandBuilder\n} = require('@discordjs/builders');\nconst {\n  MessageEmbed\n} = require('discord.js');\nconst tip = require('../../tips/randomtip')\nconst fs = require('fs')\n\n{\n  const status = require('./status')\n  if(status.inUsed = true){\n    status.inUsed = false\n    fs.writeFileSync( './commands/music/status.json', JSON.stringify(status,null,2))\n  }\n}\n\n\n// very relevant stuff\nmodule.exports = {\n  data: new SlashCommandBuilder()\n  .setName('join')\n  .setDescription('Join the voice channel you are in'),\n  async execute(interaction) {\n\n    const voice = interaction.member.voice\n    // console.log(voice)\n    console.log(voice.channel)\n  },\n};\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n

我\xe2\x80\x99m使用discord.jsv13最新版本所以不要\xe2\x80\x99甚至问我

\n

小智 7

如果您遇到的问题是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