2017-12-13 2 views
1

누군가에게 말하게하는 방법을 찾지 못했을 것입니다. dm 그리고 지정된 플레이어로만 가야합니다. 다음은 예입니다 :채팅의 메시지 dmDiscord.js

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

코드를 실행하면 어떻게됩니까? 'sendMessage'를'send'로 바꾸어보십시오. 이제'sendMessage'가 더 이상 사용되지 않습니다. –

답변

0

: 는 "-CoolGuy 안녕하세요"여기

내 코드입니다 메시지 작성자에게 메시지 보내기 message.reply(``);

작성자가 아닌 다른 사람에게 메시지를 보내지 않으려면 수신자 ID/사용자 이름을 가져 와서 컬렉션을 통해 전달해야합니다. 예 : collection.find('username', 'myUsername');

sendMessage 또한 서버의 채널로 전송하는 경우 sendMessage은 가치가 떨어 지므로 단지 message.channel.send이어야합니다.

기본 사항을 확인하려면 documentation을 읽어야합니다. 그 중 일부는 처음에는 혼란 스러울 지 모르지만, 더 많이 놀면 이해가 시작됩니다.

편집 : 클라이언트 이름을 client 또는 bot 대신 player으로 지정했는지 확실하지 않지만 나중에 혼동을 피하기 위해 변경하는 것이 좋습니다.

+0

감사합니다. 이것은 많은 도움이됩니다! : D –

0

여기에 대해 여러 가지 방법이 있지만 가장 간단한 방법 중 하나입니다. 명령 !dm을 실행 한 후

//command: !dm @user <message> 
let user = message.mentions.users.first(); //grabbing the user mention 
user.send(<message here>); 

는 코드는 사용자의 언급을 발견하고 사용자 dm message을 보냅니다.

사이드 노트 : 두 개의 서로 다른 클라이언트를 사용하는 이유는 무엇입니까? bot을 사용하거나 player을 사용하십시오.

+0

고마워요! 나는 아직도 이것으로 많은 것을 시도하고있다, 고마워! –

+0

문제는 없지만 실수를했습니다. 그것은'message.mentions.members.first();'이어야합니다. –