A simple, elegant, and powerful command handler for Hikari.
Project description
[!NOTE] This branch is for Lightbulb version 3. If you are looking for the V2 code you should switch to the
v2
branch instead.
Overview
Lightbulb is designed to be an easy-to-use command handler library that integrates with the Discord API wrapper library for Python, Hikari.
This library aims to make it simple for you to make your own Discord bots and provide all the utilities and functions you need to help make this job easier.
Installation
Use the package manager pip to install Lightbulb.
pip install --pre hikari-lightbulb
Usage
# Import the libraries
import hikari
import lightbulb
# Create a GatewayBot instance
bot = hikari.GatewayBot("your_token_here")
client = lightbulb.client_from_app(bot)
# Ensure the client starts once the bot is run
bot.subscribe(hikari.StartingEvent, client.start)
# Register the command with the client
@client.register()
class Ping(
# Command type - builtins include SlashCommand, UserCommand, and MessageCommand
lightbulb.SlashCommand,
# Command declaration parameters
name="ping",
description="checks the bot is alive",
):
# Define the command's invocation method. This method must take the context as the first
# argument (excluding self) which contains information about the command invocation.
@lightbulb.invoke
async def invoke(self, ctx: lightbulb.Context) -> None:
# Send a message to the channel the command was used in
await ctx.respond("Pong!")
# Run the bot
# Note that this is blocking meaning no code after this line will run
# until the bot is shut off
bot.run()
Issues
If you find any bugs, issues, or unexpected behaviour while using the library, you should open an issue with details of the problem and how to reproduce if possible. Please also open an issue for any new features you would like to see added.
Contributing
Pull requests are welcome. For major changes, please open an issue/discussion first to discuss what you would like to change.
Please try to ensure that documentation is updated if you add any features accessible through the public API.
If you use this library and like it, feel free to sign up to GitHub and star the project, it is greatly appreciated and lets me know that I'm going in the right direction!
Links
- License: MIT
- Repository: GitHub
- Documentation: ReadTheDocs
IDE Plugin
Lightbulb now has a plugin for IntelliJ-based IDEs (IntelliJ, Pycharm, etc) to help improve the developer experience by providing autocompletion and type checking not yet supported by other tools. More features such as command boilerplate generation and further code inspections are planned.
You can install the plugin from the Jetbrains Marketplace within your IDE. View the plugin here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hikari_lightbulb-3.0.0a11.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44412514c208d580252ef353873ed97a65feeae5f924dc91cf2284ca2136c092 |
|
MD5 | 10ae8935d5600e0235f8eeeab1173bc5 |
|
BLAKE2b-256 | 877c8cf7dd5c617675ee2e16e8f0e0a0a00f9ad558da19cd5ab4621452025391 |
Hashes for hikari_lightbulb-3.0.0a11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 541f46a9acd333f6e78543aee6b689e23b8873b3ff760a0b8c75f7eded138bf8 |
|
MD5 | c8616892f32f750ec618e26e26036691 |
|
BLAKE2b-256 | efbfa58f0b69c0a3d5968bc81ba5a2b8163186288cf4fc16e9d85656ba012a89 |