Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fb-sean/interactions.js
🤖 A powerful Javascript library to work with discords interactions
https://github.com/fb-sean/interactions.js
bot discord discord-api discord-bot discord-server hacktoberfest hacktoberfest2023 interactions interactionsjs nodejs
Last synced: about 2 months ago
JSON representation
🤖 A powerful Javascript library to work with discords interactions
- Host: GitHub
- URL: https://github.com/fb-sean/interactions.js
- Owner: fb-sean
- License: apache-2.0
- Created: 2022-08-18T17:56:31.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-09T17:16:16.000Z (5 months ago)
- Last Synced: 2024-07-10T18:24:07.380Z (2 months ago)
- Topics: bot, discord, discord-api, discord-bot, discord-server, hacktoberfest, hacktoberfest2023, interactions, interactionsjs, nodejs
- Language: JavaScript
- Homepage: https://interactionsjs.com
- Size: 1.75 MB
- Stars: 15
- Watchers: 1
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- discord-api-libs - interactions.js - 🤖 A powerful Javascript library to work with discords interactions (Libraries / JavaScript)
README
## Table of Contents
- [Getting Started](#getting-started)
- [Installation](#installation)
- [Example](#example)
- [Example way to get the guild count](#example-way-to-get-the-guild-count)
- [Help](#help)
- [Example Handler](#example-handler)
- [Bots Using interactions.js](#bots-using-interactionsjs)## About
interactions.js is a powerful [Node.js](https://nodejs.org) module that makes it easy to create and handle [Discord](https://discord.com/developers/docs/intro) interactions. It provides a comprehensive set of features and utilities that help developers to seamlessly integrate interactions into their Discord bots and applications.
Some key features of interactions.js include:
- **Object-oriented:** Interactions are represented as classes which makes the API simple and intuitive to use.
- **Performant:** Built on top of discord.js and optimized for performance.
- **Inbuilt Cache:** Comes with an in-memory cache to store interactions for faster responses.
- **Easy to use:** Simple and intuitive API that is easy to integrate into existing bots and applications.
- **Robust:** Provides utilities for building complex interactions with features like autocomplete, modal forms etc.
- **Extensible:** Easy to extend and customize through plugins and middleware.
# Getting Started## Installation
**Prerequisites:** `Node.js 16.9.0 or newer is required.`
- To install interactions.js, run the following command:
```js
npm install interactions.js//This installs interactions.js and its dependencies using npm.
```## Example
**Here is a basic example of how to get started with interactions.js:**
- Create an Application instance
```js
const { Application } = require("interactions.js");const Client = new Application({
botToken: process.env.TOKEN, // Your Bot Token
publicKey: process.env.PUBLICKEY, // The Application Public Key
applicationId: process.env.APPLICATIONID, // The Application ID
});
```This creates the Application instance with the required authentication details and starts the client. It connects to Discord and initializes the interactions.js library.
- Start the client:
```jsClient.start().then(() => {
console.log("Client Started");
});Client.on("debug", debug => console.log(debug));
```
This logs any debug information from the client to the console.
- Create an Interaction Command:
```jsClient.setAppCommands([{
name: "ping",
description: "Pong!",
},
]).catch(console.log);
```This creates a **ping** command and registers it with the client. The .catch() handles any errors from registering the command.
- Create Handle interaction events:
```js
// Handle interaction events:
Client.on("interactionCreate", async (i) => {
if (i.commandName === "ping") {
return i.reply({
content: "Pong!",
ephemeral: true,
});
}
});
```See Full Example Code
```js
const { Application } = require("interactions.js");const Client = new Application({
botToken: process.env.TOKEN, // Your Bot Token
publicKey: process.env.PUBLICKEY, // The Application Public Key
applicationId: process.env.APPLICATIONID, // The Application ID
});/**
* After calling start(), the api starts on port 8221 in this example and you need to set your application's interaction url to https://your-domain.com/interactions
*
* The /interactions parts is required and you can't change it.
*/Client.start().then(() => {
console.log("Client Started");
});Client.on("debug", debug => console.log(debug));
// Create an Interaction Command:
Client.setAppCommands([{
name: "ping",
description: "Pong!",
},
]).catch(console.log);// Handle interaction events:
Client.on("interactionCreate", async (i) => {
if (i.commandName === "ping") {
return i.reply({
content: "Pong!",
ephemeral: true,
});
}
});//Once you have followed these steps, you will be able to start receiving and handling interactions from your Discord bot.
```
see above code for details on setting up interactions.js client and registering commands
### Example way to get the guild count
```jsconst { UserManager } = require("interactions.js");
const application = await UserManager.fetchMyApplication();// Note: This is not the actual guild count, but an approximation
const guildCount = application.approximate_guild_count;```
## Help
If you have questions, encounter issues, or need guidance, feel free to join our [Discord server](https://discord.gg/ZVERh35). We have an active community of developers happy to help!
## Example Handler
Check out [http-bot-template](https://github.com/mezotv/http-bot-template) for an example of how to use interactions.js in a bot project.
## Bots Using interactions.js
Some notable bots that use interactions.js include:
- [Himiko](https://discord.com/api/oauth2/authorize?client_id=1008142696801648711&permissions=2147797056&scope=bot%20applications.commands)
- [Imagine](https://discord.com/api/oauth2/authorize?client_id=1039996075882336336&permissions=313344&scope=applications.commands%20bot)
- [Memer](https://discord.com/api/oauth2/authorize?client_id=927598798019108894&permissions=2147863616&scope=bot%20applications.commands)
- [TindCord](https://discord.com/api/oauth2/authorize?client_id=935185892719603713&permissions=137439332416&scope=bot%20applications.commands)
- [Crypto Helper](https://discord.com/api/oauth2/authorize?client_id=747050613656911892&permissions=0&scope=applications.commands%20bot)
- Your bot? Join our Discord server and let us know! We'd be happy to feature your bot.