Discord.py SQLite3 禁用词系统 - 问题
Posted
技术标签:
【中文标题】Discord.py SQLite3 禁用词系统 - 问题【英文标题】:Discord.py SQLite3 Banned Word System - Issue 【发布时间】:2022-01-05 14:46:23 【问题描述】:所以,我尝试使用 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】:使用message.channel.send
代替message.send
。
【讨论】:
恐怕你误解了这个问题,我正在尝试制作一个禁止词系统,但是我很好地引用了文本频道,我忘记删除它但我不确定要替换它,所以它会检测是否禁用词在数据库的 msg 列中 - 我使用 message.send 因为我不需要在特定频道中发送它,它只存储公会 ID 和作为禁用词的味精&我的问题是它甚至不会存储它。以上是关于Discord.py SQLite3 禁用词系统 - 问题的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 sqlite3 向我的 discord.py 机器人添加自定义前缀