我正在使用v12在我的不和谐机器人discord.js用户信息命令。我唯一的问题是,如果一个用户没有任何角色,最高的角色显示为@@所有人,而不是@所有人。所以我想避免它,如果用户没有任何角色,它会说“这个用户在这个服务器上没有角色”。我的代码在这里(只有与角色相关的部分):
const { DiscordAPIError } = require("discord.js");
const Discord = require("discord.js");
const moment = require("moment");
module.exports = {
name: "profile",
description: "The bot will return the info about the user",
execute(message, args){
let userinfoget = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member
var highestRoleID = userinfoget.roles.highest.id;
var joined = moment(userinfoget.joinedAt).format('DD/MM/YY, HH:mm:ss')
console.log(`Highest role = ${highestRoleID}`);
console.log(`User = ${userinfoget}`);
console.log(userinfoget.roles)
if(!userinfoget.roles) console.log('no roles')
const embed = new Discord.MessageEmbed()
.setColor(userinfoget.displayHexColor)
.setAuthor(`${userinfoget.user.tag}`, userinfoget.user.displayAvatarURL())
.addFields(
{name: `User ping`,
value: `<@${userinfoget.id}>`}
)
.addFields(
{name: `User ID`,
value: `${userinfoget.id}`}
)
.addFields(
{name: 'Joined Server',
value: moment(userinfoget.joinedAt).format('LLLL') + ' ' + timeFromJoiningServerMessage} // or moment(userinfoget.joinedAt).format('DD/MM/YY, HH:mm:ss')
)
.addFields(
{name: 'Joined Discord',
value: moment(userinfoget.user.createdAt).format('LLLL')} // or moment(userinfoget.createdAt).format('DD/MM/YY, HH:mm:ss')
)
.addFields(
{name: 'Highest role',
value: `<@&${highestRoleID}>`}
)
.addFields(
{name: 'Online Status',
value: `${status}`}
)
.addFields(
{name: 'Is a bot?',
value: `${isBot}`}
)
.setFooter('Bot made by mkpanda')
message.channel.send(embed);
}
如你所见,我试着做了!用户信息获取。角色
,但在记录时,它会显示有关用户的所有信息,而不仅仅是角色。如何检测用户是否具有任何角色?提前感谢:)
你可以用这个;
js prettyprint-override">userinfoget.roles.cache.size === 1 ? 'No roles' : userinfoget.roles.cache.map(r => '<@&' + r.id + '>').join(', ')
因为如果没有用户没有角色,那么他们只会是“@所有人”,所以角色大小将是一个。您可以使用此信息查看用户是否具有角色
GuildMember。角色。缓存
是一个集合
(非常类似于数组
)。因此,您可以使用Collection#filter
并检查角色的名称是否等于
@everybody
。这将从集合中删除
@everyone
角色,您可以检查行会成员是否有任何角色。
.addFields({
name: 'Highest role',
value: message.member.roles.cache.filter(role => role.name !== "@everyone").size > 0 ? message.member.roles.highest : "This member has no roles."
})
收藏#地图
收集#过滤器
条件(三元)运算符
我跟随文章,https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory并创建了一个应用程序角色 使用hasAuthority,我可以验证单个角色。但是,我想允许管理员或具有参与者权限的
我正在做一个giverole命令,就像!giverole{member}{role},但是我怎么知道bot最高角色是否高于提到的角色。我还没试过什么,因为我卡住了,请帮帮我。 我正在使用discord.js v12
我有麻烦让我的代码工作。当用户输入用户名时,它会检查数据库,看看它是否存在,以及它是否设置了
问题内容: 因此,我从服务器获取了一些JSON值,但我不知道是否会有特定的字段。 像这样: 有时,还会有一个额外的字段,例如: 我想检查名为“ club”的字段是否存在,以便在解析时不会得到 org.json.JSONException:club的值 问题答案: JSONObject类具有一个名为“ has”的方法: http://developer.android.com/reference/o
所以,我从服务器上获得了一些JSON值,但我不知道是否会有一个特定的字段。 比如: 有时,会有一个额外的字段,如: 我想检查名为“club”的字段是否存在,这样在解析时我就不会得到 组织。json。JSONException:俱乐部没有价值
问题内容: 如何检查C语言在Linux上是否存在目录? 问题答案: 您可以使用并检查是否失败: