如何访问用户对象?
How to access the User object?
我正在为我的机器人使用 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');
要获取机器人帐户上的特定用户,请使用 client.fetchUser(id)
。这将 return 一个 Discord 用户对象。
否则(如在 selfbots 上),并在频道上,使用频道 object.member(userResolvable)。
好吧,如果您正在回复消息,那么您可以通过 msg.author
获取用户对象。用户 ID 为 msg.author.id
。
但是,如果您搜索的是从它的 ID 中获取用户对象,就像您将其保存在数据库中一样。然后你通过 client.users.get(id);
来做到这一点,其中 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);
});
我正在为我的机器人使用 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');
要获取机器人帐户上的特定用户,请使用 client.fetchUser(id)
。这将 return 一个 Discord 用户对象。
否则(如在 selfbots 上),并在频道上,使用频道 object.member(userResolvable)。
好吧,如果您正在回复消息,那么您可以通过 msg.author
获取用户对象。用户 ID 为 msg.author.id
。
但是,如果您搜索的是从它的 ID 中获取用户对象,就像您将其保存在数据库中一样。然后你通过 client.users.get(id);
来做到这一点,其中 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);
});