前提・実現したいこと
discord.jsでBOTを作成しています。
イベント'voiceStateUpdate'内で、ヴォイスチャンネルに接続しているメンバー数(botを除く)を取得したいが
以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
(node:5940) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'filter' of undefined
該当のソースコード
node.js(discord.js)
// ボイスチャンネルの状態変更イベント時に実行
disc.on('voiceStateUpdate', (oldState, newState) => onVoiceStateUpdate(oldState, newState));
async function onVoiceStateUpdate(oldState, newState) {
const Guild = disc.guilds.cache.get(oldState.guild.id)
const Channel = Guild.channels.cache.get(チャンネルID)
if (Channel.voiceMembers.filter(user => !user.bot).length <= 1) {
try {
console.log("OK")
} catch (err) {
console.log("NG")
}
};
};
試したこと
下記ソースでは成功する。
// ボイスチャンネルの状態変更イベント時に実行
disc.on('voiceStateUpdate', (oldState, newState) => onVoiceStateUpdate(oldState, newState));
async function onVoiceStateUpdate(oldState, newState) {
if (Guild.channels.get(チャンネルID).voiceMembers.filter(user => !user.bot).length <= 1) {
try {
console.log("OK")
} catch (err) {
console.log("NG")
}
};
};
※’Guild’は、別のbotでerisを使用し、’Guild = bot.guilds.get(サーバID);’で取得しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。