xyter/src/events/messageCreate.js
2022-03-12 23:17:40 +01:00

41 lines
1.3 KiB
JavaScript

const logger = require(`${__basedir}/handlers/logger`);
const credits = require(`${__basedir}/helpers/database/models/creditSchema`);
const talkedRecently = new Set();
module.exports = {
name: 'messageCreate',
async execute(message) {
if (message.author.bot) return;
if (message.content.length < __config.credits.minimumLength) return;
if (!talkedRecently.has(message.author.id)) {
await credits
.findOneAndUpdate(
{ userId: message.author.id },
{ $inc: { balance: __config.credits.rate } },
{ new: true, upsert: true }
)
.then(async () => await logger.debug(`Credits added to user: ${message.author.id}`))
.catch(async (err) => {
await logger.error(err);
});
talkedRecently.add(message.author.id);
setTimeout(() => {
logger.debug(
`User: ${message.author.id} has not talked within last ${
__config.credits.timeout / 1000
} seconds, credits can be given`
);
talkedRecently.delete(message.author.id);
}, __config.credits.timeout);
} else {
logger.debug(
`User: ${message.author.id} has talked within last ${
__config.credits.timeout / 1000
} seconds, no credits given`
);
}
},
};