我可以在代码中调整什么才能让我使用自定义表情符号来回应邮件?
我试过这个:
let suggestions = message.guild.channels.find("name", "suggestions");
if (message.channel === suggestions) {
message.channel.send().then(newMessage => {
newMessage.react('<:information :412438127148531723>')
})
}
但我收到错误:
emoji_id:Value&#34; 412438127148531723&gt;&#34;不是雪花。
答案 0 :(得分:2)
编辑:我没有注意到您尝试通过.send()
发送空消息,这样做会引发错误。查看@Blundering Philosopher的回答。
由于错误状态为emoji_id: Value "412438127148531723>" is not snowflake.
,表示您尝试通过.react()
传递的内容不是雪花:
newMessage('<:information :412438127148531723>') //here
Emoji
状态为id
,Emoji
id
类型为docs。
因此,您需要将.react();
的{{1}}传递到newMessage.react('<:information :412438127148531723>')
,因此只需将此行替换为newMessage.react('412438127148531723')
,即: let suggestions = message.guild.channels.find("name", "suggestions");
if (message.channel === suggestions) {
message.channel.send('your message').then(newMessage => {
newMessage.react('412438127148531723')
})
}
所以你的代码看起来应该是这样的结果:
:root
另外,请记住,只有当机器人本身可以访问表情符号时,这才有效,即 - 共享具有这些表情符号的服务器;与Discord Nitro的工作方式相同。
答案 1 :(得分:1)
首先,您不能在括号中使用.send()
而不使用任何字符串或StringResolvable
。尝试发送这样的基本字符串:
message.channel.send('Test message!').then(...)
其次,正如@newbie提到的那样,你不应该将'<:information... :>'
放在表情符号上,只需这样做:
// enter your emoji id inside the quotes
newMessage.react('...');
最后,您应该将.catch
语句添加到任何返回承诺的Discord函数(如.send
或.react
),如下所示:
message.channel.send(...).then(...)
.catch(console.error);
// and later in your code...
newMessage.react(...)
.catch(console.error);
所以要将所有代码放在一起,请执行以下操作:
let suggestions = message.guild.channels.find("name", "suggestions");
if (message.channel === suggestions) {
// (send some text to channel)
message.channel.send('Test message!').then(newMessage => {
// (add your emoji id inside quotes -> probably '412438127148531723'
newMessage.react('...')
// (catch errors)
.catch(console.error);
})
// (catch errors)
.catch(console.error);
}
答案 2 :(得分:0)
因为这是当您在Google上搜索此问题时的唯一答复,所以即使它已经存在1年,我也会予以答复。
emoji_id:值“ 412438127148531723>”不是雪花。
只需最后删除>即可
newMessage.react('<:information :412438127148531723')
为我工作。希望有人对相同的问题进行搜索会有所帮助