根据MessageEmbed中的用户在线状态使用自定义表情符号

时间:2018-07-06 05:49:50

标签: javascript node.js discord.js

为我的机器人执行一个userinfo命令,但是使用自定义表情符号似乎遇到了一些麻烦,这些表情符号会根据用户的存在而显示不同。 (在线,离开,免打扰,离线)。我很好奇如何做到这一点。有人有提示吗?

2 个答案:

答案 0 :(得分:0)

如果您尝试根据用户的状态显示不同的表情符号,则可以尝试以下代码:

from nltk.corpus import stopwords
stop_words = stopwords.words('english')
print(len(stop_words))
stop_words.extend(['from', 'subject', 're', 'edu', 'use'])
print(len(stop_words))

文档:https://discord.js.org/#/docs/main/stable/class/Presence

编辑 抱歉,我没有考虑使用开关/保护套。有时使用else / if更快,但是您仍可以使用switch / case来提高可读性。

//user.presence.status returns the current status of a user
if (message.author.presence.status == 'online') {
    message.channel.send(':green_heart:');//Online
}else if (message.author.presence.status == 'idle') {
    message.channel.send(':yellow_heart:');//Away
}else if (message.author.presence.status == 'dnd') {
    message.channel.send(':heart:');//Do not disturb
}else{//Skipped the conditional because the only remaining status is offline
    message.channel.send(':black_heart:');//Offline
}

答案 1 :(得分:0)

我:检查是否存在

您可以通过简单地检查User.presence.status来做到这一点,custom emoji可以是"online""idle""dnd""offline"

II:使用自定义表情符号

要使用https://brew.sh,您需要知道其名称或ID(如果可能,ID更好,您可以通过编写表情符号,在其之前添加\并发送消息来获得它) )

let emoji = guild.emojis.get(your_emoji_id_as_a_string); //if you have the id OR
let emoji = guild.emojis.find("name", your_name_as_a_string) //if you have the name (but if you change this in the server it won't work)
//create your embed like a normal one and when you have to use an emoji, just type it like a variable
let str = `The user is ${emoji}`; //== "The user is " + emoji