首页 > 解决方案 > 当用户不是字符串时如何修复 {user.username}?

问题描述

我实际上正在编写一个 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 get

例如,它<@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被提及。

标签: discord.js

解决方案


只需简单地使用以下内容来获取提到用户的用户对象:

message.mentions.users.first()

或提及用户的成员对象:

message.mentions.members.first()

推荐阅读