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!');
|
||||||
|
},
|
||||||
|
};
|
100
src/index.js
100
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