[英]So i want to make my bot do a callback like return if the mentioned user already has a role
如果提到的用户已经具有指定的角色,我需要帮助让我的机器人做某事我收到一个错误,它可以定义 get 并且它不会执行我的 if 语句我的代码在这里
module.exports = {
name: 'jail',
description: "This command mutes a member a member!",
execute(message, args, Discord) {
let target = message.mentions.users.first();
let memberTarget = message.guild.members.cache.get(target.id);
let test = GuildMember.roles.get(role => role.name === 'Jailed')
if (message.author.id === memberTarget.id) {
message.reply('You cant jail yourself dummy'); return;
} else {
}
if (memberTarget === test) {
message.channel.send('e'); return;
} else {
message.channel.send('jailed user')
}
}
主要问题在这里
if (memberTarget === test) {
message.channel.send('e'); return;
} else {
message.channel.send('jailed user')
}
任何帮助都很棒
笔记。 调试器没有说错,但是当我执行命令执行错误时,我的机器人会关闭,因为它可以定义 get
我的问题是我无法获得角色并执行我的 if 语句
module.exports = {
name: 'jail',
description: "This command mutes a member a member!",
execute(message, args, Discord) {
let target = message.mentions.users.first();
let test = message.guild.roles.cache.find(role => role.name === 'Jailed');
if (message.author.id === target.id) {
return message.reply('You cant jail yourself dummy');
}
if (message.guild.member(target).roles.cache.some(role => role.name === test.name)) {
return message.channel.send('e');
} else {
message.guild.member(target).roles.add(test);
message.channel.send('jailed user')
}
}
我对您的代码进行了一些更改。 我删除memberTarget
,因为在这种情况下target
就足够了。 test
在当前公会中找到Jailed
角色。 在我们询问target
是否已经具有角色的 if 语句中,我使用GuildMember Object 作为target
。 .some()
返回true
或false
。 因此它在 GuildMember Object 的target
中搜索Jailed
角色 ( test.name
)。 如果在 Object 上找到它,则返回true
并进入语句。 否则它转到else
, GuildMember target
被添加到角色Jailed
( test
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.