JaBa/helpers/checkReminds.js

58 lines
1.6 KiB
JavaScript
Raw Normal View History

const { EmbedBuilder } = require("discord.js");
const moment = require("moment");
2022-01-04 02:18:28 +05:00
2022-08-30 14:26:56 +05:00
/**
*
* @param {import("../base/JaBa")} client
*/
module.exports.init = function (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);
}
});
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;
2023-02-01 00:23:01 +05:00
const mustSent = reminds.filter(r => r.sendAt < dateNow);
if (mustSent.length > 0) {
mustSent.forEach(r => {
const embed = new EmbedBuilder()
.setAuthor({
name: client.translate("general/remindme:TITLE"),
})
.setDescription(client.translate("general/remindme:CREATED", {
time: moment(r.createdAt).locale(client.defaultLanguage).format("dddd, Do MMMM YYYY, HH:mm:ss"),
}))
.addFields([
{
name: client.translate("common:MESSAGE"),
value: r.message,
},
])
.setColor(client.config.embed.color)
.setFooter({
text: client.config.embed.footer,
});
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
}
}
});
}, 1000);
2022-01-04 02:18:28 +05:00
};