При любом событие связанным с голосовой активностью, вылетает данная ошибка.
Не могу понять причину. Все работает исправно и свою задачу выполняет.
Но ошибка очень раздражает и засоряет логи.
Хотелось бы найти причину.
Приложил структуру базы MongoDB и часть кода связанную с голосовой активностью.
Все же ошибка которая выпадает связана именно с ней.
post1 = {
"_id": guild.id,
"name": guild.name,
"privatch": 0,
"categorypr": 0,
"categorypb": 0,
"publicch": 0,
"marry": True,
"marry_price": 5000,
"uzhin_price": 500,
"gif_price": 50,
"clans": True,
"chatmx": 1,
"voicex": 1,
"members": 0,
"admins": [],
"moderators": [],
"helpers": []
}
if collguild.count_documents({"_id": guild.id}) == 0:
collguild.insert_one(post1)
@client.event
async def on_voice_state_update(member, before, after):
data = colluser.find_one({"_id": member.id})
for guild in client.guilds:
datag = collguild.find_one({"_id": guild.id})
lb = data["localban"]
vox = datag["voicex"]
xp = data["exp"]
xep = data["exp"]
lvl = data["lvl"]
cd = time.time()
lbt = cd - data["localban"]
lvlup = 500 + 100 * lvl
expn = xep - lvlup
prc_v = client.get_channel(datag["privatch"])
prct = datag["categorypr"]
pbc_v = client.get_channel(datag["publicch"])
pbct = datag["categorypb"]
if after.channel == prc_v:
overwrites = {
guild.default_role: discord.PermissionOverwrite(connect=False),
guild.me: discord.PermissionOverwrite(manage_channels=True, connect=True),
}
catpr = discord.utils.get(guild.categories, id=prct)
voice_channel = await guild.create_voice_channel(member.name, overwrites=overwrites, category=catpr)
await member.move_to(voice_channel)
if after.channel == pbc_v:
overwrites = {
guild.default_role: discord.PermissionOverwrite(connect=True),
guild.me: discord.PermissionOverwrite(manage_channels=True, connect=True),
}
catpb = discord.utils.get(guild.categories, id=pbct)
voice_channel = await guild.create_voice_channel(member.name, overwrites=overwrites, category=catpb)
await member.move_to(voice_channel)
try:
if before.channel.members == [] and not before.channel.id == datag["privatch"]:
if before.channel.category_id == prct:
await before.channel.delete()
except:
pass
try:
if before.channel.members == [] and not before.channel.id == datag["publicch"]:
if before.channel.category_id == pbct:
await before.channel.delete()
except:
pass
if lb >= 0:
if lbt <= data["cdlb"]:
return
else:
if before.channel is None and after.channel is not None:
print(f"Пользователь {member} зашел на канал {after.channel}")
t1 = time.time()
colluser.update_one({"_id": member.id},
{"$set": {"voice_tim1": t1}})
elif before.channel is not None and after.channel is None:
if data["voice_activ"] == 0:
return
t1 = data["voice_tim1"]
voice_activ1 = data["voice_activ"]
balance = data["bal"]
t2 = time.time()
tim = t2-t1
print(f"Пользователь {member} вышел с канала {before.channel} И провел в войсе {tim} секунд")
colluser.update_one({"_id": member.id},
{"$set": {"voice_activ": voice_activ1 + tim}})
colluser.update_one({"_id": member.id},
{"$set": {"bal": balance + (tim / 12) * vox}})
colluser.update_one({"_id": member.id},
{"$set": {"exp": xp + (tim / 12) * vox}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
if xep >= lvlup:
colluser.update_one({"_id": member.id},
{"$set": {"exp": expn}})
colluser.update_one({"_id": member.id},
{"$set": {"lvl": lvl + 1}})
else:
return
else:
return
else:
return
else:
return
else:
return