如何提及使用 Chat Discord.JS 发送消息的用户?

Posted

技术标签:

【中文标题】如何提及使用 Chat Discord.JS 发送消息的用户?【英文标题】:How can I mention a user who sent a message using Chat Discord.JS? 【发布时间】:2021-02-09 06:47:31 【问题描述】:

抱歉,英语不是我的母语,我是 JS 新手。 我正在让我的机器人不和谐,我需要它在一段时间内在聊天中发送随机消息,这部分我有下面的代码。 但是我还需要机器人提及最后一个在聊天中发送消息的用户 而且我不知道如何将其添加到我的代码中

async function notifLoop()
  while(true)
    client.channels.cache.get('764266751734054953').send("test text");
    await Sleep(10000)
  


function Sleep(milliseconds) 
    return new Promise(resolve => setTimeout(resolve, milliseconds));


client.on('ready', function()
    notifLoop();
    console.log("Ready");
);

【问题讨论】:

【参考方案1】:

我需要它在一段时间内在聊天中发送随机消息

Somanypeoplehavealreadyaskedthisquestion; pleasedosomeresearchbeforeasking


我还需要机器人提及最后一个在聊天中发送消息的用户

您可以使用MessageManager.fetch()Collection.prototype.first() 的组合。首先,您必须使用MessageManager.fetch() 来获取频道中的最后一条消息。此函数返回一个消息集合,您只需要其中的第一个(因为您正在获取频道中的第一条消息)。

您可以在this answer 的第一部分中的 User/GuildMember 对象中找到提及用户的方法列表

async function notifLoop() 
 const channel = client.channels.cache.get('764266751734054953');
 while (true) 
  const user = channel.messages
   .fetch( limit: 1 )
   .then((msg) => channel.send(`The user was <@$msg.author.id>`));
  await Sleep(10000);
 

【讨论】:

【参考方案2】:

你可以用它来提及用户:

  message.reply(`$message.author`);

你也可以使用它:

  message.reply(`<@$message.author.id>`);

【讨论】:

message.reply(`$message.author`) 实际上会返回 @E3saR, @E3saR

以上是关于如何提及使用 Chat Discord.JS 发送消息的用户?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 discord.js 中同时向不同频道发送消息?

Discord.js 如何使用机器人提及和设置前缀作为前缀

Discord.js 如何提及消息作者?

如何从提及 discord.js 添加角色

discord.js 如何在不提及已记录用户的情况下记录用户名以供将来使用?

如何在 discord.js 上提及