🐛 53-not-charging-users-for-custom-roles

This commit is contained in:
Axel Olausson Holtenäs 2022-03-16 17:25:33 +01:00
parent 566b2997bb
commit 173aae2faa
No known key found for this signature in database
GPG key ID: E3AE7E194AE017ED

View file

@ -1,47 +1,43 @@
const schedule = require('node-schedule'); const schedule = require('node-schedule');
const { shopRoles, credits, guilds } = require('../helpers/database/models'); const { shopRoles, users, guilds } = require('../helpers/database/models');
const logger = require('./logger'); const logger = require('./logger');
module.exports = async (client) => { module.exports = async (client) => {
// schedule.scheduleJob('*/1 * * *', function () {
// console.log('The answer to life, the universe, and everything!');
// });
schedule.scheduleJob('*/30 * * * *', async () => { schedule.scheduleJob('*/30 * * * *', async () => {
shopRoles.find().then(async (data) => { shopRoles.find().then(async (shopRoles) => {
data.map(async (role) => { shopRoles.map(async (shopRole) => {
const payed = new Date(role.lastPayed); const payed = new Date(shopRole.lastPayed);
oneHourAfterPayed = payed.setHours(payed.getHours() + 1); oneHourAfterPayed = payed.setHours(payed.getHours() + 1);
if (new Date() > oneHourAfterPayed) { if (new Date() > oneHourAfterPayed) {
// Get guild object // Get guild object
const guild = await guilds.findOne({ const guild = await guilds.findOne({
guildId: role.guildId, guildId: shopRole.guildId,
}); });
const userObject = await credits.findOne({ const userDB = await users.findOne({
userId: role.userId, userId: shopRole.userId,
guildId: role.guildId, guildId: shopRole.guildId,
}); });
const { pricePerHour } = guild.shop.roles; const { pricePerHour } = guild.shop.roles;
if (userObject.balance < pricePerHour) { if (userDB.credits < pricePerHour) {
const rGuild = await client.guilds.cache.get(`${role.guildId}`); const rGuild = await client.guilds.cache.get(`${shopRole.guildId}`);
const rMember = await rGuild.members.fetch(`${role.userId}`); const rMember = await rGuild.members.fetch(`${shopRole.userId}`);
await rMember.roles await rMember.roles
.remove(`${role.roleId}`) .remove(`${shopRole.roleId}`)
.then(console.log) .then(console.log)
.catch(console.error); // Removes all roles .catch(console.error); // Removes all roles
} }
role.lastPayed = new Date(); shopRole.lastPayed = new Date();
role.save(); shopRole.save();
userObject.balance -= pricePerHour; userDB.credits -= pricePerHour;
userObject.save(); userDB.save();
await logger.debug( await logger.debug(
`${role.roleId} was payed one hour later. BEFORE: ${payed} AFTER: ${oneHourAfterPayed} UPDATED: ${role.updatedAt} CREATED: ${role.createdAt}` `${shopRole.roleId} was payed one hour later. BEFORE: ${payed} AFTER: ${oneHourAfterPayed} UPDATED: ${shopRole.updatedAt} CREATED: ${shopRole.createdAt}`
); );
} }
}); });