[英]discord.js can't mute a member for 10m if there's no mute time
如果有人没有指定时间,我的机器人如何将某人静音 10m 但这里发生的情况是没有时间静音,时间立即结束,没有时间:
client.on('message', async message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if(command === 'mute') {
// !mute @user 1s/m/h/d
message.delete().catch();
const tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
const rule = message.guild.roles.find(r => r.name === 'member');
const mutetime = args[1];
let muterole = message.guild.roles.find(c => c.name === 'muted');
if(!muterole) {
try{
muterole = await message.guild.createRole({
name: 'muted',
color: '#000000',
permissions:['MUTE_MEMBERS', 'MANAGE_ROLES_OR_PERMISSIONS', 'SEND_MESSAGES', 'ADD_REACTIONS'],
});
message.guild.channels.forEach(async (channel) => {
await channel.overwritePermissions(muterole, {
SEND_MESSAGES: false,
ADD_REACTIONS: false,
MANAGE_ROLES_OR_PERMISSIONS: false,
});
});
}
catch(e) {
console.log(e.stack);
}
}
if(!mutetime) {
tomute.removeRole(rule.id);
setTimeout(function() {
tomute.removeRole(muterole.id).then(() => {
tomute.addRole(rule.id);
message.channel.send('```Mute time has ended for ' + `${tomute.user.tag} with id : ${tomute.id}` + '```');
});
}, ms(600000));
}
... the rest of the code
谢谢
只需使用 OR 运算符
// check if args[1] is valid
const mutetime = args[1] && ms(args[1]) || 600000;
如果有静音时间,您没有显示代码,但我猜它类似于 if 语句,而不是现在您甚至不需要 if 语句
tomute.removeRole(rule.id);
setTimeout(function () {
tomute.removeRole(muterole.id).then(() => {
tomute.addRole(rule.id);
message.channel.send('```Mute time has ended for ' + `${tomute.user.tag} with id : ${tomute.id}` + '```');
});
}, mutetime);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.