簡體   English   中英

如何在 DiscordJS 中讓用戶進入沒有緩存的語音通道?

[英]How to get users in voice channel without cache in DiscordJS?

我正在嘗試讓所有用戶連接到我服務器上的語音通道。 當有人在#general中與機器人交談時,我想讓用戶進入Voice Channel 1

我正在使用節點 17 和 DiscordJS 13。

這是我的代碼:

message.guild.channels
  .fetch(channelID, { cache: false, force: true })
  .then((channels) => {
    console.log(channels.members);
  });

另外,我試過這個:

let voiceChannel = client.guilds.cache
  .get(process.env.DISCORDJS_GUILD_ID)
  .channels.cache.get(process.env.DISCORDJS_CHANNEL_ID);
let membersInChannel = voiceChannel.members;
console.log(membersInChannel);

但是,它總是返回我啟動節點應用程序時加入的語音頻道用戶。 如果有人離開語音頻道,當我在#general中對機器人說些什么時,它會一直在console.log中顯示他。 我怎樣才能做到這一點?

我有同樣的問題。 雖然我在fetch中添加了{ force: true }作為選項,但當我啟動應用程序時,它總是顯示相同數量的成員,忽略加入/離開頻道的成員。

啟用GUILD_VOICE_STATES意圖解決了這個問題。 所以不要忘記將它添加到您的client

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM