<@!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);
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.)
});
可以ALSO只需訪問成員對象直接形成標籤(如果他們在郵件中標記它們)。
var member = message.mentions.members.first();
就這樣,沒有任何正則表達式,你可以得到完整的成員對象。並保存他們的ID。
var memberID = member.id;
請添加最小代碼示例,以重現您嘗試解決的錯誤。 – MedAli