因此,我在向特定人员发送没有作者标签且未提及该人的 DM 时遇到了问题。我尝试复制提及数组:
/*jshint esversion: 6*/
const commando = require('discord.js-commando');
class Msgowner extends commando.Command {
constructor(client) {
super(client, {
name: 'msgowner',
group: 'info',
memberName: 'msgowner',
description: 'Gives rules on mock or legit duels.',
examples: ['ladderrules type'],
});
}
async run(message) {
var user = {
id: '12345',
username: 'Bloodmorphed',
discriminator: '12345',
avatar: 'd510ca3d384a25b55d5ce7f4c259b2d0',
bot: false,
lastMessageID: null,
lastMessage: null,
};
user.send('Test');
}
}
module.exports = Msgowner;
我需要以这种方式发送私信是有原因的,但我似乎不知道如何做。 (它现在给出的错误是一个未知函数)。还用通用数字替换 id 和鉴别器,但它们在我的代码中是正确的。
最佳答案
尝试这样的操作 - 使用 message.channel.members.find()
方法获取您要查找的成员:
async run(message) {
// get Collection of members in channel
let members = message.channel.members;
// find specific member in collection - enter user's id in place of '<id number>'
let guildMember = members.find('id', '<id number>');
// send Direct Message to member
guildMember.send('test message');
}
编辑:看起来也可以通过执行以下操作来查找当前 channel 之外的用户:
async run(message) {
// get client from message's channel
let client = message.channel.client;
// fetch user via given user id
let user = client.fetchUser('<id number>')
.then(user => {
// once promise returns with user, send user a DM
user.send('Test message');
});
}
关于node.js - 通过命令向数据库中的特定人员发送 DM,discord.js-commando,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48561487/