Проблема с ботом Discord

for guild in bot.guilds:

        guild_to_audiocontroller[guild] = AudioController(bot, guild)

        await guild_to_audiocontroller[guild].register_voice_channel(guild.voice_channels[0])

        await General.udisconnect(self=None, ctx=None, guild=guild)

        try:
            await guild_to_audiocontroller[guild].register_voice_channel(guild.voice_channels[0])
        except:
            pass

        print("Подключен к {}".format(guild.name))

    print(config.STARTUP_COMPLETE_MESSAGE)



@bot.event
async def on_guild_join(guild):
    print(guild.name)
    guild_to_audiocontroller[guild] = AudioController(bot, guild)

    await guild_to_audiocontroller[guild].register_voice_channel(guild.voice_channels[0])

bot.run(config.BOT_TOKEN, bot=True, reconnect=True)

После запуска выдает ошибку:

Ignoring exception in on_ready
Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "run.py", line 52, in on_ready
    await guild_to_audiocontroller[guild].register_voice_channel(guild.voice_channels[0])
IndexError: list index out of range

Возможно ошибка появилась из-за обновления, так как до этого все работало прекрасно


Ответы (1 шт):

Автор решения: Danis

попробуйте так:

for i in range(len(bot.guilds)):
    guild_to_audiocontroller[i] = AudioController(bot, bot.guilds[i]) 
    try:
        await guild_to_audiocontroller[i].register_voice_channel(bot.guilds[i].voice_channels[0])
        await General.udisconnect(self=None, ctx=None, guild=bot.guilds[i])
        await guild_to_audiocontroller[i].register_voice_channel(bot.guilds[i].voice_channels[0])
    except IndexError:
        continue 
    print("Подключен к {}".format(guild[i].name))
→ Ссылка