@welfare-systems/spinel-framework

1.0.0 • Public • Published

spinel-new-removebg-preview.png

Spinel Framework

A beginner-friendly framework written in TypeScript and Discord.JS

Features

  • Built-in TypeScript Declarations
  • Open-source
  • Handlers
  • Slash Commands
  • Latest Discord.JS support
  • TypeScript - JavaScript support
  • Modular
  • Completely customizable
  • Constant updates

Installation

  npm install @welfare-systems/spinel-framework
  yarn add @welfare-systems/spinel-framework
  pnpm add @welfare-systems/spinel-framework
  bun add @welfare-systems/spinel-framework

Usage/Examples

Creating a client instance:

import { SpinelClient } from "@welfare-systems/spinel-framework";

const client = new SpinelClient({
  commandHandlerOptions: {
    directory: "./commands", // The directory where your slash command files are located
    privateRegister: true, // This means the commands will be registered to a specific guild
    guildId: "1234567890", // The ID of the guild where the commands will be registered (Not needed when registering globally)
    token: "your-discord-bot-token", // Your Discord bot token to use REST api
  },
  listenerHandlerOptions: {
    directory: "./listeners", //The directory where your listener files are located
  },
  intents: ["GUILDS", "GUILD_MESSAGES"], // Add more intents as needed
  // ... You can also add all the Discord.Client options
});

client
  .login("your-discord-bot-token")
  .then(() => console.log("Bot is successfully logged in"))
  .catch(console.error);

Making a basic command:

import { SpinelCommand } from "@welfare-systems/spinel-framework";

export class ExampleCommand extends SpinelCommand {
  constructor() {
    super("example", "An example command");
    this.data
      .addStringOption((option) =>
        option.setName("input").setDescription("Input value").setRequired(true)
      )
      .addIntegerOption((option) =>
        option.setName("amount").setDescription("Amount").setRequired(false)
      );
  }

  async exec(interaction: CommandInteraction): Promise<void> {
    // Your command execution logic here
  }
}

Package Sidebar

Install

npm i @welfare-systems/spinel-framework

Weekly Downloads

2

Version

1.0.0

License

MIT

Unpacked Size

2.87 kB

Total Files

2

Last publish

Collaborators

  • just.vazguz