Skip to content
This repository has been archived by the owner on Jul 15, 2024. It is now read-only.

Commit

Permalink
feat: shorten code + add /database reconnect
Browse files Browse the repository at this point in the history
  • Loading branch information
wdhdev committed Jun 25, 2023
1 parent 5c87242 commit 87800d1
Show file tree
Hide file tree
Showing 8 changed files with 138 additions and 132 deletions.
23 changes: 23 additions & 0 deletions src/commands/developer/database.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const emoji = require("../../config.json").emojis;
const mongoose = require("mongoose");

const devSchema = require("../../models/devSchema");

Expand Down Expand Up @@ -37,6 +38,13 @@ module.exports = {
required: true
}
]
},

{
type: 1,
name: "reconnect",
description: "Reconnect the bot to the database.",
options: []
}
],
default_member_permissions: null,
Expand Down Expand Up @@ -140,6 +148,21 @@ module.exports = {

return;
}

if(interaction.options.getSubcommand() === "reconnect") {
await mongoose.connection.close();
console.log("Disconnected from Database!");

const database = require("../../util/database/connect");
await database();

const result = new Discord.EmbedBuilder()
.setColor(client.config_embeds.default)
.setDescription(`${emoji.successful} Reconnected to the database!`)

await interaction.editReply({ embeds: [result] });
return;
}
} catch(err) {
client.logCommandError(err, interaction, Discord);
}
Expand Down
3 changes: 1 addition & 2 deletions src/handlers/button.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ module.exports = (client) => {
loadButtons(client);

const emoji = require("../config.json").emojis;
const Sentry = require("@sentry/node");

client.logButtonError = async function(err, interaction, Discord) {
Sentry.captureException(err);
client.sentry.captureException(err);

const error = new Discord.EmbedBuilder()
.setColor(client.config_embeds.error)
Expand Down
3 changes: 1 addition & 2 deletions src/handlers/command.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,9 @@ module.exports = (client) => {
loadCommands(client);

const emoji = require("../config.json").emojis;
const Sentry = require("@sentry/node");

client.logCommandError = async function(err, interaction, Discord) {
Sentry.captureException(err);
client.sentry.captureException(err);

const error = new Discord.EmbedBuilder()
.setColor(client.config_embeds.error)
Expand Down
4 changes: 1 addition & 3 deletions src/handlers/event.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ module.exports = (client, Discord) => {

loadEvents(client, Discord);

const Sentry = require("@sentry/node");

client.logEventError = async function(err) {
Sentry.captureException(err);
client.sentry.captureException(err);
}

require("dotenv").config();
Expand Down
197 changes: 94 additions & 103 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,115 +1,106 @@
const Sentry = require("@sentry/node");
(async () => {
const Sentry = require("@sentry/node");

require("dotenv").config();
require("dotenv").config();

Sentry.init({
dsn: process.env.sentry_dsn,
tracesSampleRate: 1.0
})
Sentry.init({
dsn: process.env.sentry_dsn,
tracesSampleRate: 1.0
})

const config = require("./config.json");
const config = require("./config.json");

const Discord = require("discord.js");
const client = new Discord.Client({
intents: 3276799,
presence: {
activities: [
{
name: config.presence.activity,
type: config.presence.activityType,
}
],
status: config.presence.status
}
})
const Discord = require("discord.js");
const client = new Discord.Client({
intents: 3276799,
presence: {
activities: [
{
name: config.presence.activity,
type: config.presence.activityType,
}
],
status: config.presence.status
}
})

// Error Handling
client.on("error", (err) => {
Sentry.captureException(err);
console.error(err);
})
// Error Handling
client.on("error", (err) => Sentry.captureException(err));
client.on("warn", (warn) => Sentry.captureMessage(warn));
process.on("unhandledRejection", (err) => Sentry.captureException(err));

client.on("warn", (warn) => {
Sentry.captureMessage(warn);
console.warn(warn);
})
// Connect to Database
const database = require("./util/database/connect");
await database();

process.on("unhandledRejection", (err) => {
Sentry.captureException(err);
console.error(err);
})
// Configs
client.config_channels = config.channels;
client.config_default = config.default;
client.config_embeds = config.embeds;
client.config_emojis = config.emojis;
client.config_presence = config.presence;
client.config_roles = config.roles;

// Connect to Database
const database = require("./util/database");
database();
// Handlers
client.buttons = new Discord.Collection();
client.commands = new Discord.Collection();
client.events = new Discord.Collection();

// Configs
client.config_channels = config.channels;
client.config_default = config.default;
client.config_embeds = config.embeds;
client.config_emojis = config.emojis;
client.config_presence = config.presence;
client.config_roles = config.roles;
["button", "command", "event"].forEach(handler => {
require(`./handlers/${handler}`) (client, Discord);
})

// Handlers
client.buttons = new Discord.Collection();
client.commands = new Discord.Collection();
client.events = new Discord.Collection();
// Login
client.login(process.env.token);

["button", "command", "event"].forEach(handler => {
require(`./handlers/${handler}`) (client, Discord);
})
// Constants
client.commandIds = new Discord.Collection();
client.sentry = Sentry;

// Login
client.login(process.env.token);

// Global
client.sentry = Sentry;
client.commandIds = new Discord.Collection();

client.validPermissions = [
"CreateInstantInvite",
"KickMembers",
"BanMembers",
"Administrator",
"ManageChannels",
"ManageGuild",
"AddReactions",
"ViewAuditLog",
"PrioritySpeaker",
"Stream",
"ViewChannel",
"SendMessages",
"SendTTSMessages",
"ManageMessages",
"EmbedLinks",
"AttachFiles",
"ReadMessageHistory",
"MentionEveryone",
"UseExternalEmojis",
"ViewGuildInsights",
"Connect",
"Speak",
"MuteMembers",
"DeafenMembers",
"MoveMembers",
"UseVAD",
"ChangeNickname",
"ManageNicknames",
"ManageRoles",
"ManageWebhooks",
"ManageEmojisAndStickers",
"UseApplicationCommands",
"RequestToSpeak",
"ManageEvents",
"ManageThreads",
"CreatePublicThreads",
"CreatePrivateThreads",
"UseExternalStickers",
"SendMessagesInThreads",
"UseEmbeddedActivities",
"ModerateMembers",
"ViewCreatorMonetizationAnalytics",
"UseSoundboard",
"SendVoiceMessages"
]
client.validPermissions = [
"CreateInstantInvite",
"KickMembers",
"BanMembers",
"Administrator",
"ManageChannels",
"ManageGuild",
"AddReactions",
"ViewAuditLog",
"PrioritySpeaker",
"Stream",
"ViewChannel",
"SendMessages",
"SendTTSMessages",
"ManageMessages",
"EmbedLinks",
"AttachFiles",
"ReadMessageHistory",
"MentionEveryone",
"UseExternalEmojis",
"ViewGuildInsights",
"Connect",
"Speak",
"MuteMembers",
"DeafenMembers",
"MoveMembers",
"UseVAD",
"ChangeNickname",
"ManageNicknames",
"ManageRoles",
"ManageWebhooks",
"ManageEmojisAndStickers",
"UseApplicationCommands",
"RequestToSpeak",
"ManageEvents",
"ManageThreads",
"CreatePublicThreads",
"CreatePrivateThreads",
"UseExternalStickers",
"SendMessagesInThreads",
"UseEmbeddedActivities",
"ModerateMembers",
"ViewCreatorMonetizationAnalytics",
"UseSoundboard",
"SendVoiceMessages"
]
})()
2 changes: 1 addition & 1 deletion src/scripts/register.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,4 @@ module.exports = async (client) => {
console.error(err);
}
})();
}
}
21 changes: 0 additions & 21 deletions src/util/database.js

This file was deleted.

17 changes: 17 additions & 0 deletions src/util/database/connect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const mongoose = require("mongoose");
const Sentry = require("@sentry/node");

require("dotenv").config();

module.exports = async function () {
return mongoose.connect(process.env.database, {
keepAlive: true,
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => {
console.log("Connected to Database!");
}).catch(err => {
Sentry.captureException(err);
process.exit(1);
})
}

0 comments on commit 87800d1

Please sign in to comment.