【发布时间】:2021-03-29 21:37:00
【问题描述】:
所以我对此很陌生。我似乎无法找出为什么我的机器人没有检测到玩家何时具有静音角色。
我认为如果我输入“如果(静音)”,它将检测成员是否具有“静音”角色。它唯一能做的就是说“那个成员已经被静音了”,即使这个成员根本没有这个角色。我什至将其切换以检查成员是否具有“成员”角色,如果有,请删除该角色并添加静音角色,但它仍然无法检测该成员是否具有静音角色,并且只会执行“@member 已静音!”,而不是“该成员已静音”
代码:
module.exports = {
name: 'mute',
description: "Mute members",
execute(message, args, Discord, client) {
const Admin = message.member.roles.cache.find(role => role.id === 'AdminIDGoesHere');
const Mod = message.member.roles.cache.find(role => role.id === 'ModIdGoesHere');
if (Admin || Mod) {
const target = message.mentions.users.first();
let memberTarget = message.guild.members.cache.get(target.id);
let Mute = message.guild.roles.cache.find(role => role.id === 'MutedIdGoesHere');
let Member = message.guild.roles.cache.find(role => role.id === 'MemberIdGoesHere');
if (target) {
if (Mute) {
message.reply("That member is muted already!")
} else {
memberTarget.roles.add(Mute);
memberTarget.roles.remove(Member);
message.reply(`<@${memberTarget.user.id}> has been muted!`).then(msg => {
msg.delete({ timeout: 5000 });
})
}
} else {
message.reply("Couldn't find that member!").then(msg => {
msg.delete({ timeout: 5000 });
})
}
} else {
message.reply("You don't have permission to do that!").then(msg => {
msg.delete({ timeout: 5000 })
})
}
}
}
就像我说的,我对此很陌生,哈哈。我已经查找了几个小时来了解如何做到这一点,我觉得这是一个我看不到、想不到或找不到的简单解决方案。任何帮助将不胜感激。谢谢。
【问题讨论】:
-
您的角色 ID 是否正确?
-
是的,我确实有正确的 ID。
标签: discord discord.js