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

discord.py whois指令用户角色列表显示No roles异常修复

问题根因

Discord 中所有服务器成员默认都会持有@everyone角色,原有逻辑在遍历角色列表时,只要检测到@everyone就直接往结果列表追加No roles,没有判断用户是否存在其他自定义角色,因此无论用户有没有额外角色,No roles都会被拼接到最终输出里,出现异常展示。

修复方案

直接替换原代码中角色列表处理的片段,调整判断逻辑:先过滤掉默认的@everyone角色收集所有有效自定义角色,仅当有效角色列表为空时才返回无角色提示。
替换后的角色处理代码:

# 过滤@everyone默认角色,收集用户持有的所有自定义角色
rlist = [role.mention for role in user.roles if role.name != "@everyone"]
# 按是否存在自定义角色生成最终展示内容
b = " | ".join(rlist) if rlist else "No roles"

额外优化提示:原代码中角色字段传值写的value=''.join([b])属于冗余写法,直接写value=b即可,展示效果完全一致。

修复后效果
  • 当用户持有除@everyone外的自定义角色时:仅拼接展示所有实际角色,不会混入No roles提示
  • 当用户没有任何自定义角色时:正常显示No roles提示,符合需求预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:39:20