Skip to content

Draco1js/Aetherial

 
 

Repository files navigation


Aetherial


npm version npm downloads npm unpacked size Tests status Code coverage

Usage

You will need a token and a public key from the discord developer platform

  const Aetherial = require('aetherial');

  const client = new Aetherial.Client(token, publicKey);

  client.on('ready', () => console.log('Bot is online!'))

  client.on('interactionCreate', (interaction) => {
      interaction.reply({
          content: "Hello, World!";
      })
  })

This also works with Components

  client.on('interactionCreate', (interaction) => {
    if(interaction.isButton()) {
      interaction.reply({
          content: "Hello, World!";
      })
    }
  })

Using Commands

Individual Command file located in ./commands/COMMAND_NAME.js

module.exports = {
    name: "hello",
    run: ({ interaction }) => {
        interaction.reply({ content: "Hello, World!" });
    },
};

Using the in-built command loader which loads every command file in a subdirectory

  • index.js
  • commands
    • info
      • ping.js
Aetherial.loadCommands(client.commands);

Using the in-built command registering function automatically registers the slash commands with discords API.

This function should only be called when there is a change to the command name list Calling this once every bot start is okay but not ideal.

Aetherial.loadCommands(client.commands);
Aetherial.registerCommands(client.commands, client.token);

Running the bot locally requires a Software called ngrok. ngrok tunnels local http requests to a static url you can enter on the discord developer page under "INTERACTIONS ENDPOINT URL"

make sure to add the /interactions at the end of the URL.

for example: https://name.ngrok-free.app/interactions

Using Embeds

interaction.reply({
    embeds: [
        new Aetherial.MessageEmbed()
            .setDescription(`This is an Embed!`)
            .setColor(0xff0000),
    ],
});

About

Discord API Wrapper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%