具有多个成员的Discord服务器将标签格式化为<@&燃气轮机;类型,如何使discord.js bot处理这些?

具有多个成员的Discord服务器将标签格式化为<@&燃气轮机;类型,如何使discord.js bot处理这些?,discord.js,Discord.js,我有一个命令,它重复一条消息,并将消息的前两部分替换为空,即“c!”!实际消息中的fquote@user”。这适用于任何成员很少的服务器,但在某些情况下(我不确定何时),discord会使用将标记更改为格式。当粘贴到聊天中时,它会标记这个人,但我的机器人会读取实际的标记 let user = message.mentions.users.first() let saymsgchecked = saymsg.replace("c!fquote " + user," ") if(say

我有一个命令,它重复一条消息,并将消息的前两部分替换为空,即“c!”!实际消息中的fquote@user”。这适用于任何成员很少的服务器,但在某些情况下(我不确定何时),discord会使用将标记更改为格式。当粘贴到聊天中时,它会标记这个人,但我的机器人会读取实际的标记

 let user = message.mentions.users.first()
 let saymsgchecked = saymsg.replace("c!fquote " + user," ")
     if(saymsgchecked.endsWith(" ")){
       message.channel.send(helpquoteEmbed)
     }
     else{
       const quoteEmbed = new Discord.RichEmbed()
       .setColor('#00abff')
       .setAuthor(user.username + " said:", user.avatarURL, '')
       .setTitle(saymsg.replace("c!fquote " + user,""))
       .setTimestamp()
       message.channel.send(quoteEmbed)
       message.delete(1)
     }
那么这里的主体部分,;“(saymsg.replace(“c!fquote”+user,”)正在替换消息中的这两个。在小型服务器中,用户读作@username。效果很好!但在更大的服务器中,它读作“<!@659818749185728>”(例如,不带空格的随机数),但消息包含@username,而不是该数字字符串,因此它不会替换它。我如何处理这种格式?我已经把这个机器人扔进了2台有200多个成员的服务器和3台有5个以下用户的随机新服务器,它在大型服务器上做同样的事情,但在小型服务器上工作得非常完美

所以基本上我想要的是: 如何使它停止在大型服务器中以数字字符串的形式读取usertag? 或
如何将“+用户”更改为包含实际标记文本(例如@username)和字符串(例如<!@45985721984523>)的内容台面包含
台面包含
更新:

我对ID进行了双重筛选,包括:

setTitle(saymsg.replace("c!fquote <@!" + userlarge.id + "> ",""))
setTitle(saymsg.replace(“c!fquote)”,“”)
它可以工作,但不是一个有效的解决方案,因为一旦它检查服务器是否有超过N个成员,我就会创建一个副本。我将其设置为,如果服务器的值超过100,则使用此格式而不是标记格式,因为100是一个不错的整数。但我不知道确切的格式何时更改为,可能是250,甚至可能是23。我不知道,所以我仍在寻找替代解决方案。

更新:

我对ID进行了双重筛选,包括:

setTitle(saymsg.replace("c!fquote <@!" + userlarge.id + "> ",""))
setTitle(saymsg.replace(“c!fquote)”,“”)

它可以工作,但不是一个有效的解决方案,因为一旦它检查服务器是否有超过N个成员,我就会创建一个副本。我将其设置为,如果服务器的值超过100,则使用此格式而不是标记格式,因为100是一个不错的整数。但我不知道确切的格式何时更改为,可能是250,甚至可能是23。我不知道,所以我仍在寻找替代解决方案。

我认为最好的方法是一旦你拥有了用户,使用他们的id

//如果以后需要用户对象,而不仅仅是id,请不要使用此选项。
const{id}=message.indications.members.first();
//把那个人说成机器人
message.channel.send(`Hey there,`);

这应该没有问题,但如果有问题,请随时在下面发表评论,如果问题发生变化,请告诉我发生了什么。

我认为最好的方法是一旦拥有用户,使用他们的id

//如果以后需要用户对象,而不仅仅是id,请不要使用此选项。
const{id}=message.indications.members.first();
//把那个人说成机器人
message.channel.send(`Hey there,`);
这应该没有问题,但如果有问题,请在下面随意评论,如果问题发生变化,请告诉我发生了什么