当用户使用 Discord.JS 加入 VC 时发送 DM
Posted
技术标签:
【中文标题】当用户使用 Discord.JS 加入 VC 时发送 DM【英文标题】:Send DM when a user joins a VC using Discord.JS 【发布时间】:2021-04-24 09:26:58 【问题描述】:堆栈溢出(如果这个问题已经被问过,我很抱歉,我不相信它已经问过了,但提前,以防万一):
我正在使用 Discord.JS 和 Node.JS 制作一个不和谐机器人。我想制作一个机器人来检测用户何时加入 VC,然后向该用户发送 DM。我已经找到了检测代码:
const Discord = require('discord.js');
const bot = new Discord.Client();
bot.login("token");
bot.once('ready', () =>
console.log(`Bot ready, logged in as $bot.user.tag!`);
)
bot.on('voiceStateUpdate', (oldMember, newMember) =>
let newUserChannel = newMember.channelID;
let oldUserChannel = oldMember.channelID;
if(newUserChannel === "channel id")
// User Joins a voice channel
console.log("User joined vc with id "+newUserChannel)
else
// User leaves a voice channel
console.log("Left vc");
);
但我无法向用户(我假设由 newMember 代表)发送 DM。有人可以提供一些帮助吗?谢谢!
【问题讨论】:
您需要什么帮助?请在您的问题中说明。 【参考方案1】:您可以使用您获得的VoiceState
实例的.member
属性来获取已加入语音频道的用户。然后只需在语音通道用户上调用.send()
方法向他们发送DM。看看下面的示例代码:
bot.on('voiceStateUpdate', (oldState, newState) =>
const newChannelID = newState.channelID;
if (newChannelID === "channel id")
console.log("User has joined voice channel with id " + newChannelID);
const member = newState.member;
member.send('Hi there! Welcome to the voice channel!');
else
console.log("User left or didn't join the channel matching the given ID");
);
试一试看看效果如何
【讨论】:
以上是关于当用户使用 Discord.JS 加入 VC 时发送 DM的主要内容,如果未能解决你的问题,请参考以下文章