【问题标题】:Temporary Ban Command Issues临时禁令命令问题
【发布时间】:2020-12-02 19:00:45
【问题描述】:

我试图为我目前正在开发的不和谐机器人发出临时禁令命令,但我一直遇到问题 (node:15340) UnhandledPromiseRejectionWarning: ReferenceError: ban is not defined 和我试图查看是否有任何指南或方法可以执行,我试图做的是在执行命令时临时禁止某人,并在不和谐的审计日志中显示原因,也发送一个嵌入说明谁是被禁止的用户,所以当有人执行命令时,它看起来像这样 - !ban (user) (time) (reason)。

      let toBan = message.mentions.members.first();
      let reason = args.slice(2).join(" ");
      let member = message.guild.member(toBan)
      if(!args[0]) return  message.channel.send('Please mention some to ban, so I can ban that fooly!');
      if(!toBan)  return  message.channel.send(`${args[0]} is not a member of this guild, fooly.`);
      if(!reason)  return  message.channel.send('Please specify a reason for the ban fooly!');
      
      if(!toBan.bannable){
        return message.channel.send("This dude has super powers, fooly. I can't ban this person.")
      }

    if(member) {
        toBan.ban({
          reason: `${reason}`
        })
      }
        let bantime = args[1];
        if(!bantime) return message.reply("Fooly! You need to provide a time!");

        await(bantime(ban));
        message.reply(`Fooly has been banned for ${ms(ms(bantime))}`);

      if(toBan.bannable){
        const messageEmbed = new Discord.MessageEmbed()
        .setTitle('Fooly was banned')
        .addField('Person that was banned:', toBan)
        .addField('Banned by:', message.author)
        .addField('Reason:', reason)
        .setTimestamp(Date.now())
        .setColor('#FF0000')
        .setFooter('Fooly Discord Bot');
        message.channel.send(messageEmbed);
        toBan.ban();
        }
        setTimeout(function(){
          message.guild.members.unban(toBan)
          message.channel.send(`<@${toBan.id}> has been unbanned (temporary ban is finished).`);
        }, ms(bantime)); 
        
    }
}

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    首先,bantime 是消息中的字符串,而不是函数,因此稍后会返回错误。 其次,await(bantime(ban)); 给出了您指定的错误,并且正如它所说的那样。您没有在任何地方声明ban,因此它无法知道ban 指的是什么。您可能正在寻找

    let bantime = args[1];
    if(!bantime) return message.reply("Fooly! You need to provide a time!");
    message.reply(`Fooly has been banned for ${ms(ms(bantime))}`);
    

    我刚刚删除了上面sn-p中的await(bantime(ban)),看了你的代码我觉得没有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-16
      • 2020-05-26
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多