♻️ ready event
This commit is contained in:
parent
b8fbb89e71
commit
28eac8c061
4 changed files with 48 additions and 87 deletions
|
@ -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!");
|
||||
});
|
||||
};
|
||||
|
|
|
@ -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
15
src/helpers/devMode.ts
Normal 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}`);
|
||||
});
|
||||
}
|
||||
};
|
|
@ -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}`)
|
||||
),
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue