2017-03-10 8 views
0

나는 Discord를위한 간단한 봇을 작성하려고 노력해 왔으며 사용자로부터 주어진 명령을 삭제하고 내가 봇에 설정 한 대답을 반환하는 deleteCommand 행을 추가하는 방법을 생각했습니다. 나는 다음 삭제 얻을! "핑"이 원하는Discord.js deleteCommand

exports.run = function(Aika, message, args) { 
    message.channel.sendMessage('pong! :P\'${Date.now() - message.createdTimestamp} ms\''); 
}; 

exports.conf = { 
    enabled: true, 
    guildOnly: false, 
    aliases: [], 
    permLevel: 0 
}; 

exports.help = { 
    name: 'ping', 
    description: 'Responds with "pong" and gives current ms rate.', 
    usage: 'ping' 
}; 

와 나는 불화 채팅에 "핑 (ping)!"를 보내

의 내가 탁구 명령입니다이 명령 있다고 가정 해 봅시다 bot 대답 "탁구!", 내가 명령을 삭제하게 만들 수 없습니다.

답변

0

실제로 어떻게하는지 알아 냈습니다.

message.delete(1000); 
다음

마스터 (관리자)에 대한 조치에을의 명령에 내가 가진 :

client.on('message', message => { 
    if ((message.author.id === '200659103318540288') && (message.content === '~m help', '~m', '~mhelp')) { 
    message.delete(1000); 
    message.reply('I have sent you a list of master commands.') 
    message.author.sendMessage("Here is the list of master commands.") 
    console.log('Successfully sent a list of master commands to ' + message.author.id + '.') 
    } 
}); 

//1000 is the timeout in ms. I recommend don't change it unless you know the effects. 
0

당신이 할 수있는 당신은 (메시지를받은 후 즉시) 다른 코드 전에 코드를 실행해야 참조 된 메시지를 삭제하려면 message.delete()을 사용하십시오. 이것을 메시지 오브젝트를 제공하는 메세지 이벤트에 넣으면 메세지를 h 제할 수 있습니다.

, 명령을 (I 메시지 이벤트 및 내 주요 봇 파일에서 별도의 파일 내 모든 명령을, 그래서 이벤트 기능이 다를 수 있습니다) 당신이 모든 것을 하나의 파일에 저장되어있는 경우

module.exports = (client, message, args) => { 
    message.delete(1000); 

    // The rest of my command here 
} 

을 다음과 같이 보일 수 있습니다 :

client.on('message' (message) => { 
    if (message.content == '$help') { 
    message.delete(1000); 

    // The rest of my command here 
    } 
}); 

이 또한 변경되지 않도록 유의 1000 하지 않는 한 당신은 당신이 무엇을하고 있는지 알고있다. 메시지를 삭제하기 전에 기다리는 시간 (밀리 초)입니다. 다시 말하지만, 당신이하는 일을 모두 알지 못하고 무슨 일이 일어날 지 알지 못한다면, 이것을 바꾸지 않는 것이 좋습니다.