Discord <@!user id> 和 <@userid>
Discord <@!userid> vs <@userid>
所以我正在使用 Node.JS / Discord.JS 创建一个机器人,我有一个问题。
在某些服务器上,当您提及用户时,它在控制台中 returns 为 <@!userid>
,而在其他服务器上它 returns 为 <@userid>
。
我的机器人有一个简单的积分/等级系统,它在 JSON 文件中保存为 <@!userid>
,因此在某些服务器上,当尝试通过提及用户来查看用户积分时,它们会起作用,而在其他服务器上它不会。
有人知道如何解决这个问题吗?我试图多次找到答案,但我不想让它保存两次,一次是 <@!userid>
,然后是 <@userid>
。如果这是解决问题的唯一方法,那么我理解。
感谢您的帮助!
<@!userID>
中的感叹号表示他们在该服务器中设置了昵称。使用没有感叹号的它更可靠,因为它可以在任何地方使用。此外,您应该使用用户 ID 保存用户,而不是整个提及(“<@userid>”)。使用正则表达式解析出多余的符号。
var user = "<@!123456789>" //Just assuming that's their user id.
var userID = user.replace(/[<@!>]/g, '');
这会给我们 123456789
。他们的用户 ID。当然,您可以通过两种方式轻松获取用户对象(您很可能会获取他们的用户名),如果他们在您使用命令的服务器中,您可以
var member = message.guild.member(userID);
或 如果他们不在服务器中而您仍想访问他们的用户对象,那么;
client.fetchUser(userID)
.then(user => {
//Do some stuff with the user object.
}, rejection => {
//Handle the error in case one happens (that is, it could not find the user.)
});
您可以也直接从标签访问成员对象(如果他们在消息中标记了他们)。
var member = message.mentions.members.first();
就这样,无需任何正则表达式,您可以获得完整的成员对象并保存他们的 ID。
var memberID = member.id;
所以我正在使用 Node.JS / Discord.JS 创建一个机器人,我有一个问题。
在某些服务器上,当您提及用户时,它在控制台中 returns 为 <@!userid>
,而在其他服务器上它 returns 为 <@userid>
。
我的机器人有一个简单的积分/等级系统,它在 JSON 文件中保存为 <@!userid>
,因此在某些服务器上,当尝试通过提及用户来查看用户积分时,它们会起作用,而在其他服务器上它不会。
有人知道如何解决这个问题吗?我试图多次找到答案,但我不想让它保存两次,一次是 <@!userid>
,然后是 <@userid>
。如果这是解决问题的唯一方法,那么我理解。
感谢您的帮助!
<@!userID>
中的感叹号表示他们在该服务器中设置了昵称。使用没有感叹号的它更可靠,因为它可以在任何地方使用。此外,您应该使用用户 ID 保存用户,而不是整个提及(“<@userid>”)。使用正则表达式解析出多余的符号。
var user = "<@!123456789>" //Just assuming that's their user id.
var userID = user.replace(/[<@!>]/g, '');
这会给我们 123456789
。他们的用户 ID。当然,您可以通过两种方式轻松获取用户对象(您很可能会获取他们的用户名),如果他们在您使用命令的服务器中,您可以
var member = message.guild.member(userID);
或 如果他们不在服务器中而您仍想访问他们的用户对象,那么;
client.fetchUser(userID)
.then(user => {
//Do some stuff with the user object.
}, rejection => {
//Handle the error in case one happens (that is, it could not find the user.)
});
您可以也直接从标签访问成员对象(如果他们在消息中标记了他们)。
var member = message.mentions.members.first();
就这样,无需任何正则表达式,您可以获得完整的成员对象并保存他们的 ID。
var memberID = member.id;