#python #sql #sqlite #discord.py
Вопрос:
Итак, я попытался создать систему запрещенных слов с помощью sqlite3, но я столкнулся с проблемой, и она вообще не выдает ошибок и не работает
Мой код: ( да, я импортировал sqlite3) и форматирование правильное, это просто сам код
@commands.Cog.listener() async def on_message(self, member): db = sqlite3.connect('.//SQL//bannedwords.sqlite') cursor = db.cursor() cursor.execute(f'SELECT msg FROM bannedwords WHERE guild_id = {message.guild.id}') result = cursor.fetchone() if result is None: return else: cursor.execute(f"SELECT msg FROM main WHERE guild_id = {member.guild.id}") result = cursor.fetchone() await message.author.delete() embed=discord.Embed(title="Blacklisted Word", description="Test") await message.send(embed=embed, delete_after=7.0) @commands.group(invoke_without_commands=True) async def add(self, ctx): return @add.command() async def word(self, ctx, channel:discord.TextChannel): if ctx.message.author.guild_permissions.administrator: db = sqlite3.connect('.//SQL//bannedwords.sqlite') cursor = db.cursor() cursor.execute(f'SELECT msg FROM bannedwords WHERE guild_id = {ctx.guild.id}') result = cursor.fetchone() if result is None: sql = ("INSERT INTO bannedwords(guild_id, msg) VALUES(?,?)") val = (ctx.guild.id, msg) await ctx.send(f"h") elif result is not None: sql = ("UPDATE bannedwords SET msg = ? WHERE guild_id = ?") val = (msg, ctx.guild.id) await ctx.send(f"added") cursor.execute(sql, val) db.commit() cursor.close() db.close()
Я знаю, что я ввел текстовый канал, но я не думаю, что это единственная проблема — или, скорее, я не слишком уверен в том, чем мне его заменить, чтобы он обнаруживал сообщения, которые находятся в столбце msg
Комментарии:
1. Это не очень понятно — в чем именно проблема?
Ответ №1:
Используйте message.channel.send
вместо message.send
.
Комментарии:
1. Я боюсь, что вы неправильно поняли вопрос, я пытаюсь создать систему запрещенных слов, однако я ссылался на текстовые каналы, я забыл удалить ее, но я не уверен, что ее заменить, поэтому она определяет, находится ли запрещенное слово в столбце msg базы данных — я использовал сообщение.отправить, потому что мне не нужно, чтобы оно отправлялось в определенном канале, в нем хранятся только идентификаторы гильдии и msg, который является запрещенным словом, и моя проблема в том, что он даже не сохранит его.