python - Discord Bot Python 如何连接表情符号
问题描述
@bot.command()
async def bar(ctx,number:int):
text=""
emoji = get(bot.emojis, name='emojiname')
for i in range(number):
text=text+"<:"+str(emoji.name)+":"+str(emoji.id)+">"
await ctx.send(text)
这是返回 :emojiname::emojiname::emojiname:... :emojiname: 您指定的数量但不返回几个表情符号,所以我想知道是否有任何方法可以在不和谐 python 上连接表情符号。
解决方案
TLDR
要连接不和谐的 Emoji 对象,您可以使用:
# emoji1: discord.Emoji
# emoji2: discord.Emoji
two_emoji_msg = str(emoji1) + str(emoji2)
在您的情况下,代码变为:
@bot.command()
async def bar(ctx, number: int):
text = ""
emoji = get(bot.emojis, name='emojiname')
for i in range(number):
text += str(emoji)
await ctx.send(text)
虽然我建议text = str(emoji) * number
在这种情况下使用。
解释
discord.Emoji
没有__add__
方法。这意味着您不能discord.Emoji
直接连接实例(即emoji1 + emoji2
不可能),但它确实有一个__str__
方法可以返回有效的不和谐表情符号字符串表示,然后连接该字符串。您还可以格式化名称和 ID "<:{emoji.name}:{emoji.id}>"
,这对于动画表情符号不起作用,因为它们的表示以<a:
not <:
(即"<a:{emoji.name}:{emoji.id}>"
)开头
PS我不完全理解你的问题,所以纠正我,如果这不是你的意思。
推荐阅读
- python - 在python中按列表的顺序重复选择n个项目
- android - 领域数据库 - 不支持 x 类型的字段
- python - 嘶嘶声的困难
- tensorflow - 机器学习:创建类激活图
- windows - 关闭事件对象会导致等待该对象的线程唤醒吗?
- amazon-web-services - 监视 S3 存储桶在过去 x 小时内丢失新文件的最佳策略是什么?
- airflow - 使用 ONE_FAILED 的气流 trigger_rule 导致 dag 失败
- javascript - 我应该删除或禁用 mongodb 中的文档吗
- coredump - 为什么在转储核心时无法将终端输出保存到文件中
- angularjs - AngularJS:如何将参数从控制器传递到工厂