我的机器人有一个 Whois/Userinfo 命令,它运行良好,直到您不能使用 ID 作为命令,所以您必须 ping 用户,我想知道如何制作它以便您可以使用 ID 和 ping
const Discord = require('discord.js');
module.exports = {
name: 'whois',
description: "Clear messages!",
async execute(client, message, args) {
let user;
if (message.mentions.users.first()) {
user = message.mentions.users.first();
} else {
user = message.author;
}
const member = message.guild.member(user);
const embed = new Discord.MessageEmbed()
.setColor("RANDOM")
.setAuthor(`${user.tag}`, `${member.user.displayAvatarURL({ dynamic: true })}`,)
.setThumbnail(`${member.user.displayAvatarURL({ dynamic: true })}`)
.addField(`${user.tag}`, `${user}`, true)
.addField("Joined The Server On:", `${member.joinedAt}`, true)
.addField("Joined Discord At", member.user.createdAt)
.addField("Nickname:", `${member.nickname !== null ? `${member.nickname}` : 'None'}`, true)
.addField("Status:", user.presence.status, true)
.addFields(
{ name: 'User ID', value: `${user.id}` },
{ name: 'Roles', value: member.roles.cache.map(role => role.toString()).join(' ')},
)
.setFooter(`Replying to ${message.author.username}#${message.author.discriminator}`)
message.channel.send(embed);
}
}
答案 0 :(得分:0)
我们可以在定义某个变量时检查多个值。所以我们首先要检查消息中是否有 ping,如果没有,则检查第一个参数是否可以根据 ID 转换为用户,最后如果没有,则获取消息作者:
const user = message.mentions.users.first() || client.users.cache.get(args[0]) || message.author