Discord.js:机器人应该提到执行命令的用户

Posted

技术标签:

【中文标题】Discord.js:机器人应该提到执行命令的用户【英文标题】:Discord.js: Bot should mention user who did the command 【发布时间】:2021-08-04 20:48:45 【问题描述】:

我正在为 Discord 制作一个机器人,作为第一个 JS 项目,它会在用户编写 !GIF 或 !JPG 命令后打印出 GIF 或图像。此外,它将添加一条消息。 如何在 GIF / 图片上方的消息中提及发出命令的用户?我尝试并进行了搜索,但找不到解决方案。

client.on("message", msg => 

const sentences = ["Here is your sh*", "Take that image and shove it!", "Lol ok..."]
const texts = sentences[Math.floor(Math.random() * sentences.length)];

if (msg.content === "!Commands") 
  msg.reply("Use '!GIF' for random GIFs and '!JPG'for random JPGs");


if (msg.content === "!GIF")   
  gifNumber = 6 
  var randomGif = Math.floor (Math.random() * (gifNumber - 1 + 1)) + 1;
  msg.reply(texts, files: ["./gif/" + randomGif + ".gif"]); 


if (msg.content ==="!JPG") 
  jpgNumber = 2
  var randomJpg = Math.floor (Math.random() * (jpgNumber - 1 + 1)) + 1;
  msg.reply(texts, files: ["./jpg/" + randomJpg + ".jpg"]);


);

【问题讨论】:

【参考方案1】:

您可以使用msg.author.id

msg.channel.send(`<@$msg.author.id> any text`);

将允许您在同一条消息中以提及的方式向用户提及

&lt;@UserID&gt; 提到了一个用户

&lt;#ChannelID&gt; 提到了一个频道

&lt;@&amp;RoleID&gt; 提到了一个角色

【讨论】:

【参考方案2】:

字符串化的用户对象将解析为提及。 发送 2 条消息,1 条用于提及,2 条用于内容

msg.channel.send(msg.author);
msg.channel.send(texts, files: ["./jpg/" + randomJpg + ".jpg"]);

【讨论】:

以上是关于Discord.js:机器人应该提到执行命令的用户的主要内容,如果未能解决你的问题,请参考以下文章

如何使用此 discord.js 代码检查提到的用户邀请?

检查提到的用户是不是在 discord.js 中具有角色

检查用户是不是可以在提到的频道 discord.js 中发送消息

Discord JS V12 问题检查用户是不是已经拥有角色

discord.js v12 用户信息命令

@user 的 discord.js 排名命令