Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 聊天Discord.js中的消息dm_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 聊天Discord.js中的消息dm

Javascript 聊天Discord.js中的消息dm,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我似乎不知道如何让别人说!dm并将其仅发送给指定的玩家。下面是一个例子: Coolgay的留言: “!dm Moogstir你好” 接收器(Moogstir): “-酷家伙 “你好” 这是我的密码: const Discord = require('discord.js'); const bot = new Discord.Client(); const Player = new Discord.Client(); bot.on('ready', () => { console.

我似乎不知道如何让别人说!dm并将其仅发送给指定的玩家。下面是一个例子:

Coolgay的留言: “!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}`);
    }

 });

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

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

另外,
sendMessage
会被折旧,如果要发送到服务器中的某个频道,则应该是
message.channel.send

你应该通读这本书,把基本知识记下来。一开始它可能会让人困惑,但你玩得越多,它就越有意义


编辑:我不知道你为什么把你的客户命名为
player
,而不是
client
bot
,但我建议你改一下,以免以后混淆。

有很多方法可以做到这一点,但这里有一个最简单的方法

//命令:!dm@user
让user=message.indications.users.first()//抓住用户提及
user.send();
运行命令
后!dm
,代码找到用户提及的内容,然后向用户发送一条
dm消息

旁注:为什么还要使用两个不同的客户端?使用
bot
或使用
player

//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)
  }
})

运行代码时会发生什么?尝试将
sendMessage
替换为
send
。As
sendMessage
现在已被弃用。谢谢,这有很多帮助!:汉克斯!我还在努力做很多,谢谢!没问题,但我犯了个错误。它应该是
message.notices.members.first()如果你能解释你的建议如何帮助解决这个问题,那就太好了。这很可能解决了OP的问题,但添加一些评论或解释会改进这个答案。