Skip to main content

Custom Cooldowns for discord Bot commands

Project description

Package Name: discord_cooldown

A responsive package for Bot command cooldowns

• With this package you can create the command cooldowns which will not get reset whenever the bot re-run

forthebadge made-with-python

CodeQL Python Github License Windows Linux

GitHub stars GitHub forks GitHub issues

Join Official Discord Server for more guidance !


Features

  • Cooldowns of Bot commands are stored in a DATABASE
  • Available Databases MySQL, PostgreSQL and Sqlite(Sqlite3)

Installation

Python 3.8 or higher is required !

# Linux/macOS
  python3 -m pip install discord-cooldown

# Windows
  # Method-1:
    py -3 -m pip install discord-cooldown
    # or
    python -m pip install discord-cooldown
  # Method-2:
    pip install discord-cooldown

# Using GIT for ALPHA or BETA Versions
  # Method-1:
    pip install git+https://github.com/Modern-Realm/discord_cooldown
  # Method-2:
    pip install -U git+https://github.com/Modern-Realm/discord_cooldown

Note: For better stability install package from GitHub using GIT


REQUIRED DEPENDENCIES

You can use ANY ONE of the below discord API Package

Note: Don't install more than one DEPENDENCY !

Other Dependencies


QuickStart

from discord_cooldown.modules import MySQL
from discord_cooldown import Cooldown

import discord

from discord.ext import commands
from datetime import timedelta

TOKEN = ""
intents = discord.Intents.all()
client = commands.Bot(command_prefix="&", intents=intents)

# MySQL Database Setup
db = MySQL(
    host="", db_name="",
    user="", passwd=""
)

# For Indian timezone (UTC +5:30)
timezone = +timedelta(hours=5, minutes=30)


def CD():
    return Cooldown(database=db, timezone=timezone)


@client.event
async def on_ready():
    await client.change_presence(status=discord.Status.online, activity=discord.Game("&help"))
    print("Bot is online")


@client.event
async def on_command_error(ctx, error):
    if isinstance(error, commands.CommandOnCooldown):
        return await ctx.send(
            f"on cooldown retry after `{timedelta(seconds=error.retry_after)}`"
        )
    else:
        # For resetting a command on any error other than CommandOnCooldown
        return await CD().reset_cooldown(ctx.author, ctx.command.name)


@CD().cooldown(1, 2 * 60)
@client.command()
async def test(ctx):
    await ctx.send("testing")


@CD().cooldown(2, 0, reset_per_day=True)
@client.command()
async def vote(ctx):
    await ctx.send("done")


@CD().cooldown(3, 60)
@client.command()
async def test1(ctx, *, msg: str):
    await ctx.send("message is " + msg)


if __name__ == "__main__":
    client.run(TOKEN)

Project Links

You can get support/help/guidance from below social-media links

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

discord-cooldown-0.1.4.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

discord_cooldown-0.1.4-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file discord-cooldown-0.1.4.tar.gz.

File metadata

  • Download URL: discord-cooldown-0.1.4.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for discord-cooldown-0.1.4.tar.gz
Algorithm Hash digest
SHA256 ec749fcd20583f59ce3581c1c9634aa8d9c2b56adf1ff5d226ed475e310c1948
MD5 214cd74df6a3ec2f1c372fc457a57462
BLAKE2b-256 58bd906015191432ae2ca4ff65d6e951bc7af211f85aa6c47c87184e10c5410d

See more details on using hashes here.

File details

Details for the file discord_cooldown-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for discord_cooldown-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b6800e48d38d7f17e3bb1d72dafc13f3e898b911d8504d8fcc08e73ac191832f
MD5 47783a69e63f32557e025a4c91d18adc
BLAKE2b-256 82fef6681270147b1f56631ceedbe3323cd36023501782e9866df6a3a8562639

See more details on using hashes here.

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