इसलिए मैंने इस बॉट के लिए कोड लिखा और मैं चाहता हूं कि यह दो काम करे:

  1. १५ मिनट के लिए कूलडाउन करें
  2. एक आदेश है जो केवल शुक्रवार को काम करता है।

मैं कोडिंग के लिए नया हूँ इसलिए कलह दस्तावेज़ीकरण ने मदद नहीं की।

मेरे आयात:

import discord, asyncio, time, discord.guild, random, os, youtube_dl
import os
import asyncio
import math
import random
import youtube_dl
import datetime
import json
from discord.ext import commands, tasks
from discord.ext.commands import Bot, guild_only
from itertools import cycle

15 मिनट कूल डाउन के लिए कोड:

@client.command()
async def beg(ctx):
    await open_account(ctx.author)

    users = await get_bank_data()
    
    user = ctx.author

    earn = random.randrange(6900)

    await ctx.send(f'Someone gave you {earn} coins!')


    users[str(user.id)]["wallet"] += earn

    with open('main code\economy.json', 'w') as f:
            json.dump(users,f)

केवल शुक्रवार को काम करने वाले आदेश के लिए कोड:


@client.command()
async def friday(ctx):
    vid = '<URL>'
    
    await ctx.send(vid)
0
bat beat 29 नवम्बर 2020, 10:15

1 उत्तर

सबसे बढ़िया उत्तर

१५ मिनट का कूलडाउन

@commands का उपयोग करें। कूलडाउन ()

@client.command()
@commands.cooldown(1, 900, commands.BucketType.user)  # 15 minutes is 900 seconds
async def command_with_cooldown(ctx):
    ...  # code

@command_with_cooldown.error
async def cooldown_error_handler(ctx, error):
    if isinstance(error, commands.CommandOnCooldown):
        await ctx.send("You can only use this command once every 15 minutes!")

केवल शुक्रवार

datetime.datetime.today().weekday()

import datetime

@client.command()
async def friday_command(ctx):
    if datetime.datetime.today().weekday() == 4:  # 0 is monday, 6 is sunday
        ...  # code
    else:
        await ctx.send("You can only use this command on fridays!")
1
kr8gz 29 नवम्बर 2020, 13:45