2017-09-11 13 views
1

私はPythonを使用しています。ここでDiscord Botのコマンドクールをコーディングする方法をお探しの場合

は、サンプルコマンドです:コマンド 'enablesentience' がトリガされると

@client.command(pass_context=True) 
async def enablesentience(ctx): 
    await client.say(":desktop: | User does not have sufficient permissions.") 

、ボットはチャットで述べている:

:デスクトップ:|ユーザーに十分な権限がありません。

私が探しているのは、このコマンドにクールダウンを追加する方法です。これにより、1秒に1回のみコマンドを使用できるようになります。クールダウンがアクティブである間にコマンドを実行しようとすると、チャットで残ったクールダウン時間をボットに伝えさせます。

は私がしようとしています

@client.command(pass_context=True) 
@commands.cooldown(1, 30, commands.server.user) 
async def enablesentience(ctx): 
    await client.say(":desktop: | User does not have sufficient permissions.") 

のみ与えた

async def cooldown(1, 5, type=server.default) 

@client.command(pass_context=True) 
async def enablesentience(ctx): 
    await client.say(":desktop: | User does not have sufficient permissions.") 

は、それぞれ、および構文エラー " 'コマンド' オブジェクトは、 'クールダウン' は属性を持っていません"。

すべてのヘルプは大歓迎、事前にあなたに感謝されるだろう。

答えて

0

あなたの最初の試みは、ほぼ正しかった - あなたはそうのように、代わりに「commands.server.user」を、使用するBucketTypeを指定する必要があります。

@commands.cooldown(1, 30, commands.BucketType.user) 

あなたがから選ぶことができ、複数のバケットがあります。彼らは、私はあなたが何を意味するかわからないんだけど(defaultはグローバルを意味します。)

+0

ソースコードhere.内のすべてです。 "class BucketType(enum.Enum):"を追加しても、 "enum"をインポートしたり、BucketType変数を置き換えたり、BucketTypeを使用したりすることはできませんでした。 –

関連する問題