聊天中的消息dm Discord.js

时间:2017-12-13 18:44:23

标签: javascript node.js discord.js

我似乎无法找到如何让别人说出来的方法!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}`);
    }

 });

3 个答案:

答案 0 :(得分:0)

要向消息作者发送消息,请使用message.reply(``);

如果您希望将邮件发送给作者以外的其他人,则需要获取收件人ID /用户名并将其传递给集合以查找它们。例如:collection.find('username', 'myUsername');

此外,sendMessage已弃用,如果您要发送到服务器中的频道,则应为message.channel.send

您应该通读documentation以了解基础知识。其中一些可能会让人感到困惑,但是你玩的越多就会开始变得有意义。

编辑:我不确定您为什么要将您的客户player命名为clientbot,但我建议您更改它以避免以后混淆。

答案 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)
  }
})