添加特定 unicode 表情时,Discord.js message.react 失败
Posted
技术标签:
【中文标题】添加特定 unicode 表情时,Discord.js message.react 失败【英文标题】:Discord.js message.react fails when adding specific unicode emotes 【发布时间】:2018-08-19 22:14:20 【问题描述】:昨天我开始使用 discord.js 中的指南编写一个机器人。 The core 就是您完成命令处理程序部分的内容。 我正在处理一个投票命令,机器人会在其中对 Unicode 符号做出反应,例如 :one: :two: :three:. 这是我遇到问题的地方。使用:
module.exports =
name: 'testing',
description: 'creates a reaction',
aliases: ['test'],
cooldown: 1,
execute(message, args)
if (!args.length)
message.react(':one:');
;
给我一个DiscordAPIError: Unknown Emoji
我花了一些时间尝试不同的表情,比如????他们正在按预期工作。使用表情 ID (422515569623957504) 对我来说效果不佳。
这是我的错误还是错误?
【问题讨论】:
也看看unicode problems with emojis 【参考方案1】:在 Discord.js 中,要使用表情符号对消息做出反应,您需要编写表情符号(使用 ? 或 ?,完整列表 here)或使用 Emoji。 要对数字做出反应,您可以使用以下命令:
0⃣1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣?
只需复制您需要的号码即可。 要使用自定义表情符号对消息做出反应,您需要执行以下操作:
message.react(message.guild.emojis.get('123456789012345678'))
.then(console.log)
.catch(console.error);
注意:机器人可以使用来自所有服务器(如 Nitro)的表情符号。 client.emojis
返回机器人可以使用的所有表情符号的集合,client.emojis.get('id')
从另一台服务器获取表情符号。
【讨论】:
我昨天和我服务器的另一个程序员一起工作。你建议的第一件事不起作用。但我会尝试第二个。我们找到了另一种方法:对于 :one: 可以使用 '\u0031\u20E3'。出于某种原因,此表情符号的 Unicode 无法正常工作。如果您要求 discord 显示转义版本,它只会给您 :one: 结果。无论如何感谢您的建议,我会在测试后支持它 截至 2019 年,这确实有效。一个非常容易犯的错误是在复制粘贴时留出一个空格,因为它们有奇怪的重叠。否则将导致DiscordAPIError: Unknown Emoji
以上是关于添加特定 unicode 表情时,Discord.js message.react 失败的主要内容,如果未能解决你的问题,请参考以下文章
Discord bot 添加对消息 discord.py 的反应(无自定义表情符号)