Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Discord.py单词过滤器_Python_Python 3.x_File_Filter_Discord.py - Fatal编程技术网

Python Discord.py单词过滤器

Python Discord.py单词过滤器,python,python-3.x,file,filter,discord.py,Python,Python 3.x,File,Filter,Discord.py,我正在用“重写”制作一个discord.py机器人。我想做一个反咒骂词过滤器,这样如果有人在邮件中咒骂,它将删除邮件并发送邮件。我有一个宣誓文件,里面有我需要的所有单词 这是我到目前为止的代码,但它不起作用: @client.event 异步def on_消息(ctx,消息): msg=message.content 以open('badWords.txt')作为坏词: 如果msg在BadWords.read()中: 等待消息。删除() 等待ctx.send(“不要用那个词!”) 其他: 等待c

我正在用“重写”制作一个discord.py机器人。我想做一个反咒骂词过滤器,这样如果有人在邮件中咒骂,它将删除邮件并发送邮件。我有一个宣誓文件,里面有我需要的所有单词

这是我到目前为止的代码,但它不起作用:

@client.event
异步def on_消息(ctx,消息):
msg=message.content
以open('badWords.txt')作为坏词:
如果msg在BadWords.read()中:
等待消息。删除()
等待ctx.send(“不要用那个词!”)
其他:
等待ctx.process_命令(消息)

感谢您的帮助

具有
管理员权限的Discord Bot
(权限整数“8”)
具有与普通用户相同的权限。因为没有用户可以
删除另一个用户的消息,所以机器人也不能这样做。因此,bot也不能
编辑其他用户的消息

async def on_message(ctx, message):
    msg = message.content
    with open('badWords.txt') as BadWords:
        if msg in BadWords.read():
            await message.delete()
            await ctx.send("Dont use that word!")
    await ctx.process_commands(message)

wait ctx.process_commands(message)
允许您在使用
on_message
后使用命令。

假设
BadWords.txt
的格式如下:

Word1 Word2 Word3
请注意,每个单词都由空格分隔

因此,我们需要在message()函数的
外部打开该文件。如果它在函数中,那么我们会一直打开它,每次都打开。这对机器人来说可能很难。因此,在顶部的
import
语句下面:

以open('BadWords.txt',r')作为f的
:
全球坏话#您希望能够在整个代码中访问此内容
单词=f.读()
badwords=words.split()
现在,您拥有了名为
坏单词
的数组中的所有单词。进入您的
on_message()
函数,并添加以下内容:

@client.event
异步def on_消息(ctx,消息):
msg=message.content
对于脏话中的单词:
如果msg中有单词:
等待消息。删除()
等待ctx.send(“不要用那个词!”)
等待ctx.process_消息(消息)

由于缩进不良,代码格式不正确,请修复。如果BadWords.read()中的
msg为false,该怎么办?然后
等待ctx。处理命令(消息)
将不会执行。这并不完全正确。如果查看discord.py的文档,机器人程序可以删除消息。
处理消息
做了什么?@BhavyadeepYadav
处理消息()
方法允许使用相同的消息执行命令。如果没有,则只执行消息()上的
事件的代码。谢谢!:D这有助于我回答同样问题的其他问题。