♻️ ready event

This commit is contained in:
Axel Olausson Holtenäs 2022-04-12 23:11:19 +02:00
parent b8fbb89e71
commit 28eac8c061
No known key found for this signature in database
GPG key ID: 9347A5E873995701
4 changed files with 48 additions and 87 deletions

View file

@ -7,9 +7,9 @@ export default async () => {
await mongoose
.connect(mongodb?.url)
?.then(async () => {
logger.database.info("Successfully connected!");
logger.info("Successfully connected to MongoDB!");
})
?.catch(async () => {
logger.database.error("Error whilst connecting!");
logger.error("Error whilst connecting to MongoDB!");
});
};

View file

@ -1,66 +1,19 @@
import logger from "../../handlers/logger";
import config from "../../../config.json";
import deployCommands from "../../helpers/deployCommands";
import dbGuildFix from "../../helpers/dbGuildFix";
import dbMemberFix from "../../helpers/dbMemberFix";
import userSchema from "../../database/schemas/user";
// Dependencies
import { Client } from "discord.js";
import logger from "../../logger";
// Helpers
import deployCommands from "../../helpers/deployCommands";
import updatePresence from "../../helpers/updatePresence";
import devMode from "../../helpers/devMode";
export default {
name: "ready",
once: true,
async execute(client: Client) {
// Send info message
await logger.info(`Ready! Logged in as ${client?.user?.tag}`);
logger.info(`Successfully logged into discord user: ${client?.user?.tag}!`);
await updatePresence(client);
if (config.importToDB) {
const guilds = client.guilds.cache;
await guilds.map(async (guild) => {
await guild?.members.fetch().then(async (members) => {
await members.forEach(async (member) => {
const { user } = member;
dbMemberFix(user, guild);
});
});
await dbGuildFix(guild);
});
}
if (client === null) return;
if (client.application === null) return;
if (!config?.devMode) {
client?.application?.commands
?.set([], config.bot.guildId)
.then(async () => {
logger.info(
`Removed all guild based commands from ${config.bot.guildId}`
);
});
}
if (config.clearUnused) {
await userSchema.find().then(async (result) =>
result.map(async (user) => {
if (user.credits !== 0) {
logger.info(`Not removing user: ${user}`);
} else {
logger.warn(`Removing user: ${user}`);
console.log({ userId: user.userId, guildId: user.guildId });
await userSchema
.deleteOne({ _id: user._id })
.then(async (resultUser) => {
logger.error(`Removed user: ${user} ${resultUser}`);
});
}
})
);
}
await devMode(client);
await deployCommands();
},
};

15
src/helpers/devMode.ts Normal file
View file

@ -0,0 +1,15 @@
import logger from "../logger";
import config from "../../config.json";
import { Client } from "discord.js";
const { bot } = config;
export default async (client: Client) => {
if (!config?.devMode) {
client?.application?.commands
?.set([], config.bot.guildId)
.then(async () => {
logger.info(`Removed all guild based commands from ${bot.guildId}`);
});
}
};

View file

@ -1,33 +1,26 @@
import winston from "winston";
import "winston-daily-rotate-file";
const { combine, timestamp, printf, colorize, align, json, label } =
winston.format;
const { combine, timestamp, printf, colorize, align, json } = winston.format;
export default {
database: winston.createLogger({
level: process.env.LOG_LEVEL || "silly",
transports: [
new winston.transports.DailyRotateFile({
filename: "logs/database-%DATE%.log",
datePattern: "YYYY-MM-DD",
maxFiles: "14d",
format: combine(timestamp(), json()),
}),
new winston.transports.Console({
format: combine(
label({ label: "[Database]" }),
colorize({ all: true }),
timestamp({
format: "YYYY-MM-DD HH:MM:ss",
}),
align(),
printf(
(info) =>
`[${info.timestamp}] ${info.label} ${info.level}: ${info.message}`
)
),
}),
],
}),
};
export default winston.createLogger({
level: process.env.LOG_LEVEL || "silly",
transports: [
new winston.transports.DailyRotateFile({
filename: "logs/combined-%DATE%.log",
datePattern: "YYYY-MM-DD",
maxFiles: "14d",
format: combine(timestamp(), json()),
}),
new winston.transports.Console({
format: combine(
colorize({ all: true }),
timestamp({
format: "YYYY-MM-DD HH:MM:ss",
}),
align(),
printf((info) => `[${info.timestamp}] ${info.level}: ${info.message}`)
),
}),
],
});