【发布时间】:2020-07-13 10:40:26
【问题描述】:
我有一行代码用于不和谐机器人删除特定命名角色并在特定时间内添加名为“静音”的角色。基本上,服务器只能有 3 个角色,一个可以发出命令,一个具有正常权限的“普通”等级,然后是一个“静音”角色。我的代码专门删除了正常角色并添加了静音角色,因此他们没有任何权限。
好吧,我将我的机器人添加到了具有 3 个以上角色的另一台服务器上,我决定给每个人一个正常角色,同时让每个人都成为静音角色。当我运行命令时,它可以工作,但由于人们有其他角色,因此即使静音角色处于最高优先级,它也允许继续发言。
我的问题是,是否有一些代码可以删除他们的所有角色并添加静音角色。并且当静音期结束时,静音角色被删除并恢复他们以前的角色?下面是我的代码:
case 'mute':
if(!message.member.roles.cache.find(r => r.name === "Admin")) return message.channel.send('You dont have permissions to do that you clown')
let person = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[1]))
if(!person) return message.reply("User Doesn't Exist");
let mainrole = message.guild.roles.cache.find(role => role.name == "normal");
let muterole = message.guild.roles.cache.find(role => role.name == "muted");
if(!muterole) return message.reply("Role Doesn't Exist");
let time = args[2];
if(!time){
return message.reply("How Long?");
}
person.roles.remove(mainrole.id);
person.roles.add(muterole.id);
message.channel.send(`@${person.user.tag} has now been muted for ${ms(ms(time))}`);
setTimeout(function(){
person.roles.add(mainrole.id);
person.roles.remove(muterole.id);
message.channel.send(`@${person.user.tag} has now been unmuted`)
}, ms(time));
break;
case 'help':
const embed2 = new MessageEmbed()
.setTitle("How To Get Commands")
.setColor(0x00fff7)
.setDescription("Do /commands to get the list of commands");
message.author.send(embed2);
break;
【问题讨论】:
标签: javascript discord discord.js roles