Discord.js Bot 上的 DM 特定用户 ID
Posted
技术标签:
【中文标题】Discord.js Bot 上的 DM 特定用户 ID【英文标题】:DM Specific User ID on Discord.js Bot 【发布时间】:2021-10-26 00:45:01 【问题描述】:我是编码机器人的新手,我需要有关如何添加命令以向某个人发送自定义消息的帮助。这就是我到目前为止所拥有的。我该怎么办?
const Discord = require('discord.js');
const config = require("./Data/config.json")
const client = new Discord.Client( intents: ["GUILDS", "GUILD_MESSAGES"] )
client.once('ready', () =>
console.log('Ready!');
);
client.login('TOKEN');
client.on('message', async message =>
if (message.author.bot) return;
let prefix = '??'
if (!message.content.startsWith(prefix)) return;
let args = message.content.slice(prefix.length).trim().split("/ +/g");
let msg = message.content.toLowerCase();
let cmd = args.shift().toLowerCase();
if (msg.startsWith(prefix + 'ping'))
message.channel.send('pong');
if (msg.startsWith(prefix + 'hello'))
message.channel.send('hewwo uwu');
);
【问题讨论】:
【参考方案1】:要通过 id 获取用户,可以使用bot.users.fetch()
要直接向用户发送消息,您可以使用User.send()
:
const user = await client.users.fetch(userId);
user.send("This is a DM!");
【讨论】:
我如何为特定的用户 ID 制作它? 我已更新我的答案以更正确地回答您的问题 添加该代码后,如何提示它发送该 dm?我也猜它应该属于clients.on吧? 是的,这应该用在你的一个命令中,在.on("message")
监听器中
如果用户禁用了 DM,这将引发错误。【参考方案2】:
这个简单的函数可以轻松解析用户(你可以提供一个用户对象或用户ID,非常有用)
async function DMUser(resolvable, content, client)
const user = client.users.resolve(resolvable)
return user.send(content)
//returns: message sent, or error
//usage: DMUser(UserResolvable, "content", client)
相关链接:
UserManager.resolve
User.send
UserResolvable
【讨论】:
在哪里插入用户名和消息内容? 执行时。在您想要的任何回调中,只需执行DMUser(userid, content, client)
以上是关于Discord.js Bot 上的 DM 特定用户 ID的主要内容,如果未能解决你的问题,请参考以下文章