Discord嵌入系统如何通过聊天命令动态设置Embed的标题和描述
Discord.py 动态生成Embed消息实现方案
你可以通过拆分命令后的输入内容,用约定的分隔符区分标题和描述,实现不用改代码动态生成Embed的需求,修改后代码如下:
@client.event async def on_message(message): # 忽略机器人自身消息,避免循环触发 if message.author == client.user: return if message.content.startswith('!emsay'): # 提取命令前缀后的所有内容 input_content = message.content.removeprefix('!emsay').strip() # 无参数时返回使用提示 if not input_content: await message.channel.send('命令格式:`!emsay 自定义标题 | 自定义描述`') return # 按|分割一次,避免描述中出现|被截断 content_parts = input_content.split('|', maxsplit=1) embed_title = content_parts[0].strip() embed_desc = content_parts[1].strip() if len(content_parts) == 2 else '' # 生成动态Embed embedVar = discord.Embed(title=embed_title, description=embed_desc, color=0x00ff00) await message.channel.send(embed=embedVar) # 若你使用了commands框架注册其他命令,请保留该行,否则可删除 await client.process_commands(message)
使用说明
- 示例1:发送
!emsay 活动通知 | 本周六下午2点线下团建,地点公司一楼大厅,即可生成对应标题和描述的Embed消息 - 示例2:如果不需要描述,直接发送
!emsay 紧急公告,生成的Embed只会展示设置的标题 - 如果标题或者描述中需要输入
|符号,可以自行将代码中的分隔符替换为其他不常用的符号(比如///、#等)
内容的提问来源于stack exchange,提问作者kaiihannam
相关产品推荐
相关产品推荐

