2017-03-10 118 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' 
}; 

我在不和諧聊天發送「平安!」,我想這個「平!」遭到刪除,然後機器人回答「pong!」,我不能讓它刪除命令。

回答

0

我真的想出瞭如何做到這一點。你只需要運行(收到消息後立即)之前的任何其他代碼的代碼:您可以

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(1000); 

這是它在行動上的主(管理)命令我有使用message.delete()刪除引用的消息。如果你把它放在消息事件中,它提供了一個消息對象,你可以刪除消息。

(我有消息事件和我從我的主機器人的文件不同的文件中的所有命令,讓您的活動功能可能會有所不同)

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除非你知道自己在做什麼。這是在它將刪除該消息之前等待(ms)的時間。同樣,建議你不要改變它,除非你們都知道你在做什麼,並且知道會發生什麼。