Discord.JS 用户信息命令
Discord.JS Userinfo command
我正在努力让这个机器人能够做到这一点...
- 显示用户角色
- 你 d!au @User 和他们的用户信息显示
唯一的问题是我不知道该怎么做,我发现了其他一些堆栈溢出问题,但他们的机器人需要 "moment",我不知道现在是什么时候。这是在命令文件中,而不是 index.js 文件,仅供参考。
var commando = require('discord.js-commando');
var discord = require('discord.js');
class aboutuser extends commando.Command
{
constructor(client) {
super(client, {
name: 'aboutuser',
group: 'help',
memberName: 'aboutuser',
description: 'Lists information about a specific user.',
aliases: ['au', 'aboutu', 'auser', 'user'],
})
}
async run(message, args){
let userinfo = {};
userinfo.bot = message.client.user.bot;
userinfo.createdat = message.client.user.createdAt;
userinfo.discrim = message.client.user.discriminator;
userinfo.id = message.client.user.id;
userinfo.mfa = message.client.user.mfaEnabled;
userinfo.pre = message.client.user.premium;
userinfo.presen = message.client.user.presence;
userinfo.tag = message.client.user.tag;
userinfo.uname = message.client.user.username;
userinfo.verified = message.client.user.verified;
userinfo.avatar = message.client.user.avatarURL;
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Bot?",userinfo.bot, true)
.addField("Created At",userinfo.createdat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("2FA/MFA Enabled?",userinfo.mfa, true)
.addField("Paid Account?",userinfo.pre, true)
.addField("Presence",userinfo.presen, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Username",userinfo.uname, true)
.addField("Verified?",userinfo.verified, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
我想让我的机器人能够显示用户的角色,并让您可以标记他们。
现实:命令出错,但是bot在线。参考错误,未定义空白。
期望:一个可以列出用户角色的机器人,使用命令时可以看到其他用户的信息。
我只粘贴了有效的代码,而不是最终失败的代码。
以下代码应该可以完成您想要的所有工作:
var commando = require('discord.js-commando');
var discord = require('discord.js');
class aboutuser extends commando.Command
{
constructor(client) {
super(client, {
name: 'aboutuser',
group: 'help',
memberName: 'aboutuser',
description: 'Lists information about a specific user.',
aliases: ['au', 'aboutu', 'auser', 'user'],
})
}
async run(message, args){
const userMention = message.mentions.users.first() || msg.author;
const memberMention = message.mentions.members.first() || msg.member;
let userinfo = {};
userinfo.bot = userMention.bot;
userinfo.createdat = userMention.createdAt;
userinfo.discrim = userMention.discriminator;
userinfo.id = userMention.id;
userinfo.mfa = userMention.mfaEnabled;
userinfo.pre = userMention.premium;
userinfo.presen = userMention.presence;
userinfo.tag = userMention.tag;
userinfo.uname = userMention.username;
userinfo.verified = userMention.verified;
userinfo.avatar = userMention.avatarURL;
const rolesOfTheMember = memberMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Bot?",userinfo.bot, true)
.addField("Created At",userinfo.createdat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("2FA/MFA Enabled?",userinfo.mfa, true)
.addField("Paid Account?",userinfo.pre, true)
.addField("Presence",userinfo.presen, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Username",userinfo.uname, true)
.addField("Verified?",userinfo.verified, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
我添加了两个新变量来检查是否提到了 guildMember。如果是,该命令将显示所提及成员的统计信息,如果不是,则机器人将显示消息作者的统计信息。
然后我还添加了一个新变量 "rolesOfTheMember",它是成员拥有的所有角色的列表。您可以简单地将此变量添加到您的 Discord RichEmbed 中,然后列出公会成员在 Discord 服务器上拥有的角色!
玩得开心!
Moment 是一个让您(非常)轻松地格式化时间的软件包。你安装它和 discord.js 一样,所以在你的命令提示符下你做 npm install moment
(如果你安装 discord.js 使用一些其他语法,在这里也使用相同的,只需替换 discord.js 与片刻)。这将安装包,然后你就可以使用它了,只是不要忘记把 const moment = require('moment');
放在你的代码的开头,你应该是好的。
所有时间格式都可以在这里找到:
https://momentjs.com/docs/#/parsing/string-format/
我正在努力让这个机器人能够做到这一点...
- 显示用户角色
- 你 d!au @User 和他们的用户信息显示
唯一的问题是我不知道该怎么做,我发现了其他一些堆栈溢出问题,但他们的机器人需要 "moment",我不知道现在是什么时候。这是在命令文件中,而不是 index.js 文件,仅供参考。
var commando = require('discord.js-commando');
var discord = require('discord.js');
class aboutuser extends commando.Command
{
constructor(client) {
super(client, {
name: 'aboutuser',
group: 'help',
memberName: 'aboutuser',
description: 'Lists information about a specific user.',
aliases: ['au', 'aboutu', 'auser', 'user'],
})
}
async run(message, args){
let userinfo = {};
userinfo.bot = message.client.user.bot;
userinfo.createdat = message.client.user.createdAt;
userinfo.discrim = message.client.user.discriminator;
userinfo.id = message.client.user.id;
userinfo.mfa = message.client.user.mfaEnabled;
userinfo.pre = message.client.user.premium;
userinfo.presen = message.client.user.presence;
userinfo.tag = message.client.user.tag;
userinfo.uname = message.client.user.username;
userinfo.verified = message.client.user.verified;
userinfo.avatar = message.client.user.avatarURL;
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Bot?",userinfo.bot, true)
.addField("Created At",userinfo.createdat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("2FA/MFA Enabled?",userinfo.mfa, true)
.addField("Paid Account?",userinfo.pre, true)
.addField("Presence",userinfo.presen, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Username",userinfo.uname, true)
.addField("Verified?",userinfo.verified, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
我想让我的机器人能够显示用户的角色,并让您可以标记他们。
现实:命令出错,但是bot在线。参考错误,未定义空白。
期望:一个可以列出用户角色的机器人,使用命令时可以看到其他用户的信息。
我只粘贴了有效的代码,而不是最终失败的代码。
以下代码应该可以完成您想要的所有工作:
var commando = require('discord.js-commando');
var discord = require('discord.js');
class aboutuser extends commando.Command
{
constructor(client) {
super(client, {
name: 'aboutuser',
group: 'help',
memberName: 'aboutuser',
description: 'Lists information about a specific user.',
aliases: ['au', 'aboutu', 'auser', 'user'],
})
}
async run(message, args){
const userMention = message.mentions.users.first() || msg.author;
const memberMention = message.mentions.members.first() || msg.member;
let userinfo = {};
userinfo.bot = userMention.bot;
userinfo.createdat = userMention.createdAt;
userinfo.discrim = userMention.discriminator;
userinfo.id = userMention.id;
userinfo.mfa = userMention.mfaEnabled;
userinfo.pre = userMention.premium;
userinfo.presen = userMention.presence;
userinfo.tag = userMention.tag;
userinfo.uname = userMention.username;
userinfo.verified = userMention.verified;
userinfo.avatar = userMention.avatarURL;
const rolesOfTheMember = memberMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Bot?",userinfo.bot, true)
.addField("Created At",userinfo.createdat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("2FA/MFA Enabled?",userinfo.mfa, true)
.addField("Paid Account?",userinfo.pre, true)
.addField("Presence",userinfo.presen, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Username",userinfo.uname, true)
.addField("Verified?",userinfo.verified, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
我添加了两个新变量来检查是否提到了 guildMember。如果是,该命令将显示所提及成员的统计信息,如果不是,则机器人将显示消息作者的统计信息。
然后我还添加了一个新变量 "rolesOfTheMember",它是成员拥有的所有角色的列表。您可以简单地将此变量添加到您的 Discord RichEmbed 中,然后列出公会成员在 Discord 服务器上拥有的角色!
玩得开心!
Moment 是一个让您(非常)轻松地格式化时间的软件包。你安装它和 discord.js 一样,所以在你的命令提示符下你做 npm install moment
(如果你安装 discord.js 使用一些其他语法,在这里也使用相同的,只需替换 discord.js 与片刻)。这将安装包,然后你就可以使用它了,只是不要忘记把 const moment = require('moment');
放在你的代码的开头,你应该是好的。
所有时间格式都可以在这里找到: https://momentjs.com/docs/#/parsing/string-format/