我正在使用discord.JS机器人,并且对命令有疑问。
我想创建一个!avatar命令,但是我想执行这个!avatar name / id/@。
我需要帮助。
答案 0 :(得分:1)
我假设您要获取命令参数的用户对象,以便可以使用化身。
您需要根据类型做不同的事情:
Message.mentions.users.first()
.get
来获取具有与您的参数对应的ID的用户。如果参数不是id,则结果将为undefined
这里是一个示例,假设message
是带有命令的消息,而args[0]
是您的参数。
// Asynchronous method (no caching)
let user = message.mentions.users.first()
if (!user) message.guild.members.fetch(members => {
user = members.get(args[0]) || // Gets it if it's an ID
members.find(m => m.user.username.toLowerCase() == args[0].toLowerCase()) || // This is not case-sensitive
members.find(m => m.nickname.toLowerCase() == args[0].toLowerCase()) // Nicknames come second, you can remove this line if you don't want them
})
// Synchronous method (with caching)
let user = message.mentions.users.first() ||
message.guild.members.cache.get(args[0]) ||
message.guild.members.cache.find(m => m.user.username.toLowerCase() == args[0].toLowerCase()) ||
message.guild.members.cache.find(m => m.nickname.toLowerCase() == args[0].toLowerCase())