如何通过Discord命令获取指定单个Emoji的名称与ID?
实现单服务器表情的名称与ID查询
你需要修改命令逻辑,让它接收用户输入的单个表情作为参数,而非遍历所有服务器表情。以下是修改后的完整代码:
import discord from discord.ext import commands bot = commands.Bot(command_prefix='!', description="ayuda bot") bot.remove_command("help") @bot.command(name='emoji') async def emoji(ctx, emoji: discord.Emoji): # 输出目标表情的名称和ID await ctx.send(f"{emoji.name} {emoji.id}") @emoji.error async def emoji_error(ctx, error): # 处理参数错误的情况(比如输入的不是当前服务器的表情) if isinstance(error, commands.BadArgument): await ctx.send("请输入当前服务器内的有效表情图标!") @bot.event async def on_ready(): print("BOT listo!") bot.run('你的机器人Token')
关键修改说明
- 命令名调整:将原命令
emojis改为emoji,匹配你期望的!emoji + 表情图标调用方式 - 参数类型指定:给命令添加
emoji: discord.Emoji参数,discord.py会自动解析用户输入的表情,直接返回对应的Emoji对象 - 错误处理:新增
emoji_error函数,当用户输入无效表情(比如其他服务器的表情或非表情内容)时,给出友好提示 - 逻辑简化:不再遍历所有服务器表情,直接输出目标表情的信息
这样用户调用!emoji 🎉(替换为你服务器内的表情)时,机器人就会返回该表情的名称和ID了。
内容的提问来源于stack exchange,提问作者silvia2005
相关产品推荐
相关产品推荐

