私は自分のサーバーで数字のゲームコマンドを作成してきましたが、誰かが私に問題を追加するように勧めました。したがって、ユーザーが選択するのに3つの困難があります。作者の応答を得て機能するコードをすでに少し持っているので、それをコードで再利用しましたが、今は困惑しています。それは明らかに明白かもしれませんが、私はそれを見つけることができません:
@client.command(name='numgame',
brief='Guess a number between 1 and 100',
pass_ctx=True)
async def numgame(ctx):
if ctx.author.id != 368442355382222849:
await ctx.send('Command currently disabled')
return
await ctx.send('Difficulties: a] 1-10 b] 1-50 c] 1-100')
msg = await client.wait_for('message', check=check(ctx.author), timeout=30)
diff = str(msg.content)
if diff == 'a':
max = 10
number = random.randint(1,10)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 10')
elif diff == 'b':
max = 50
number = random.randint(1,50)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 50')
elif diff == 'c':
max = 100
number = random.randint(1,100)
await ctx.send('You have 5 guesses')
await ctx.send('Pick a number between 1 and 100')
else:
ctx.send('Please try the command again...')
return
msg = None
これは私が使用している小切手です:
def check(author):
def inner_check(message):
# author check
if message.author != author:
return False
# inner check
try:
int(message.content)
return True
except ValueError:
return False
チャット中のボットに「a」、「b」、または「c」で応答しても、応答がありません。修正しようとしている間、私以外のすべての人に対してコマンドを無効にしましたが、どのように開始すればよいかわかりません。
自分では解決策がわからないので、答えていただければ幸いです。ありがとうございます。[関係がなく長いので、実際の数のゲームは表示しませんでした]
必要なことを実行する新しいチェック関数を作成するだけです。
def abc_check(author):
def inner_check(message):
return author == message.author and message.content in ('a', 'b', 'c')
return inner_check
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加