【发布时间】:2020-09-27 01:16:56
【问题描述】:
我遇到了一个关于向特定用户发送 DM 的问题。
我的机器人中的这个命令基本上将今天的日期与任务的日期进行比较,如果他的截止日期临近或已过期,它应该通知用户这个任务。因此,我将 useralert 字段与用户 ID 一起转换为数字 ID (useralertID)。当 if 语句为真时,应向具有此 ID 的用户发送 on if 语句消息。
按照“Discord.js 指南”的说明,我定义了一个用户 let user = bot.users.cache.get('useralertID'); 并向该用户 user.send('Works!'); 发送了一条消息。
不幸的是,它不是向用户发送消息,而是输出一个未定义的值或UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'send' of undefined。
我无法弄清楚这个问题,所以任何建议都会非常有帮助!
这是代码。提前致谢!
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 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)) {
let user = bot.users.cache.get('useralertID');
user.send('Works!');
return message.channel.send(`Sent msg to ${user.username}!`);
}
}
}
【问题讨论】:
标签: javascript node.js sqlite sequelize.js discord.js