如何在discord embed的description中展示for循环输出的所有Minecraft在线玩家
问题修复方案
错误原因
- 你的代码仅在for循环中打印玩家名称,没有提前收集所有玩家的信息,循环结束后
player变量仅保留了最后一次遍历的结果,所以embed只能展示单个玩家。 - 代码中的
global player全局变量声明属于冗余内容,可以直接删除。
修复代码
我们可以直接用join()方法将所有玩家名用换行符拼接,再传入embed的description参数:
players = json_data["players"]["list"] # 拼接玩家名,单个占一行,列表为空时显示兜底提示 player_desc = "\n".join(players) if players else "暂无在线玩家" embed = discord.Embed( title="Online Players", description=player_desc, color=discord.Color.blue() ) await message.channel.send(embed=embed)
如果想要展示效果更好,可以给每个玩家名前加项目符号:
# 拼接时加入短横线前缀 player_desc = "\n- " + "\n- ".join(players) if players else "暂无在线玩家"
内容的提问来源于stack exchange,提问作者D4RKTARGET
相关产品推荐
相关产品推荐

