Fix Database issues & Add Dummy /setup command

This commit is contained in:
ui_creeperlv 2024-03-06 13:53:15 +05:30
parent 270c4391f1
commit 6792a45e48
3 changed files with 76 additions and 50 deletions

View File

@ -2,7 +2,7 @@
"name": "cx-oss", "name": "cx-oss",
"version": "0.0.1", "version": "0.0.1",
"description": "ConnectX Xantic", "description": "ConnectX Xantic",
"main": "index.js", "main": "src/index.js",
"scripts": { "scripts": {
"test": "nodemon src/index", "test": "nodemon src/index",
"start": "node src/index" "start": "node src/index"

View File

@ -0,0 +1,22 @@
const { SlashCommandBuilder } = require('discord.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('setup')
.addChannelOption((o) => o
.setName("channel")
.setDescription("Channel to Chat with Xantic")
.setRequired(true)
).setDescription('Setup a Discord Server'),
/**
*
* @param {import('discord.js').Interaction} interaction
*/
async execute(interaction) {
var channel = interaction.options.getChannel("channel");
console.log(channel);
await interaction.reply('Pong!');
},
};

View File

@ -6,27 +6,31 @@ const path = require('node:path');
const { MongoClient } = require("mongodb"); const { MongoClient } = require("mongodb");
const { Client, Events, GatewayIntentBits, Collection } = require('discord.js'); const { Client, Events, GatewayIntentBits, Collection } = require('discord.js');
const client = new Client({ intents: [ const client = new Client({
GatewayIntentBits.Guilds, intents: [
GatewayIntentBits.GuildMessages, GatewayIntentBits.Guilds,
GatewayIntentBits.DirectMessages, GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent GatewayIntentBits.DirectMessages,
] }); GatewayIntentBits.MessageContent
]
});
async function main(){ async function main() {
if(config.database_adapter == "mongod"){ if (config.database_adapter == "mongod") {
const mongo_client = new MongoClient(config.database_uri); const mongo_client = new MongoClient(config.database_uri);
await mongo_client.connect(); await mongo_client.connect();
console.log("Using MongoDB Connection for Database"); console.log("Using MongoDB Connection for Database");
require("../database/mongod").initMongoDBInstance(mongo_client, config , (back) => initMessageManager(back)); require("../database/mongod").initMongoDBInstance(mongo_client, config, (back) => initMessageManager(back));
}else if(config.database_adapter == "mysqld"){ } else if (config.database_adapter == "mysqld") {
} }
} }
async function initMessageManager(database){ async function initMessageManager(database) {
client.database = database;
database.build(); database.build();
} }
@ -37,51 +41,51 @@ client.once(Events.ClientReady, readyClient => {
main(); main();
client.user.setActivity({ client.user.setActivity({
name: `Minecraft`, name: `Minecraft`,
state: "2.0" state: "2.0"
}); });
});
const foldersPath = path.join(__dirname, 'commands'); const foldersPath = path.join(__dirname, 'commands');
const commandFolders = fs.readdirSync(foldersPath); const commandFolders = fs.readdirSync(foldersPath);
for (const folder of commandFolders) { for (const folder of commandFolders) {
const commandsPath = path.join(foldersPath, folder); const commandsPath = path.join(foldersPath, folder);
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js')); const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
for (const file of commandFiles) { for (const file of commandFiles) {
const filePath = path.join(commandsPath, file); const filePath = path.join(commandsPath, file);
const command = require(filePath); const command = require(filePath);
// Set a new item in the Collection with the key as the command name and the value as the exported module // Set a new item in the Collection with the key as the command name and the value as the exported module
if ('data' in command && 'execute' in command) { if ('data' in command && 'execute' in command) {
client.commands.set(command.data.name, command); client.commands.set(command.data.name, command);
console.log("Loaded /" + command.data.name); console.log("Loaded /" + command.data.name);
} else { } else {
console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`); console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
}
} }
} }
}
client.on(Events.InteractionCreate, async interaction => { client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isChatInputCommand()) return; if (!interaction.isChatInputCommand()) return;
const command = interaction.client.commands.get(interaction.commandName); const command = interaction.client.commands.get(interaction.commandName);
if (!command) { if (!command) {
console.error(`No command matching ${interaction.commandName} was found.`); console.error(`No command matching ${interaction.commandName} was found.`);
return; return;
}
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
} else {
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
} }
}
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
} else {
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
}
}
});
}); });
// Login to ConnectX // Login to ConnectX