我正在使用discord.js作为我的机器人,我想使用the User object从中获取ID。但是,文档对如何使用它并不是非常具体。你如何获得特定用户的对象?
<小时/> 另外,我也是node.js的新手,所以也许在node.js中我只有一些巨大的相似之处,我并不喜欢它。
我的代码:
const Discord = require("discord.js");
const client = new Discord.Client();
var kingdoms = [];
var ids = [];
const Kingdom = function(name, id){
this.name = name;
this.aa = 1;
this.da = 1;
this.attackDate = 0;
this.exhausaa = 0;
ids.push(id);
};
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
client.user.setGame("k^help");
});
client.on('message', msg => {
console.log(msg);
console.log(msg.content.trim().indexOf('k^addkingdom'));
if (msg.content.trim() == 'k^help') {
msg.channel.send({embed:
{
description: 'Note: All things in brackets must be replaced and are parameters.',
fields: [{
name: "k^help",
value: "Displays this message."
},
{
name: "k^addkingdom [name]",
value: "Adds a kingdom to the database named [name]. One per person only."
}]
}
});
}
if (msg.content.trim().indexOf('k^addkingdom ') == 0) {
//if(ids.contains(msg.GuildMember.id)){
// msg.reply("You already have a kingdom!");
//}
var content = msg.content;
content = content.replace('k^addkingdom ', '');
content.trim();
msg.reply("Kingdom " + content + " added!");
kingdoms.push(new Kingdom(content/*, msg.GuildMember.id*/));
}
});
client.login('Hidden for privacy');
答案 0 :(得分:1)
好吧,如果您正在响应消息,那么可以通过msg.author
获取用户对象。和用户ID msg.author.id
。
但是,如果要搜索的是从其ID中获取用户对象,例如将其保存在数据库中时。然后,通过client.users.get(id);
进行操作,其中client是不和谐的client对象。
例如,如果您想以PM(专用模式)向用户发送消息,则采用这种方式
let user = client.users.get(id);
user.send("You need to wake up my friend!");
另一个响应消息的示例:
client.on('message', (msg) => {
if(msg.content === '!test') {
let userId = msg.author.id;
msg.author.send('hello i\'m here ! Your user Id is ' + userId);
// let user = msg.author; user.send(...
}
});
另一个在第一次到达新服务器成员时向其发送消息的示例:
client.on("serverNewMember", (server, user) => {
user.send("Welcome to: " + server.name);
});
同一示例,但使用sendMessage(奖励^ ^):
client.on("serverNewMember", (server, user) => {
client.sendMessage(user, "Welcome to: " + server.name);
});
答案 1 :(得分:-2)
要获取机器人帐户的特定用户,请使用client.fetchUser(id)
。这将返回Discord用户对象。
否则(如在自动机器人上)和通道上使用channel object.member(userResolvable)。
答案 2 :(得分:-3)
我不熟悉不和谐,但是如果你有一个用户对象,那么阅读你链接的api,只是为了得到用户的id
user.id