2022-01-04 02:18:28 +05:00
|
|
|
const Discord = require("discord.js");
|
|
|
|
|
|
|
|
/* THIS CHECK IF THERE IS A REMIND MUST BE SENT */
|
|
|
|
module.exports = {
|
|
|
|
/**
|
|
|
|
* Starts checking...
|
|
|
|
* @param {object} client The Discord Client instance
|
|
|
|
*/
|
|
|
|
init(client) {
|
|
|
|
client.usersData
|
|
|
|
.find({ reminds: { $gt: [] } })
|
|
|
|
.then((users) => {
|
|
|
|
for (const user of users) {
|
|
|
|
if (!client.users.cache.has(user.id)) client.users.fetch(user.id);
|
|
|
|
client.databaseCache.usersReminds.set(user.id, user);
|
2022-01-13 00:26:23 +05:00
|
|
|
}
|
2022-01-04 02:18:28 +05:00
|
|
|
});
|
|
|
|
setInterval(async function () {
|
|
|
|
const dateNow = Date.now();
|
|
|
|
client.databaseCache.usersReminds.forEach(async (user) => {
|
|
|
|
const dUser = client.users.cache.get(user.id);
|
|
|
|
if (dUser) {
|
|
|
|
const reminds = user.reminds;
|
|
|
|
const mustSent = reminds.filter((r) => r.sendAt < dateNow);
|
|
|
|
if (mustSent.length > 0) {
|
|
|
|
mustSent.forEach((r) => {
|
|
|
|
const embed = new Discord.MessageEmbed()
|
2022-01-05 00:24:57 +05:00
|
|
|
.setAuthor({ name: client.translate("general/remindme:TITLE") })
|
2022-01-04 02:18:28 +05:00
|
|
|
.addField(client.translate("common:CREATION"), client.translate("general/remindme:CREATED", {
|
|
|
|
time: client.convertTime(r.createdAt, "from")
|
|
|
|
}))
|
|
|
|
.addField(client.translate("common:MESSAGE"), r.message)
|
|
|
|
.setColor(client.config.embed.color)
|
2022-01-03 23:20:33 +05:00
|
|
|
.setFooter({ text: client.config.embed.footer });
|
2022-01-04 21:16:52 +05:00
|
|
|
dUser.send({ embeds: [embed] });
|
2022-01-04 02:18:28 +05:00
|
|
|
});
|
|
|
|
user.reminds = user.reminds.filter((r) => r.sendAt >= dateNow);
|
|
|
|
user.save();
|
|
|
|
if (user.reminds.length === 0) client.databaseCache.usersReminds.delete(user.id);
|
2022-01-13 00:26:23 +05:00
|
|
|
}
|
|
|
|
}
|
2022-01-04 02:18:28 +05:00
|
|
|
});
|
|
|
|
}, 1000);
|
|
|
|
}
|
|
|
|
};
|