Mahir Çınar Girgin
Decapat
Daha fazla
- Cinsiyet
- Erkek
- Meslek
- Öğrenci
Merhaba. Uzun zamandır bir bot üzerinde çalışıyorum. Takıldığım yer ise komutun bekleme süresini çekme. Kütüphane olarak
Komutlar ve bekleme süresi için gerekli kütüphaneler:
Hepsini indirdim ve gayet stabil bir şekilde çalışıyor.
Eğik çizgi komutu olarak şöyle bir şey yazdım ve bekleme süresini ekledim:
1 dakikalık bekleme süresi gayet düzgün çalışıyor. Ayrıyeten komut bekleme süresinde iken çalıştırıldığında hata çıktısını da aldım fakat istediğim şeye halen ulaşamadım.
Bunun gibi bir tane daha komut olduğunu varsayalım. Onun da cooldown_id'si
Ben bu
Örnek:
Zaman dilimlerine ayırmaya gerek yok. sadece saniye olarak alsam yeter. Bunu yapmak için sanırım burayı anlamak gerekiyor. Pek anlamış değilim açıkçası. Bunun nerede kullanılması gerektiği hakkında pek bir bilgim yok.
Eğer ki bu farklı bir kütüphane ile yapılabilir ise alternatiflere yönelebilirim. Her türlü öneriye açığım.
Şimdiden yardımlarınız için teşekkürler.
nextcord
(bkz: documentation) kullandım. Ayrıyeten bekleme süresi için cooldowns
(bkz: documentation) kütüphanesini kullandım.Komutlar ve bekleme süresi için gerekli kütüphaneler:
Python:
import nextcord
from nextcord import Interaction, SlashOption, ChannelType
from nextcord.abc import GuildChannel
from nextcord.ext import commands, tasks
import cooldowns
from cooldowns import SlashBucket, CallableOnCooldown, CooldownBucket, cooldown, get_cooldown
Eğik çizgi komutu olarak şöyle bir şey yazdım ve bekleme süresini ekledim:
Python:
@Bot.slash_command(guild_ids=[test_guild], name="test", description="test")
@cooldowns.cooldown(1, 60, bucket=cooldowns.SlashBucket.author, cooldown_id="test_cd")
async def test(interaction: Interaction):
1 dakikalık bekleme süresi gayet düzgün çalışıyor. Ayrıyeten komut bekleme süresinde iken çalıştırıldığında hata çıktısını da aldım fakat istediğim şeye halen ulaşamadım.
Bunun gibi bir tane daha komut olduğunu varsayalım. Onun da cooldown_id'si
test_cd2
, zamanı 1 saat olsun:
Python:
@Bot.slash_command(guild_ids=[test_guild], name="test2", description="test2")
@cooldowns.cooldown(1, 3600, bucket=cooldowns.SlashBucket.author, cooldown_id="test_cd2")
async def test2(interaction: Interaction):
Ben bu
test_cd
ve test_cd2
id'si verilmiş olan iki bekleme süresini tek bir komut altında toplamak istiyorum.Örnek:
Zaman dilimlerine ayırmaya gerek yok. sadece saniye olarak alsam yeter. Bunu yapmak için sanırım burayı anlamak gerekiyor. Pek anlamış değilim açıkçası. Bunun nerede kullanılması gerektiği hakkında pek bir bilgim yok.
Eğer ki bu farklı bir kütüphane ile yapılabilir ise alternatiflere yönelebilirim. Her türlü öneriye açığım.
Şimdiden yardımlarınız için teşekkürler.