【问题标题】:Discord py - get channel id from new created channelDiscord py - 从新创建的频道获取频道 ID
【发布时间】:2021-02-06 06:22:50
【问题描述】:

大家好,

我正在尝试创建一个小问题 - 回答问题

那我想做什么?

  1. 对特定频道中的消息做出反应(完成)
  2. 在某个类别下创建一个新频道(完成)
  3. 获取频道id并在该频道发送消息
@client.event
async def on_raw_reaction_add(payload):
    guild_id = payload.guild_id
    guild = client.get_guild(guild_id)
    emoji = payload.emoji.name
    message_id = payload.message_id
    category = guild.get_channel(766608102081822730)

    if message_id == 769082530611593216 and emoji == "????":
        overwrites = {guild.default_role: discord.PermissionOverwrite(read_messages=True, send_messages=True)}
        category = guild.get_channel(769083552209698826)
        now = datetime.now()
        date = now.strftime("%A - %d./%m./%Y")
        await category.create_text_channel(date, overwrites=overwrites)

我的问题是 - 如何从新创建的频道中获取频道 ID?

为什么我需要这个新创建的频道的 ID?

因为我想向频道发送消息 - 因此我需要 ID 对吗?

我的第二个问题:

我希望频道名称像日期(星期一 - 2020 年 12 月 10 日) - discord 显示类似的名称

星期一-10122020

没问题 - 一切都很好

但我希望我的机器人检查名称“monday-10122020”是否已在使用 - 如果是,则返回 - 否则他会创建一个新频道名称“date”并将其放入某类

【问题讨论】:

    标签: python discord discord.py discord.py-rewrite


    【解决方案1】:

    起初,您不能将. 放在频道名称中。据我所知,你能做的最好的就是把-

    然后,当你创建一个频道时,使用这样的变量

    channel = await category.create_text_channel(date, overwrites=overwrites)
    await channel.send('New channel created.`)
    

    并发送消息。

    您可以在创建频道之前检查频道名称,并遍历category.text_channels

    date = now.strftime("%A-%d-/%m-/%Y"
    for channel in category.text_channels:
        if date in channel.name:
            await channel.send('This channel exist')
            return
    channel = await category.create_text_channel(date, overwrites=overwrites)
    await channel.send('New channel created.`)
    

    因此,使用此代码,如果名称为 date 变量的通道存在,它将向该通道发送消息,如果不存在,它将创建通道。

    【讨论】:

    • 感谢您的回答!到新创建的频道的消息工作正常,但频道名称相同的问题仍然存在:( - 我已经尝试过这段代码,因为我问了我的问题,但它没有用
    • 您可以尝试打印出date 和频道名称吗?输出是什么?
    • 啊,日期是 - Friday-23-10-2020 - 频道名称是 - friday-23-10-2020!我只是使用 date.lower() 将所有内容设置为较低的字符。但是现在 remove_reaction 功能不再起作用了 - 但感谢您的帮助
    • 好的解决了reaction_remove的问题:D
    猜你喜欢
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2020-07-26
    • 1970-01-01
    相关资源
    最近更新 更多