Fix Database issues & Add Dummy /setup command
This commit is contained in:
		
							parent
							
								
									270c4391f1
								
							
						
					
					
						commit
						6792a45e48
					
				| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
  "name": "cx-oss",
 | 
			
		||||
  "version": "0.0.1",
 | 
			
		||||
  "description": "ConnectX Xantic",
 | 
			
		||||
  "main": "index.js",
 | 
			
		||||
  "main": "src/index.js",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "nodemon 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 { Client, Events, GatewayIntentBits, Collection } = require('discord.js');
 | 
			
		||||
 | 
			
		||||
const client = new Client({ intents: [
 | 
			
		||||
    GatewayIntentBits.Guilds,
 | 
			
		||||
    GatewayIntentBits.GuildMessages,
 | 
			
		||||
    GatewayIntentBits.DirectMessages,
 | 
			
		||||
    GatewayIntentBits.MessageContent
 | 
			
		||||
] });
 | 
			
		||||
const client = new Client({
 | 
			
		||||
	intents: [
 | 
			
		||||
		GatewayIntentBits.Guilds,
 | 
			
		||||
		GatewayIntentBits.GuildMessages,
 | 
			
		||||
		GatewayIntentBits.DirectMessages,
 | 
			
		||||
		GatewayIntentBits.MessageContent
 | 
			
		||||
	]
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
async function main(){
 | 
			
		||||
	if(config.database_adapter == "mongod"){
 | 
			
		||||
async function main() {
 | 
			
		||||
	if (config.database_adapter == "mongod") {
 | 
			
		||||
		const mongo_client = new MongoClient(config.database_uri);
 | 
			
		||||
 | 
			
		||||
		await mongo_client.connect();
 | 
			
		||||
		console.log("Using MongoDB Connection for Database");
 | 
			
		||||
 | 
			
		||||
		require("../database/mongod").initMongoDBInstance(mongo_client, config , (back) => initMessageManager(back));
 | 
			
		||||
	}else if(config.database_adapter == "mysqld"){
 | 
			
		||||
	
 | 
			
		||||
		require("../database/mongod").initMongoDBInstance(mongo_client, config, (back) => initMessageManager(back));
 | 
			
		||||
	} else if (config.database_adapter == "mysqld") {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function initMessageManager(database){
 | 
			
		||||
async function initMessageManager(database) {
 | 
			
		||||
	client.database = database;
 | 
			
		||||
	
 | 
			
		||||
	database.build();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -37,51 +41,51 @@ client.once(Events.ClientReady, readyClient => {
 | 
			
		|||
 | 
			
		||||
	main();
 | 
			
		||||
 | 
			
		||||
    client.user.setActivity({
 | 
			
		||||
        name: `Minecraft`,
 | 
			
		||||
        state: "2.0"
 | 
			
		||||
    });
 | 
			
		||||
});
 | 
			
		||||
	client.user.setActivity({
 | 
			
		||||
		name: `Minecraft`,
 | 
			
		||||
		state: "2.0"
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
const foldersPath = path.join(__dirname, 'commands');
 | 
			
		||||
const commandFolders = fs.readdirSync(foldersPath);
 | 
			
		||||
	const foldersPath = path.join(__dirname, 'commands');
 | 
			
		||||
	const commandFolders = fs.readdirSync(foldersPath);
 | 
			
		||||
 | 
			
		||||
for (const folder of commandFolders) {
 | 
			
		||||
	const commandsPath = path.join(foldersPath, folder);
 | 
			
		||||
	const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
 | 
			
		||||
	for (const file of commandFiles) {
 | 
			
		||||
		const filePath = path.join(commandsPath, file);
 | 
			
		||||
		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
 | 
			
		||||
		if ('data' in command && 'execute' in command) {
 | 
			
		||||
			client.commands.set(command.data.name, command);
 | 
			
		||||
			console.log("Loaded /" + command.data.name);
 | 
			
		||||
		} else {
 | 
			
		||||
			console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
 | 
			
		||||
	for (const folder of commandFolders) {
 | 
			
		||||
		const commandsPath = path.join(foldersPath, folder);
 | 
			
		||||
		const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
 | 
			
		||||
		for (const file of commandFiles) {
 | 
			
		||||
			const filePath = path.join(commandsPath, file);
 | 
			
		||||
			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
 | 
			
		||||
			if ('data' in command && 'execute' in command) {
 | 
			
		||||
				client.commands.set(command.data.name, command);
 | 
			
		||||
				console.log("Loaded /" + command.data.name);
 | 
			
		||||
			} else {
 | 
			
		||||
				console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
client.on(Events.InteractionCreate, async interaction => {
 | 
			
		||||
	if (!interaction.isChatInputCommand()) return;
 | 
			
		||||
	client.on(Events.InteractionCreate, async interaction => {
 | 
			
		||||
		if (!interaction.isChatInputCommand()) return;
 | 
			
		||||
 | 
			
		||||
	const command = interaction.client.commands.get(interaction.commandName);
 | 
			
		||||
		const command = interaction.client.commands.get(interaction.commandName);
 | 
			
		||||
 | 
			
		||||
	if (!command) {
 | 
			
		||||
		console.error(`No command matching ${interaction.commandName} was found.`);
 | 
			
		||||
		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 });
 | 
			
		||||
		if (!command) {
 | 
			
		||||
			console.error(`No command matching ${interaction.commandName} was found.`);
 | 
			
		||||
			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 });
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// Login to ConnectX
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue