我的一个命令负责检查一个人的任务日期,然后将它与今天的日期进行比较。当用户的分配日期到期时,此命令应该起作用,例如月差在0以内,天差在2以内。而且,下达命令的人应该有KICK_MEMBERS权限。
然而,显示月 (monthn) 和天 (daysn) 差异的值的 console.log() 是准确的,不知何故代码违反了 if 语句并通过了它。结果,它输出一个 message.reply('issue')
而不是需要的 message.channel.send(`Я только что оповестил ${useralert.username}!`);
。
这是代码。提前致谢!
else if (cmd == `${prefix}aalert`) {
var i;
var d = new Date;
var month = d.getMonth() + 1;
var day = d.getDate();
const s = await Tags.count();
if (message.member.hasPermission('KICK_MEMBERS')) {
for(i=1;i<=s;i++) {
const tag = await Tags.findOne({ where: { key: i } });
if (tag) {
var date = tag.get('description');
let useralert = (tag.get("usernameid")).toString();
let useralertID = useralert.replace(/[<@>]/g, '');
let user = bot.users.cache.get('useralertID');
let deadday = parseInt(date.slice(0,2));
let deadmonth = parseInt(date.slice(3,5));
let dayn = deadday - day;
let monthn = deadmonth - month;
console.log(dayn.toString() + ' ' + monthn.toString() + ' ' + useralertID);
if(((dayn <= 2) && (monthn =0))|| (monthn < 0)) {
// user.send('Works!');
return message.channel.send(`Я только что оповестил ${useralert.username}!`);
}
}
}
}
return message.reply(' issue ');
}
最佳答案
这个说法有部分错误
if (((dayn <= 2) && (monthn =0))|| (monthn < 0))
因为
monthn=0
不是比较而是一种分配。试试这个方法:
if(((dayn <= 2) && (monthn == 0))|| (monthn < 0))
关于javascript - 这个 discord.js 命令如何违反 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62251725/