Fix Database issues & Add Dummy /setup command
This commit is contained in:
		
							parent
							
								
									270c4391f1
								
							
						
					
					
						commit
						6792a45e48
					
				| 
						 | 
					@ -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"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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!');
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										102
									
								
								src/index.js
								
								
								
								
							
							
						
						
									
										102
									
								
								src/index.js
								
								
								
								
							| 
						 | 
					@ -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
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue