如果用户不是字符串,如何修复{user.username}?

时间:2019-04-08 06:23:35

标签: discord.js

我实际上是在编写Js Discord Bot,并且正在创建XP系统。

我希望我的机器人在输入&level时给出作者的身份,并且可以正常工作。

但是,如果我使用&level @DiscordUser,则可以获取此Discord用户的用户ID,除非在这样的嵌入中使用它时:

const embed = {
                  "title": "Fiche Niveau d'Exagide",
                  "description": 'Utilisateur : **' + `${userid.username}` + "**",
                  "color": 10384204
               }

在这种情况下,它返回:Utilisateur : undefined

userid是从将Mention转换为ID的函数中获得的const

例如,它将<@549317568339640336>变成549317568339640336

function getUserFromMention(mention) {
              if (!mention) return;

              if (mention.startsWith('<@') && mention.endsWith('>')) {
                mention = mention.slice(2, -1);

                if (mention.startsWith('!')) {
                  mention = mention.slice(1);
                }
                return mention;
              }}

如果提到Utilisateur : Discord User,我只是希望嵌入返回@Discord User

2 个答案:

答案 0 :(得分:1)

只需使用以下命令即可获取所提及用户的用户对象:

message.mentions.users.first()

或提到的用户的成员对象:

message.mentions.members.first()

答案 1 :(得分:-2)

您可以使用此代码

 function mentionsRegex (dot) {
if (dot) {
// e.g. @google.com will match `google.com`
return /(?:^|[^a-zA-Z0-9_@!@#$%&*])(?:(?:@|@)(?!\/))([a-zA-Z0-9/_.]{1,15}) 
 (?:\b(?!@|@)|$)/
}
 // e.g. @google.com will match `google`
return /(?:^|[^a-zA-Z0-9_@!@#$%&*])(?:(?:@|@)(?!\/))([a-zA-Z0-9/_]{1,15})(?:\b(?!@| 
@)|$)/
}

取自mentions-regex 您还可以看到mentions out of strings like twitter in javascript