npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

interactions.js

v1.2.18

Published

A powerful Javascript library to work with discords interactions

Downloads

55

Readme

Table of Contents

About

interactions.js is a powerful Node.js module that makes it easy to create and handle Discord 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:
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
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:

  Client.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:

   Client.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:
// Handle interaction events:
Client.on("interactionCreate", async (i) => {
  if (i.commandName === "ping") {
    return i.reply({
      content: "Pong!",
      ephemeral: true,
    });
  }
});
    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


const { 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. We have an active community of developers happy to help!

Example Handler

Check out 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: