You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py无需频道ID向新建文本频道发送消息的实现方法问询

代码修正方案

你完全不需要遍历服务器频道查找新建的频道,discord.py中create_text_channel方法执行完成后会直接返回刚创建的文本频道对象,直接复用这个对象发送消息即可。
修正后的代码如下:

async def avengers(ctx):
    guild = ctx.guild
    # 原频道发第一条embed消息
    embed = discord.Embed(title='¿Listos?',  color=discord.Color.purple())
    await ctx.send(embed=embed)
    # 创建频道并用变量接收返回的频道对象
    new_channel = await guild.create_text_channel('『😈』chat-anticristiano')
    # 直接给新建频道发第二条消息
    await new_channel.send('Ready!')

原代码问题说明

  • 原有代码调用create_text_channel后没有接收返回值,后续额外遍历频道查找属于多余操作
  • 原有代码的遍历逻辑存在缩进错误、重复循环的问题,甚至将channel变量赋值为字符串,完全无法调用发送消息的方法
  • 原有代码最后调用的是ctx.channel.send,一直是给触发命令的原频道发消息,不可能发到新频道

注意事项

需要确保你的机器人拥有如下权限,否则会执行失败:

  • 管理频道(用于创建新文本频道)
  • 发送消息(同时拥有原频道和新建频道的发消息权限)

内容的提问来源于stack exchange,提问作者iMaGiikz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:15:06