Discord.js V13 如何获取命令中被提及用户的账号创建日期
注意:我当前使用的是 v13 版本的 "discord.js"。
现有命令代码
if (command === 'check') { if (message.member.permissions.has(['KICK_MEMBERS'])) { let mentioned = message.mentions.users.first(); let name = mentioned.username message.channel.send(`Account name: ${name}.`) message.channel.send(`Account ID: ${mentioned.user.}`) } else if (!message.member.permissions.has( ['KICK_MEMBERS'])) { message.channel.send('You do not have permissions to do this command!') } else { message.channel.send('An error has occured while attempting to run the command.') } }
let mentioned = message.mentions.users.first(); 用于获取被提及的用户
命令调用方式
!check @Downrest
解决方案
你代码里的mentioned本身就是从用户提及列表中获取的User类实例,不需要额外加.user调用,要获取账号创建日期直接调用mentioned.createdAt属性即可,该属性返回标准JS Date对象,可直接使用或按需求格式化后输出。
同时你原代码里获取用户ID的写法有误,正确写法为mentioned.id,优化后的代码示例如下:
if (command === 'check') { if (message.member.permissions.has(['KICK_MEMBERS'])) { // 增加非空判断,避免未@用户时程序报错 if (!message.mentions.users.size) { return message.channel.send('你需要@一个目标用户才能使用该命令') } const mentioned = message.mentions.users.first(); // 转换为本地可读时间格式,可根据需求调整格式化规则 const createDate = mentioned.createdAt.toLocaleString(); message.channel.send(`账号名: ${mentioned.username}`) message.channel.send(`账号ID: ${mentioned.id}`) message.channel.send(`账号创建时间: ${createDate}`) } else { message.channel.send('你没有使用该命令的权限!') } }
内容的提问来源于stack exchange,提问作者Downrest
相关产品推荐
相关产品推荐

