Подскажите как сделать несколько 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("Привет, мы тебя ждали!")