Преобразовать строку в идентификатор канала - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть команда для ручной установки идентификатора секретного канала:

@client.command(aliases=['secret', 'setSecretChannel'])
@commands.has_permissions(administrator=True)
async def set_secret_channel(ctx, id):
    global secret_channel_id
    secret_channel_id = id
    await ctx.send("ID set")

Другая команда использует secret_channel_id для перемещения пользователя в секретный канал:

@client.command()
@commands.has_role('VIP')
async def joinSecret(ctx, password):
    author = ctx.message.author
    if password == joinSecret_password:
        await author.move_to(secret_channel_id)
        await ctx.send("Password correct")
    else:
        await ctx.send("Password incorrect")
    # delete author's message

Однако возникает следующая ошибка:

AttributeError: 'str' object has no attribute 'id'

Есть ли способ конвертировать строку в идентификатор канала?

РЕДАКТИРОВАТЬ

await author.move_to(int(secret_channel_id))

Преобразование в int, похоже, тоже не работает, теперь ошибка:

AttributeError: 'int' object has no attribute 'id'

1 Ответ

0 голосов
/ 18 апреля 2020

Я понял это, и теперь это работает. Я должен был изменить

await author.move_to(secret_channel_id)

на

await author.move_to(client.get_channel(int(secret_channel_id)))
...