🐛 53-not-charging-users-for-custom-roles
This commit is contained in:
parent
566b2997bb
commit
173aae2faa
1 changed files with 17 additions and 21 deletions
|
@ -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}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue