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

Discord Python机器人on_guild_join事件执行报错问题排查

解决Discord机器人on_guild_join事件中的TypeError问题

先来看你遇到的错误:

Ignoring exception in on_guild_join
Traceback (most recent call last):
  File "/home/user/.local/lib/python3.7/site-packages/discord/client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "/home/user/DiscordBots/DefaultRobloxTools/cogs/CommandEvents.py", line 58, in on_guild_join
    embed = discord.Embed(title=tit + " Was invited to " + name)
TypeError: unsupported operand type(s) for +: 'function' and 'str'

这个错误的核心原因非常明确:你在尝试把一个函数对象和字符串做拼接操作,而Python不允许不同类型的对象直接做加法拼接。具体来说,代码里的tit并不是你预期的字符串(比如机器人名称),而是一个未被调用的函数。

修复方案

你需要先检查tit的定义,分两种情况处理:

  • 如果tit是一个用来返回字符串的函数(比如你写了def tit(): return "My Bot Name"),那你需要调用这个函数来获取它的返回值,把代码改成:
    embed = discord.Embed(title=tit() + " Was invited to " + name)
    
  • 如果tit本来就应该是一个字符串变量,那你可能不小心把它定义成了函数,改成直接赋值字符串即可,比如:
    tit = "My Awesome Discord Bot"
    

额外的小优化

你的代码里还有一行逻辑不够严谨:

if guild.description == True:

guild.description的类型是字符串或者None,永远不会等于True。你应该直接判断它是否存在(非空、非None),改成:

if guild.description:

这样就能正确显示服务器的描述内容了。

最后附上修正后的核心代码片段参考:

@commands.Cog.listener()
async def on_guild_join(self, guild):
    name = str(guild.name)
    description = str(guild.description) if guild.description else "No description provided"
    member_count = str(guild.member_count)
    channel_count = str(len(guild.channels))
    id = str(guild.id)
    region = str(guild.region)
    
    # 假设tit是返回字符串的函数,这里调用它
    embed = discord.Embed(title=tit() + " Was invited to " + name)
    
    if guild.description:
        embed.add_field(title="Description", value=description)
    embed.add_field(title="ID", value=id)
    embed.add_field(title="Member Count", value=f"Count: {member_count}")
    embed.add_field(title="Channel Count", value=channel_count)
    embed.add_field(title="Region", value=region)
    embed.set_thumbnail(url=guild.icon_url)
    
    await guild_channel.send(embed=embed)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 08:27:36