所以我正在為我的服務器制作我自己的機器人,一段時間后我終于找到了一個用于自動角色和角色分配的字符串。然后我繼續為機器人添加另一個字符串,簡單地回復“你好”。一旦我添加角色命令將不再起作用。一旦我把它拿出來,它就會再次工作。另一方面,我有一個 8ball 和一個擲骰子命令,可以使用和不使用 Hello 命令我不知道是什么問題[email protected] def on_member_join(member): channel = discord.utils.get(member.guild.channels, name='entrance') await channel.send(f'Welcome {member.mention} to Dreamy Castle! \n Please make sure to read the rules!') role = discord.utils.get(member.guild.roles, name="Peasants") await member.add_roles(role)@client.eventasync def on_message(message): if message.content.startswith('+acceptrules'): member = message.author role1 = discord.utils.get(member.guild.roles, name='The People') await member.add_roles(role1)@client.event #this is the hello commandasync def on_message(message): message.content.lower() if message.content.startswith('Hello Conny'): await message.channel.send('Hello!')
1 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
對同一事件使用if
而elif
不是 2 個不同的函數。
此外,您可能需要commands.Bot
一個功能齊全的命令機器人。
@client.event
async def on_message(message):
? ? if message.content.startswith('+acceptrules'):
? ? ? ? member = message.author
? ? ? ? role1 = discord.utils.get(member.guild.roles, name='The People')
? ? ? ? await member.add_roles(role1)
? ? elif message.content.lower().startswith("hello conny"):
? ? ? ? await message.channel.send("Hello!")
? ? await client.process_commands(message)
添加回答
舉報
0/150
提交
取消