All Projects → jchristgit → nosedrum

jchristgit / nosedrum

Licence: ISC license
a command framework for nostrum

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to nosedrum

Spacebot
An open-source, multipurpose, configurable discord bot that does it all (that's the plan, at least)
Stars: ✭ 41 (+46.43%)
Mutual labels:  discord-api
disml
Pure OCaml bindings to the Discord API. Mirror of Gitlab repo.
Stars: ✭ 36 (+28.57%)
Mutual labels:  discord-api
disgo
A modular Golang Discord API Wrapper
Stars: ✭ 113 (+303.57%)
Mutual labels:  discord-api
discord-account-generator
An hcaptcha-solving discord account generator; capable of generating unlocked discord accounts.
Stars: ✭ 61 (+117.86%)
Mutual labels:  discord-api
acord
An API wrapper for discord, built using aiohttp and pydantic.
Stars: ✭ 25 (-10.71%)
Mutual labels:  discord-api
DPP
C++ Discord API Bot Library - D++ is Lightweight and scalable for small and huge bots!
Stars: ✭ 560 (+1900%)
Mutual labels:  discord-api
gencord
A simple, beginner-friendly, and easy-to-use library for interacting with the Discord API, with minimal syntax.
Stars: ✭ 20 (-28.57%)
Mutual labels:  discord-api
opensource-discordbots
Curated list of awesome open-source Discord Bots
Stars: ✭ 19 (-32.14%)
Mutual labels:  discord-api
orca
C Multi-REST API library for Discord, Slack, Reddit, etc.
Stars: ✭ 360 (+1185.71%)
Mutual labels:  discord-api
discord.clj
A Clojure library for creating Discord bots
Stars: ✭ 45 (+60.71%)
Mutual labels:  discord-api
Karuma
Karuma is a Discord Bot including Nukes, Raids, Mass DM and other features. Only for educational purposes 🥱🚀
Stars: ✭ 132 (+371.43%)
Mutual labels:  discord-api
Discord.CPP
Discord.CPP is a C++ library for interaction with the Discord API.
Stars: ✭ 46 (+64.29%)
Mutual labels:  discord-api
Foxy
🦊 A very, very cute, multipurpose, multilingual bot for Discord! Making your server cuter -w-
Stars: ✭ 58 (+107.14%)
Mutual labels:  discord-api
library
🐍 A Python library for Discord.
Stars: ✭ 648 (+2214.29%)
Mutual labels:  discord-api
raku-api-discord
Raku module for interacting with the Discord API.
Stars: ✭ 33 (+17.86%)
Mutual labels:  discord-api
Hurricano
An amazing open-source Discord bot using MongoDB with many features such as a customizable prefix, a reaction menu, music, role requirement giveaways and much more!
Stars: ✭ 97 (+246.43%)
Mutual labels:  discord-api
Diskord
[Mirror of GitLab] A Kotlin client for Discord with a light wrapper on the REST APIs and a simple to use DSL for basic bots.
Stars: ✭ 146 (+421.43%)
Mutual labels:  discord-api
nextcord
A Python wrapper for the Discord API forked from discord.py
Stars: ✭ 956 (+3314.29%)
Mutual labels:  discord-api
lispcord
A client library for the discordapp bot api
Stars: ✭ 56 (+100%)
Mutual labels:  discord-api
Volte
A free, robust, open-source Discord bot written in C# 8 using .NET Core 3.1 and a whole lotta Man Hours.
Stars: ✭ 78 (+178.57%)
Mutual labels:  discord-api

nosedrum

nosedrum is a command framework for use with the excellent nostrum library.

It contains behaviour specifications for easily implementing command handling for both Discord's application commands and the traditional text-based commands in your bot along with other conveniences to ease creating an interactive bot.

nosedrums provided implementations are largely based off what was originally written for bolt. bolt also contains around 57 commands based off the Nosedrum.Command behaviour that you can explore if you're looking for inspiration.

The application command related parts of the framework consist of two parts:

  • Nosedrum.ApplicationCommand, the behaviour that all application commands must implement.
  • Nosedrum.Invoker, the behaviour for any slash command invoker. A default implementation provided by nosedrum resides at Nosedrum.Invoker.Dispatcher.

The traditional command processing related parts of the framework consists of three parts:

  • Nosedrum.Command, the behaviour that all commands must implement.
  • Nosedrum.Invoker, the behaviour of command processors. Command processors take a message, look it up in the provided storage implementation, and invoke commands as required. nosedrum ships with an implementation of this based on bolt's original command parser named Nosedrum.Invoker.Split.
  • Nosedrum.Storage, the behaviour of command storages. Command storages allow for fast and simple lookups of commands and command groups and store command names along with their corresponding Nosedrum.Command implementations internally. An ETS-based command storage implementation is provided with Nosedrum.Storage.ETS.

Additionally, the following utilities are provided:

  • Nosedrum.Converters, functions for converting parts of messages to objects from Nostrum such as channels, members, and roles.
  • Nosedrum.MessageCache, a behaviour for defining message caches, along with an ETS-based and an Agent-based implementation.

nosedrums provided implementations are largely based off what was originally written for bolt. bolt also contains around 59 commands based off the Nosedrum.Command behaviour that you can explore if you're looking for inspiration.

The documentation can be found at https://hexdocs.pm/nosedrum.

Installation

Simply add :nosedrum to your mix.exs:

def deps do
  [
    {:nosedrum, "~> 0.4"},
  ]
end

If you want to install the GitHub version of Nostrum, you will need to specify it with override: true in your mix.exs, for example:

def deps do
  [
    {:nosedrum, "~> 0.4"},
    {:nostrum, github: "Kraigie/nostrum", override: true}
  ]
end
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].