首页 > 解决方案 > DM 特定用户 ID

问题描述

const Discord = require('discord.js');
const bot = new Discord.Client();
const PREFIX = "!!";

bot.on("message", async message => {
  if(message.content.toLowerCase().startsWith(`${PREFIX}suggest`)) {
     //a user says "!!suggest more commands"
     message. /*ID <@206377170707152906>*/ .send(`The user {$message.author.name.toString()} has given a suggestion; "${message.content.toString()}`);
     //then a DM is sent to the <@206377170707152906> ID saying (the ID is different from user ABC123's ID) "The user ABC123 has given a suggestion; "!!suggest more commands"
     message.author.send(`The suggestion "${message.content.toString()}" has been sent!`);
     return;
   }}

如何将 ID "<@206377170707152906>" 放入 message.send 以便将 DM 发送到 "<@206377170707152906>" ID?

标签: javascriptnode.jsdiscorddiscord.js

解决方案


要发送直接消息,您需要用户对象。您可以从 获取缓存的用户client.users,但该用户可能不在缓存中。要“加载”该用户并向他发送消息,您可以执行以下操作:

client.users.fetch('123456789').then((user) => {
    user.send("My Message");
});

不要忘记替换123456789为您想要的 ID。在这种情况下,您只需要数字,不需要<@...>


推荐阅读