unmute.roles.has(muterole) 失败
unmute.roles.has(muterole) failed
每当我键入以下命令 //unmute
时,它都会显示 This member isn't muted!
尽管我指定的人确实被静音了。几个小时以来,我一直坚持执行此命令,但似乎找不到问题所在。 (静音命令来自this,我改变了一些东西)
if (command === "mute") {
if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this! \n (*Required permission -* __***MANAGE MESSAGES***__)")
let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!tomute) return message.reply("Couldn't find user.");
let muterole = message.guild.roles.find(`name`, "muted");
//start of create role
if (!muterole) {
try {
muterole = await message.guild.createRole({
name: "muted",
color: "#000000",
permissions: []
})
message.guild.channels.forEach(async(channel, id) => {
await channel.overwritePermissions(muterole, {
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
});
} catch (e) {
console.log(e.stack);
}
}
//end of create role
let mutetime = args[1];
if (!mutetime) return message.reply("You didn't specify a time!");
await (tomute.addRole(muterole.id));
message.channel.send(`<@${tomute.id}> has been muted for ${ms(ms(mutetime), { long:true })}`);
setTimeout(function() {
tomute.removeRole(muterole.id);
message.channel.send(`<@${tomute.id}> has been unmuted!`);
}, ms(mutetime));
}
if (command === "unmute") {
if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this! \n (*Required permission -* __***MANAGE MESSAGES***__)")
let unmute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!unmute) return message.reply("Couldn't find user.");
let muterole = message.guild.roles.find(`name`, "muted");
if (!unmute.roles.has(muterole)) return message.channel.send("This member isn't muted!");
await member.removeRole(muterole.id);
message.channel.send(`<@${unmute.id}> has been unmuted!`);
}
感谢@Profit在主要问题评论区的回答。问题解决了。
将 .id
添加到 if (!unmute.roles.has(muterole
此处 ))
。
之后,现在它应该是这样的:if (!unmute.roles.has(muterole.id))
.
.has
用于检查指定key的元素是否存在
每当我键入以下命令 //unmute
时,它都会显示 This member isn't muted!
尽管我指定的人确实被静音了。几个小时以来,我一直坚持执行此命令,但似乎找不到问题所在。 (静音命令来自this,我改变了一些东西)
if (command === "mute") {
if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this! \n (*Required permission -* __***MANAGE MESSAGES***__)")
let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!tomute) return message.reply("Couldn't find user.");
let muterole = message.guild.roles.find(`name`, "muted");
//start of create role
if (!muterole) {
try {
muterole = await message.guild.createRole({
name: "muted",
color: "#000000",
permissions: []
})
message.guild.channels.forEach(async(channel, id) => {
await channel.overwritePermissions(muterole, {
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
});
} catch (e) {
console.log(e.stack);
}
}
//end of create role
let mutetime = args[1];
if (!mutetime) return message.reply("You didn't specify a time!");
await (tomute.addRole(muterole.id));
message.channel.send(`<@${tomute.id}> has been muted for ${ms(ms(mutetime), { long:true })}`);
setTimeout(function() {
tomute.removeRole(muterole.id);
message.channel.send(`<@${tomute.id}> has been unmuted!`);
}, ms(mutetime));
}
if (command === "unmute") {
if (!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("Sorry, you don't have permissions to use this! \n (*Required permission -* __***MANAGE MESSAGES***__)")
let unmute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if (!unmute) return message.reply("Couldn't find user.");
let muterole = message.guild.roles.find(`name`, "muted");
if (!unmute.roles.has(muterole)) return message.channel.send("This member isn't muted!");
await member.removeRole(muterole.id);
message.channel.send(`<@${unmute.id}> has been unmuted!`);
}
感谢@Profit在主要问题评论区的回答。问题解决了。
将 .id
添加到 if (!unmute.roles.has(muterole
此处 ))
。
之后,现在它应该是这样的:if (!unmute.roles.has(muterole.id))
.
.has
用于检查指定key的元素是否存在