前提
ここに質問の内容を詳しく書いてください。
slashコマンドや、button機能を使いたく、バージョンを2.0.0にしました。
その中で、Botを起動し動くか確認したとこ、コマンドどころか prefixすら反応しんくなりました。
解決方法を教えてください。
実現したいこと
・コマンドに反応するようにする。
・prefixが反応するようにする。
発生している問題・エラーメッセージ
表示されません。
該当のソースコード
python
1import asyncio 2import datetime 3import os 4import traceback 5 6import discord 7from discord.ext import commands 8from dotenv import load_dotenv 9 10from help_command import HelpCommand 11 12now = datetime.datetime.now() 13load_dotenv() 14TOKEN = os.environ["TOKEN"] 15NOTICE = チャンネルID 16 17 18class MatsuochinyuBot(commands.Bot): 19 def __init__(self, command_prefix, intents, help_command): 20 super().__init__(command_prefix=command_prefix, intents=intents, help_command=help_command) 21 self.success = 0 22 self.failure = 0 23 self.filename = [file.replace(".py", "") for file in os.listdir("./cogs") if file.endswith(".py")] 24 25 async def load_extensions(self): 26 print("Cogを読み込みます") 27 for filename in self.filename: 28 print("-" * 10) 29 print(filename) 30 try: 31 await self.load_extension(f"cogs.{filename}") 32 print(f"Read success:{filename}") 33 self.success += 1 34 except Exception as e: 35 print(e) 36 print(f"Read failure:{filename}") 37 self.failure += 1 38 print("-" * 10) 39 print(f"成功:{self.success} 失敗:{self.failure}\n") 40 41 async def on_ready(self): 42 embed = discord.Embed(title="Info", description="", color=0x00FF00) 43 embed.add_field(name="Cogの読み込み", value=f"成功:{self.success} 失敗:{self.failure}") 44 await self.get_channel(NOTICE).send(embed=embed) 45 46 with open("cogs/reload.txt", "r", encoding="utf-8") as f: 47 read_file = f.read() 48 if read_file == "": 49 pass 50 else: 51 await self.get_channel(int(read_file)).send( 52 "``loading...``", delete_after=3 53 ) 54 embed = discord.Embed( 55 title="___リロード完了通知___", description="使えるようになりました。", color=0x00FF00 56 ) 57 await self.get_channel(int(read_file)).send(embed=embed, delete_after=3) 58 with open("cogs/reload.txt", "w", encoding="utf-8") as f: 59 f.write("") 60 61 async def on_command_error(self, ctx, error): 62 """すべてのコマンドで発生したエラーを拾う""" 63 if isinstance(error, commands.CommandInvokeError): 64 orig_error = getattr(error, "original", error) 65 error_msg = "".join( 66 traceback.TracebackException.from_exception(orig_error).format() 67 ) 68 error_message = f"```{error_msg}```" 69 70 ch = ctx.guild.get_channel(NOTICE) 71 embed = discord.Embed( 72 title="エラーログ", description=error_message, color=0xF04747 73 ) 74 embed.set_footer( 75 text=f"Time:{now:%Y-%m-%d %H:%M:%S}\nGuild:{ctx.guild}\nChannel:{ctx.channel}\nUser:{ctx.author.display_name} " 76 ) 77 await ch.send(embed=embed) 78 79 80# Botの設定 81intent = discord.Intents.default() 82intent.typing = False 83intent.members = True 84intent.messages = True 85bot = MatsuochinyuBot( 86 command_prefix=commands.when_mentioned_or("m:"), 87 intents=intent, 88 help_command=HelpCommand(), 89) 90 91 92# ログイン処理 93async def main(): 94 async with bot: 95 await bot.load_extensions() 96 await bot.start(TOKEN) 97 98 99if __name__ == "__main__": 100 print("ログイン中...\n") 101 print(f"Information's:{datetime.datetime.now()}") 102 print("-" * 40) 103 print(f"Discord.py Version:{discord.__version__}") 104 print("-" * 40) 105 print("ログイン完了\n") 106 asyncio.run(main()) 107
試したこと
色々なネット記事を参考にして試みてみましたが、動きませんでした。
補足情報(FW/ツールのバージョンなど)
discord.py:Version: 2.0.0a4058+gabeea73
python:3.9.12
mac OS:catalina 10.15.7
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。