添加到 Discord.JS 用户信息 post
Add On to Discord.JS Userinfo post
好的,这可能看起来像复制粘贴,但事实并非如此。我需要更多支持。我正在努力让我的机器人做更多的事情。我应该将它添加到第一个问题,但我认为它不会被查看。这是我要添加的内容。
- 说用户加入公会的时间和日期
- 在 userinfo.tag 函数中标记用户
- 列出用户的昵称
我试过使用 .guildmember
class 但它不起作用,我将 userMention 附加到 .guildmember
class,如下所示: userMention.guildmember.joinedAt
或 displayName
。我修改代码时的大部分结果是来自机器人的 TypeErrors 或 ReferenceErrors.
我确实用了别人的代码,我安装了 Moment,所以我可以 运行 用别人的代码,但它又报错了。
TypeError: Cannot read property 'filter' of undefined
我无法获取 Moment 代码。
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() || message.author;
let userinfo = {};
userinfo.bot = userMention.bot;
userinfo.createdat = userMention.createdAt;
userinfo.joinedat = userMention.message.guildmember.joinedat;
userinfo.discrim = userMention.discriminator;
userinfo.id = userMention.id;
userinfo.tag = userMention.tag;
userinfo.uname = userMention.username;
userinfo.status = userMention.presence.status;
userinfo.play = userMention.presence.game;
userinfo.avatar = userMention.avatarURL;
const rolesOfTheMember = userMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Username",userinfo.uname, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Created At",userinfo.createdat, true)
.addField("Joined at:",userinfo.joinedat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("Bot?",userinfo.bot, true)
.addField("Status",userinfo.status, true)
.addField("Playing",userinfo.play, true)
.addField("Roles",rolesOfTheMember, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
预期: 一个列出代码中显示的所有内容以及项目符号的机器人。
实际: 仅显示类型和引用错误的机器人。就像
TypeError: Cannot read property 'guildmember' of undefined
TypeError: Cannot read property 'filter' of undefined
ReferenceError: guildmember is not defined
ReferenceError: user is not defined
我正在使用这些网站作为参考
https://discord.js.org/#/docs/main/stable/general/welcome
*特别是这一行!
.addField('Joined at:', `${moment.utc(user.joinedAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)
尝试使用 userMention = message.mentions.members.first();
我认为这是导致问题的原因
使用
var umen = message.mentions.members.first() || message.member;
var umen2 = message.mentions.users.first() || message.author;
"Booleans" 也有问题,它们不应该是 === "false"
,因为它们是布尔值,而不是字符串。执行 === false
或 === true
好的,这可能看起来像复制粘贴,但事实并非如此。我需要更多支持。我正在努力让我的机器人做更多的事情。我应该将它添加到第一个问题,但我认为它不会被查看。这是我要添加的内容。
- 说用户加入公会的时间和日期
- 在 userinfo.tag 函数中标记用户
- 列出用户的昵称
我试过使用 .guildmember
class 但它不起作用,我将 userMention 附加到 .guildmember
class,如下所示: userMention.guildmember.joinedAt
或 displayName
。我修改代码时的大部分结果是来自机器人的 TypeErrors 或 ReferenceErrors.
我确实用了别人的代码,我安装了 Moment,所以我可以 运行 用别人的代码,但它又报错了。
TypeError: Cannot read property 'filter' of undefined
我无法获取 Moment 代码。
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() || message.author;
let userinfo = {};
userinfo.bot = userMention.bot;
userinfo.createdat = userMention.createdAt;
userinfo.joinedat = userMention.message.guildmember.joinedat;
userinfo.discrim = userMention.discriminator;
userinfo.id = userMention.id;
userinfo.tag = userMention.tag;
userinfo.uname = userMention.username;
userinfo.status = userMention.presence.status;
userinfo.play = userMention.presence.game;
userinfo.avatar = userMention.avatarURL;
const rolesOfTheMember = userMention.roles.filter(r => r.name !== '@everyone').map(role => role.name).join(', ')
var myInfo = new discord.RichEmbed()
.setAuthor(userinfo.uname, userinfo.avatar)
.addField("Username",userinfo.uname, true)
.addField("Client Tag",userinfo.tag, true)
.addField("Created At",userinfo.createdat, true)
.addField("Joined at:",userinfo.joinedat, true)
.addField("Discriminator",userinfo.discrim, true)
.addField("Client ID",userinfo.id, true)
.addField("Bot?",userinfo.bot, true)
.addField("Status",userinfo.status, true)
.addField("Playing",userinfo.play, true)
.addField("Roles",rolesOfTheMember, true)
.setColor(0xf0e5da)
.setFooter('s!aboutserver')
.setTitle("About this user...")
.setThumbnail(userinfo.avatar)
message.channel.sendEmbed(myInfo);
}
}
module.exports = aboutuser;
预期: 一个列出代码中显示的所有内容以及项目符号的机器人。
实际: 仅显示类型和引用错误的机器人。就像
TypeError: Cannot read property 'guildmember' of undefined
TypeError: Cannot read property 'filter' of undefined
ReferenceError: guildmember is not defined
ReferenceError: user is not defined
我正在使用这些网站作为参考
https://discord.js.org/#/docs/main/stable/general/welcome
.addField('Joined at:', `${moment.utc(user.joinedAt).format('dddd, MMMM Do YYYY, HH:mm:ss')}`, true)
尝试使用 userMention = message.mentions.members.first();
我认为这是导致问题的原因
使用
var umen = message.mentions.members.first() || message.member;
var umen2 = message.mentions.users.first() || message.author;
"Booleans" 也有问题,它们不应该是 === "false"
,因为它们是布尔值,而不是字符串。执行 === false
或 === true