Бот Discord, который удаляет все сообщения от пользователя

#python #discord

Вопрос:

Я хотел бы написать код для бота, который удалит все сообщения от человека, покидающего сервер. Бот забанит его и удалит сообщения. У вас есть какие-нибудь предложения, в чем дело?:)

Это и есть код:

 import discord

client = discord.Client

@client.event
async def on_member_remove(member: discord.Member):
  await member.ban()

 

Ошибка:

 Traceback (most recent call last):
  File "main.py", line 6, in <module>
    async def on_member_remove(member: discord.Member):
TypeError: event() missing 1 required positional argument: 'coro'
 

Редактировать:

Я исправил это, и теперь код выглядит так:

 import discord
import os

client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_member_remove(member: discord.Member):
  await member.ban()

client.run(os.getenv('DISCORD_TOKEN'))
 

Я использую replit для создания своего кода. Бот работает онлайн, но он не запрещает и ничего не делает с пользователем.
У тебя есть идеи, почему?

У меня также есть файл «.virtualenv», а также main.py

Ответ №1:

Обнаружил эту проблему на GitHub, похоже, это та же ошибка, что и у вас.

Проблема в том, что вы не инициализируете переменную клиента как экземпляр discord.Client класса, а скорее присваиваете класс переменной клиента.