41 lines
1.3 KiB
JavaScript
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`
|
|
);
|
|
}
|
|
},
|
|
};
|