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

nova-bot

v3.0.4

Published

Nova Bot, a framework for building Discord Bots

Downloads

13

Readme

Nova Bot

License nova-bot Languages Top Language Commit Activity Last commit

Nova Bot is a Discord Bot framework built mainly to make it easier for me to maintain all my discord bots. It provides very limited flexibility but allows building powerful and bug-free Discord bots very quickly.

Motivation

I built this Discord Framework because when I built many different Discord bots, I used the same template code across all the frameworks, and it became difficult tracking which bots have the latest changes to the template. So I decided to make this a framework so that I could maintain all my bots with much more ease.

Features

  • Cache guild information in PostGres so that guild data doesn't reset everytime the bot is redeployed
  • Nova will read each command dynamically according to the filenames for each command.
    • If you have a file /slashs/play, Nova will register a /play slash command and use the data in the file as the metadata and callback of the slash command
    • Same works with
      • /buttons for button interactions
      • /selectmenus for select menu interactions
      • /messages for message commands
      • /events for discord events
  • A Bot-wide and Guild-wide caching system to store information about the Bot and individual Guilds.
  • Dynamic help command builder which reads from the /slashs and /messages folders to find out all the available commands to interact with the bot
  • Allow bot to constantly clean messages in one channel to make sure it is the only one with messages in the channel. This is useful for
    • Music Queues as the only message in the channel
    • Calendar bots to only show calendar related messages sent by the bot in the channel
  • Allows custom logging of events happening like
    • Initialization of the bot
    • Alerts, Warnings and Errors in the code
    • A slash command being used
    • A button interaction being used
    • A select menu interaction being used
    • A message command being used

Usage

I don't intend to write any documentation for this framework since the framework was build primarily for my use, and not for public use.

Built with

  • TypeScript
    • @types/luxon
    • @types/node
    • discord-api-types
    • typescript
  • DiscordJS
    • @discordjs/rest
    • discord.js
  • Prisma
    • @prisma/client
    • prisma
  • Miscellaneous
    • after-every
    • escape-string-regexp
    • luxon
    • no-try