実現したいこと
discordのチャット上でそのコマンドを入力して新たに自分でコマンドを作成するという機能を作りたいです。例えば「tera!ori today 今日もかわいいね」と送信したとしましょう。2単語目がコマンド名で3単語目がそのコマンドに反応して送信するメッセージ内容です。要はdiscord上でコマンドを作成する機能です。
カスタムコマンド機能について
discord上のメッセージで自分で新たにコマンドを作れる機能を作りたいです。コマンド名と返信メッセージをカスタマイズできるようにしたいので以下のコードを書きました。
@bot.command() async def ori(ctx, command = "コマンド名", message = "メッセージ"): def command(ctx): await ctx.reply(message)
こちらを実行してみましたが微動だにしませんでした。
試してみた
2通り試してみました。
@bot.command() async def ori(ctx, command = "コマンド名", message = "メッセージ"): command = command message = message def command(ctx): await ctx.reply(message)
@bot.command() async def ori(ctx, command = "コマンド名", message = "メッセージ"): async def command(ctx): await ctx.reply(message)
どちらも失敗に終わりました。
某BOTを見て試行錯誤しているのですが仕組みがわからなかったのでこちらに質問させていただきました。口頭での仕組みの説明や指摘でも構わないので回答いただけると幸いです。よろしくお願いします。
何をされたいのかが伝わってきません。
command関数とは何をする関数なのですか?
どのコードでもcommand関数を呼び出していないので、微動だにしないのはそれが原因だと思いますが…
1. discord.pyを使用しての話しですよね?(念の為確認)
2. コマンドとはどういう意味でしょうか?一般に思われているコマンドではなく、「自動返信メッセージのバリエーションを任意に追加したい」という事でしょうか?
一般的なコマンドは「prefix + コマンド名 + 引数(任意)」つまり、「!ori こんにちは」のように実行するものです。
対して、自動返信メッセージは、投稿文にあらかじめボット側で決めていた文字列が含まれていたら、あらかじめ決めていた(または、生成式をあらかじめ決めていて、それを使って生成した)返信をするものです。
ああ・・・ちょっと読み違いかも。。
ボットに対して、何らかのコマンドを送ったら、新しいコマンドまたは自動返信メッセージが作成される機能という事でしょうかね?
現状のコードを見るに、かなりの初心者と見受けられるので、ここでできる範囲で説明するのは難しい感じがします。
何かを作成する=当然作成したものを保存しておかないと後で使えない、なのですがそのあたりの考慮が全くされていないので、おそらく根本的な仕組みを理解されていなさそうなのです。
目的について修正させていただきました。わかりづらくて申し訳ないです。
1,discord.pyです
2,回答者さんのおっしゃる通り、「何らかのコマンドを送ったら、新しいコマンドまたは自動返信メッセージが作成される機能」です。
初心者の者ですが説明していただけると大変幸いです。なるほど、確かに保存する機構が必要ですね。それを踏まえて自分でも勉強してみます。ありがとうございます、
回答1件
あなたの回答
tips
プレビュー