中的感叹号<@!userID>
意味着他们在该服务器中设置了昵称。使用不带感叹号的方法更可靠,因为它可以在任何地方使用。此外,您应该保存用户的 ID,而不是整个提及内容(“”)。使用正则表达式解析出额外的符号。
var user = "<@!123456789>" //Just assuming that's their user id.
var userID = user.replace(/[<@!>]/g, '');
这会给我们123456789
。他们的用户 ID。当然,您可以通过两种方式轻松获取用户对象(您很可能会获取他们的用户名),如果他们位于您使用该命令的服务器中,您可以
var member = message.guild.member(userID);
OR如果他们不在服务器中并且您仍然想访问他们的用户对象,那么;
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.)
});
You can ALSO只需直接从标记访问成员对象(如果他们在消息中标记了它们)。
var member = message.mentions.members.first();
就像这样,无需任何正则表达式,您就可以获得完整的成员对象并保存它们的 id。
var memberID = member.id;