help command

main
kry008 2024-05-23 14:07:47 +02:00
parent 8e08a932bf
commit 1747e91dee
1 changed files with 106 additions and 0 deletions

View File

@ -0,0 +1,106 @@
//optiona name of the command
var fs = require('fs');
function getAllCommands(client) {
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
const allCommands = [];
for (const file of commandFiles) {
const command = require(`./${file}`);
allCommands.push(command);
}
return allCommands;
}
function allCommandsNames(guild = true)
{
//check if it is in dm or guild
if(guild)
{
const commands = getAllCommands();
let str = '';
for(const command of commands)
{
if(command.admin === false)
str += command.name + '\n';
}
return str;
}
else
{
const commands = getAllCommands();
let str = '';
for(const command of commands)
{
if(command.canBeUsedInDm)
if(command.admin === false)
str += command.name + '\n';
}
return str;
}
}
function getCommand(name, guild = true)
{
//check if it is in dm or guild
if(guild)
{
const commands = getAllCommands();
for(const command of commands)
{
if(command.name === name)
return command;
}
}
else
{
const commands = getAllCommands();
for(const command of commands)
{
if(command.name === name && command.canBeUsedInDm)
return command;
}
}
return null;
}
module.exports = {
name: 'help',
description: 'Get help with a command',
help: 'Get help with a command, you can also get a list of all commands',
options: [
{
name: 'command',
description: 'The command you want to get help with',
type: 3,
required: false,
},
],
slash: true,
text: true,
admin: false,
requireKick: false,
requireBan: false,
canBeUsedInDm: true,
contexts: ['GUILD_TEXT', 'GUILD_VOICE', 'DM'],
integration_types: [0,1],
execute: async (message, args) => {
if(args.length === 0)
{
const commands = allCommandsNames();
message.channel.send(commands);
return;
}
const command = getCommand(args[0]);
if(command === null)
{
message.channel.send('Command not found');
return;
}
message.channel.send('Name: ' + command.name + '\nDescription: ' + command.description + '\nHelp: ' + command.help);
},
executeSlash: async interaction => {
const command = getCommand(interaction.options.getString('command'));
if(command === null)
{
interaction.reply('Command not found');
return;
}
interaction.reply('Name: ' + command.name + '\nDescription: ' + command.description + '\nHelp: ' + command.help);
},
};