ich würde gerne in meinen Discord Bot einen Filter einbauen. Er soll sowohl Schimpfwörter als auch andere Buchstaben oder Wörter filtern, indem er die Nachrichten, die das Wort enthalten löscht. Allerdings soll der Filter nur in einem gewissem Channel eintreten, nicht auf jeden zurückgreifen (bitte hinterfragt den Sinn einfach nicht :K )
Mein Versuch wäre gewesen:
(Bitte nicht erschrecken, bin noch recht neu XD)
Code: Alles auswählen
async def on_message(message):
if message.__contains__("SCHWIMPFWORT") and channel.id == "tz34657648766BLABLABLA":
messages = []
await client.delete_messages(messages)
returnmsg = await client.send_message(message.channel, "Deleted messages.")
await asyncio.sleep(4)
await client.delete_message(returnmsg)
Den Codefetzen fand ich in einem ähnlichen Tutorial, also auch hier sorry wenn da etwas falsch läuft.
Der Error der kommt lautet:
AttributeError: 'Message' object has no attribute '__contains__'
Woher das kommt, keine Ahnung. Immerhin kann ich das Attribut "__contains__" sonst auch nutzen:
Code: Alles auswählen
if message.content.startswith(STATICS.PREFIX):
invoke = message.content[len(STATICS.PREFIX):].split(" ")[0]
args = message.content.split(" ")[1:]
if commands.__contains__(invoke):