我似乎无法找到如何让别人说出来的方法!dm并让它只去指定的玩家。这是一个例子:
CoolGuy的消息: “!dm Moogstir你好”
接收者(Moogstir): “-很酷的家伙 你好“
这是我的代码:
const Discord = require('discord.js');
const bot = new Discord.Client();
const Player = new Discord.Client();
bot.on('ready', () => {
console.log(`It's an owl! It's a Bagel! NO It's a ${bot.user.tag}`)
});
Player.on('message', (message) => {
if (message.author.bot) return;
const args = message.content.split(/ +/g);
const command = args.shift().toLowerCase();
if(command === `!dm ` + `${player.user.tag}` + `${message.content}`) {
message.Player.sendMessage(`-${message.author}` + "\n" +
`${message.content}`);
}
});
答案 0 :(得分:0)
要向消息作者发送消息,请使用message.reply(``);
如果您希望将邮件发送给作者以外的其他人,则需要获取收件人ID /用户名并将其传递给集合以查找它们。例如:collection.find('username', 'myUsername');
此外,sendMessage
已弃用,如果您要发送到服务器中的频道,则应为message.channel.send
。
您应该通读documentation以了解基础知识。其中一些可能会让人感到困惑,但是你玩的越多就会开始变得有意义。
编辑:我不确定您为什么要将您的客户player
命名为client
或bot
,但我建议您更改它以避免以后混淆。
答案 1 :(得分:0)
有很多方法可以解决这个问题,但这是最简单的方法之一。
//command: !dm @user <message>
let user = message.mentions.users.first(); //grabbing the user mention
user.send(<message here>);
运行命令!dm
后,代码会找到用户提及的内容,然后向用户发送dm message
。
旁注:为什么还要使用两个不同的客户?使用bot
或使用player
。
答案 2 :(得分:0)
// dm命令
bot.on('message', function(message){
if(message.content.startsWith("!ddm")){
var user = message.mentions.users.first();
var text = message.content.split(' ').slice(2).join(' ');
message.delete();
if(message.author.bot) return;
if(!message.member.hasPermission("ADMINISTRATOR")){
message.channel.send("Du hast leider keine Rechte dafür!")
return;
}
if(message.author.id == "ID hier"){
message.reply("Tja da hast du wohl keine Rechte für! Du stehst für diesen Command leider auf der Blacklist!")
return;
}
if(!user) return message.channel.send("Du hast keinen User angegeben.");
if(!text) return message.channel.send("Du hast keine Nachricht angegeben.")
user.send(`**${message.guild.name}:**`)
user.send(text)
}
})