Context
Я делаю бот discord.py (rewrite-v1.0 +), я только что создал Cog с некоторыми базовыми SQL и Python для создания чат-бота, но когда событие 'message'происходит бот полностью игнорирует его.Я провел некоторое исследование, и больше всего я смог узнать user = discord.Client
изменения user = discord.Client()
Я новичок в Discord.py, поэтому любая помощь будет принята с благодарностью!
мини-код:
#ai cog
import discord
from discord.ext import commands
import asyncio
client = commands.Bot(command_prefix="$")
user = discord.Client()
class ai(commands.Cog):
def __init__(self, client):
self.client = client
@commands.command(aliases=['c','ch','cha','4'])
async def chat(self, ctx, *, message:str):
Bot = 'Hello!'
#I am guessing problem is here
def nobotspeakshere(message):
if message.author.bot == True:
return False
while True:
#try:
msg = await user.wait_for('message', check=nobotspeakshere)
#except asyncio.TimeoutError:
#await ctx.send('Bot: bye')
#break
you = msg.content
print(you)
await ctx.send('Bot: ' + Bot)
if you == '':
break
elif you == 'bye':
await ctx.send("Bot: bye")
break
else:
pass
#some working sql
#sql gives bot = "something else"
def setup(client):
client.add_cog(ai(client))
ожидается: печатает переменную 'you' и продолжает выполнение
output: игнорирует сообщение, введенное в канал
ожидаемая проблема: метод nobotspeakshere не работает должным образом.
reserch done:
https://github.com/Rapptz/discord.py/issues/1371
также, когда команда используется без аргумента 'message', бот выдает ошибку, поэтому бот отвечаеткомандовать использованием