Skip to main content

A system for making more dynamic and complex checks on discord.py commands

Project description

Install

pip install dpy-check

Docs

PENDING... Until then, here is some implementation code:

import dpycheck as chk
from discord.ext import commands


bot = commands.Bot(...)

# if the error handler has been attached to an object,
# it can be acquired through `ErrorHandler.get(object)`
error_handler = chk.ErrorHandler(..., attach_to=bot)


@bot.command()
@chk.ctx.Check.all(
    chk.user_has_role(...),
    chk.Any(
        chk.membership("d") >= 5,
        chk.user_has_channel_perms(...)
    )
)
async def cmd(...): ...
cmd.error(error_handler.error)

bot.run(...)

When using extensions, you must use .placeholder in combination with resolve_placeholders if you want to use the error handler:

import dpycheck as chk
from discord.ext import commands


class mycog(commands.Cog):
    def __init__(self, bot: commands.Bot) -> None:
        self.bot = bot
        # get the attached ErrorHandler and run `resolve_placeholders`
        chk.ErrorHandler.get(bot).resolve_placeholders(self)
    
    # we use a placeholder and resolve in `__init__`
    # to attach the error handler. Make sure the
    # placeholder is at the very top (or more specifically,
    # make sure it happens *after* the command is created)
    @chk.ErrorHandler.placeholder
    @chk.ctx.Check.all(
        10 >= chk.membership("m") >= 5,
        chk.in_channel(...),
        chk.Not(chk.user_has_role(...))
    )
    @commands.command()
    async def cmd(...): ...


async def setup(...):...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dpy-check-0.0.2.tar.gz (11.8 kB view hashes)

Uploaded Source

Built Distribution

dpy_check-0.0.2-py3-none-any.whl (17.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page