当人们耳聋时,discord 机器人不会感动他们
discord bot isn't moving people when they deafen
基本上,我试图让我的机器人在人们耳聋时立即将他们转移到 afk,但是当我测试它时没有任何反应。我用过 console.log 当有人耳聋但仍然没有。
代码:
const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MEMBERS", "GUILD_PRESENCES"] });
client.on("voiceStateUpdate", (oldState, newState) =>
{
let memchange = newState.member;
if (memchange.selfDeaf)
{
console.log('User has deafened');
memchange.setChannel(afkchannelid);
}
});
client.once('ready', () => {
console.log('Discord bot is now online')
});
我原本认为您的问题可能是一个简单的意图问题,但是,经过进一步调查,这是一个关于您使用 newState.member.selfDeaf
的问题。更正后的代码附有简短说明:
查看有关 voiceState
的官方 Discord.js 文档:
根据您的操作,您正在尝试访问 newState.member.selfDeaf
,而 newState.member
没有 selfDeaf
属性(GuildMember Documentation);因此 if 语句不会评估为真,也不会 运行.
const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MEMBERS", "GUILD_PRESENCES"] });
client.on("voiceStateUpdate", (oldState, newState) =>
{
if (newState.selfDeaf)
{
console.log('User has deafened');
newState.member.setChannel(afkchannelid);
}
});
client.once('ready', () => {
console.log('Discord bot is now online')
});
基本上,我试图让我的机器人在人们耳聋时立即将他们转移到 afk,但是当我测试它时没有任何反应。我用过 console.log 当有人耳聋但仍然没有。
代码:
const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MEMBERS", "GUILD_PRESENCES"] });
client.on("voiceStateUpdate", (oldState, newState) =>
{
let memchange = newState.member;
if (memchange.selfDeaf)
{
console.log('User has deafened');
memchange.setChannel(afkchannelid);
}
});
client.once('ready', () => {
console.log('Discord bot is now online')
});
我原本认为您的问题可能是一个简单的意图问题,但是,经过进一步调查,这是一个关于您使用 newState.member.selfDeaf
的问题。更正后的代码附有简短说明:
查看有关 voiceState
的官方 Discord.js 文档:
根据您的操作,您正在尝试访问 newState.member.selfDeaf
,而 newState.member
没有 selfDeaf
属性(GuildMember Documentation);因此 if 语句不会评估为真,也不会 运行.
const Discord = require("discord.js");
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_VOICE_STATES", "GUILD_MEMBERS", "GUILD_PRESENCES"] });
client.on("voiceStateUpdate", (oldState, newState) =>
{
if (newState.selfDeaf)
{
console.log('User has deafened');
newState.member.setChannel(afkchannelid);
}
});
client.once('ready', () => {
console.log('Discord bot is now online')
});