我正在JS的Discord机器人上编写有关经济性的功能, 所以我需要获取我的会员的ID,并且正在用
进行测试let defineduser = '';
if (!args[1]){
defineduser = message.author.id
} else {
let firstMentioned = message.mentions.users.first();
defineduser = firstMentioned.id;
但这实际上不起作用...
我想用2个参数使命令'!addmoney':
数量和用户。
实际的数量是有效的,如果我不给出第二个参数,我的代码实际上是有效的,因为这是我的ID。
我认为message.mentions.users.first();
已过时,但discord.js文档中并未提及...
答案 0 :(得分:0)
Discord.js的文档中确实有message.mentions
:https://discord.js.org/#/docs/main/stable/class/Message?scrollTo=mentions
让我们说消息是!addmoney 10 <@0000000>
编辑:当提到@user
时,提及的文本为<@[user's id]>
并且args是["10", "<@0000000>"]
,这是假设您正确分割了message.content
。
let userID;
if(args[1]){
let mention = message.mentions.users.first();
userID = mention!=undefined ? mention.id : args[1];
//You should also check if the id supplied via args[1] is a valid id.
}
else {
console.error(`no id supplied`)
return;
}
注意:我见过的大多数人都这样做
args = message.content.split(` `);
//args now equals ["!addmoney" "10", "<@0000000>"]
//which means args[1] = "10",
args.shift();
//args now equals ["10", "<@0000000>"]
希望这会有所帮助!