2017-03-10 119 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)的时间。同样,建议你不要改变它,除非你们都知道你在做什么,并且知道会发生什么。