Задать вопрос
@Mem1388

Как сделать несколько Bot.event on_message?

Подскажите как сделать несколько Bot.event с on_message(хочу сделать фильтрацию чата на сообщение, и систему уровней. Система уровней работает нормально, но фильтрация не получается), при наличии второго выводит проблему function is already defined
@Bot.event
async def on_message(message):
    if message.author.bot: return
    with open("D:\\PythonWorks\\DiscordAL\\UsersLevel.json", 'r') as f:
        users = json.load(f)
    async def userdata_update(users, user):
        if not user in users:
            users[user] = {}
            users[user]['User_Experience'] = 0
            users[user]['User_Level'] = 1
    async def UserAdd_experience(users, user, User_Experience):
        users[user]['User_Experience'] += User_Experience
    async def UserAdd_Level(users, user):
        User_Experience = users[user]['User_Experience']
        User_Level = users[user]['User_Level']
        if User_Experience > User_Level:
            User_Level = User_Level
            User_Experience = 0
            emb = discord.Embed(color = 0x00FF00)
            emb.set_author(icon_url=message.author.avatar_url, name = f'{message.author} Повышен уровень!')
            emb.add_field(name = 'Полученный уровень', value = User_Level + 1)
            emb.set_thumbnail(url='https://b.thumbs.redditmedia.com/oXMFXkldXGxJYKVeqxJkDq00R-vEYmMYEBDKD2Cbyls.png')
            await message.author.send(embed = emb)
            users[user]['User_Experience'] = 0
            users[user]['User_Level'] = User_Level + 1
    await userdata_update(users, str(message.author.id))
    await UserAdd_experience(users, str(message.author.id),0.1)
    await UserAdd_Level(users, str(message.author.id))
    with open("D:\\PythonWorks\\DiscordAL\\UsersLevel.json", 'w') as f:
        json.dump(users, f)
    await Bot.process_commands(message)

@Bot.event
async def on_message(message):
    if message.content.startswith("Привет"):
        await message.channel.send("Привет, мы тебя ждали!")
  • Вопрос задан
  • 399 просмотров
Подписаться 1 Простой 7 комментариев
Решения вопроса 1
SladkayaDoza
@SladkayaDoza
Обучаюсь программированию
нужно теснить всё в один "on_message"
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Использовать декоратор bot.listen
https://discordpy.readthedocs.io/en/stable/ext/com...

Или добавлять функции для "прослушивания" через bot.add_listener
https://discordpy.readthedocs.io/en/stable/ext/com...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы