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
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
-
py-cord
-
nextcord
-
discord.pyV2.0
-
disnake
For disnake you should Refactor/ Shim all discord terms to disnake terms to make Package work
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
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
discord-cooldown-0.1.4.tar.gz
(9.4 kB
view hashes)
Built Distribution
Close
Hashes for discord_cooldown-0.1.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6800e48d38d7f17e3bb1d72dafc13f3e898b911d8504d8fcc08e73ac191832f |
|
MD5 | 47783a69e63f32557e025a4c91d18adc |
|
BLAKE2b-256 | 82fef6681270147b1f56631ceedbe3323cd36023501782e9866df6a3a8562639 |