ある場合、私はdiscord.pyを使用して、私のボットのためのラッフルコマンドを記述しようとしていると、それはユーザーが抽選を開始するには、次のコマンドを実行することができますしたいのです:Discord.pyチェック入力がint
ラッフル時間の勝者!タイトルEG:!raffle 60 1 Pie
問題は、最初の2つの入力が数字で、タイトルが空白でないことを確認する検証を作成することです。現在、このコマンドのために、私が持っているコードです:
@bot.command(pass_context=True)
async def raffle(ctx, time, winners, title):
if time != int or winners != int or title != "":
await bot.say("{} raffle has been started for {} seconds and there will be {} winner(s)!".format(title, time, winners))
else:
await bot.say("Seems you went wrong! Raffle format is: !raffle time winners title")
return
私は運を持っていないのですと、次のエラーを取得していますが:
Ignoring exception in command raffle
Traceback (most recent call last):
File "C:\Users\kairj\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 846, in process_commands
yield from command.invoke(ctx)
File "C:\Users\kairj\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 367, in invoke
yield from self.prepare(ctx)
File "C:\Users\kairj\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 345, in prepare
yield from self._parse_arguments(ctx)
File "C:\Users\kairj\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 304, in _parse_arguments
transformed = yield from self.transform(ctx, param)
File "C:\Users\kairj\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 212, in transform
raise MissingRequiredArgument('{0.name} is a required argument that is missing.'.format(param))
discord.ext.commands.errors.MissingRequiredArgument: time is a required argument that is missing.
私は確かにそのシンプルだとしてすべてのヘルプは素晴らしいことです間違いどこか!事前
'時間だけである!= int'などは意味がありません。試してみて/それ以外は.. – roganjosh
もう少し詳しく説明できますか?私は試してみた/例外が、それはどのようにコードに適合するかについて混乱している。 –
私は私の電話にいるので、私は答えを書くことができません。しかし、あなたの現在のアプローチは、何かが組み込みのメソッドと等しいかどうかをチェックすることです。代わりに、try/exceptを使用して入力をintにキャストしようとします – roganjosh