Кастомный канал для сообщений discord.py

@client.event
async def on_guild_join(guild):
    with open ('logsserver.json', 'r') as f:
        channels = json.load(f)
    channels[int(guild.id)]
    with open('logsserver.json', 'w') as f:
        json.dump(channels, f)

@client.command()
async def set_log_channel(ctx, ids):

    with open ('logsserver.json', 'r') as f:
        channels = json.load(f)
    channels[int(ctx.guild.id)] = ids
    with open('logsserver.json', 'w') as f:
        json.dump(channels, f)

Код получает канал для логов. Я хочу, чтобы при команде бот отправлял сообщения в тот канал, который содержится в бд.


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

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

Так хотите?

@client.command()
async def set_log_channel(ctx, ids):

    with open ('logsserver.json', 'r') as f:
        channels = json.load(f)
    channels[int(ctx.guild.id)] = ids
    with open('logsserver.json', 'w') as f:
        json.dump(channels, f)
    channel = client.get_channel(ids)
    await channel.send(f"Канал {channel.name} в категории {channel.category} был установлен как канал для логов")

Также предлагаю перемене ids дать тип int что бы в бд заносился только айди а не какой-то текст который напишет юзер:

async def set_log_channel(ctx, ids: int):
→ Ссылка