我正在尝试制作一个机器人,每当有人说某事时,它都会在频道中发送一条消息,告知该人在那里并正在等待某人加入。但是,它仅将@ ne1(我要提及的角色)打印为纯文本。另外,当我提到用户时,它只写用户ID,而不实际发送@(username)。
const Discord = require('discord.js');
const keepAlive = require('./server');
const client = new Discord.Client();
client.on('message', message => {
if (message.toString().toLowerCase().includes('ne1 here')) {
message.channel.send('@ne1, ' + message.author + ' is online and waiting for you to join!');
}
});
keepAlive();
client.login(process.env.TOKEN);
我想要的是提及@ ne1角色以及使用命令运行bot的人。它只会打印“ @ ne1 571713056673890324在线,等待您加入!”
答案 0 :(得分:2)
不一致的提及(角色,用户等)具有特殊格式,如文档here中所述。
因此,要提及一个用户,您需要使用其用户ID <@USER_ID>
/ <@!USER_ID>
,而对于一个角色,它的作用类似于<@&ROLE_ID>
。
答案 1 :(得分:1)
要提及用户,您必须具有其用户ID并使用以下格式:
<@USERID> or <@!USERID>
。对于角色,请<@&ROLEID>
。
对您的消息进行更改以适应它:
message.channel.send(`<@&${ROLEID}> <@${message.author}> is online and waiting for you to join!`);
答案 2 :(得分:-1)
我猜您正在使用discord.js v12
如果您想以最简单的方式提及用户,可以使用
message.channel.send(`@ne1, ${message.author} is online and waiting for you to join!`);
我还要使用角色ID而不是@role 您可以通过使用@role来获取ID,然后仅使用事物不和谐输出 通常类似于<@&randomnumbers>