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

discordjs-prefixes

v0.3.1

Published

A library designed for Discord.js v14 that allows you to quickly add and manage prefix commands.

Downloads

7

Readme

Discord.js Prefix Command Helper

Why? Actually, I developed this library because I don't like slash commands and prefix commands are not officially supported. Have fun.

Usage

First, install discord.js and this package using npm.

npm install discord.js discordjs-prefixes

You can write commands in a single file or categorize them. I recommend categorizing them, it is easier to manage. Next, write your bot code and integrate prefix commands.

// This is an example, I will code the categorized command example later.
const { Client, GatewayIntentBits } = require("discord.js");
const { PrefixCommandManager, PrefixCommandBuilder, CommandParameterTypes } = require("discordjs-prefixes");

// Initialize the Discord client with the necessary intents
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMembers,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

// Initialize the command manager with a custom prefix
const cmdManager = new PrefixCommandManager(client, {
    prefix: "?" // You can change this
});

// Ready event, triggered when the bot is logged in and ready
client.on("ready", () => {
    console.log(`${client.user.tag} is ready and online!`);
});

// Create a basic command without parameters (options)
const helloCommand = new PrefixCommandBuilder()
    .setName("hello")
    .runCommand((ctx) => {
        ctx.send("This is a prefix command written with meto1558's command manager!");
    });

// Create a command with parameters (options)
const meCommand = new PrefixCommandBuilder()
    .setName("me")
    .addOptions(
        { name: "myName", type: "string" },
        { name: "myAge", type: "number" }
    )
    .runCommand((ctx) => {
        const name = ctx.options.getStringOption("myName");
        const age = ctx.options.getNumberOption("myAge");
        if (!name || !age) {
            ctx.reply("Please enter your name and age!");
            return;
        }
        ctx.send(`Hi, my name is ${name} and I am ${age} years old!`);
    });

// Example of long text option
// Note: Long text must be of type string and can only be added as the last option.
const messageCommand = new PrefixCommandBuilder()
    .setName("message")
    .addOptions(
        { name: "message", type: CommandParameterTypes.String, isLongText: true }
    )
    .runCommand((ctx) => {
        const userMessage = ctx.options.getStringOption("message");
        if (!userMessage) {
            ctx.reply("Please enter a message!"); // For example 'This command manager is so beautiful!'
            return;
        }
        ctx.send(userMessage);
    });

// Register the commands with the command manager
cmdManager.registerCommands(helloCommand, meCommand, messageCommand);

// Login the Discord client with your bot's token
client.login("DISCORD_BOT_TOKEN");

Run the bot.

node your_app.js

Test command

Option Types

Supported parameter (option) types are:

CommandParameterTypes.String // Example usage : if it is long text : ?command This is long text type | if it isn't long text : ?command Lora
CommandParameterTypes.Number // Example usage : ?command 25
CommandParameterTypes.Channel // Example usage : ?command #channel
CommandParameterTypes.Member // Example usage : ?command @guildMember
CommandParameterTypes.User // Example usage : ?command @user
CommandParameterTypes.Role // Example usage : ?command @guildRole

Reminder

This project is subject to MIT license. Please use the project within the license rules.

Contributing

I really need some help :c Anyway, feel free to contribute to this project, I always accept help from nice people.

Steps

  • Create a new fork.
  • Open the project in a code editor (like VS Code).
  • Add/modify some code.
  • Commit and push your changes to your forked repository.
  • Create a new pull request using your forked repository.
  • Wait for your pull request to be accepted.
  • Done!