mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-09 16:13:31 +01:00
56 lines
1.9 KiB
JavaScript
56 lines
1.9 KiB
JavaScript
/*
|
|
* A bot that shows how to access and search the logs of a specific channel.
|
|
* Specifically, it returns the last message from a given user in the last
|
|
* 100 messages.
|
|
*/
|
|
|
|
var Discord = require( "../" );
|
|
var myBot = new Discord.Client();
|
|
|
|
myBot.login( "hello@example.com", "password1" );
|
|
|
|
// The "ready" event is triggered after the bot successfully connected to
|
|
// Discord and is ready to send messages.
|
|
myBot.on( "ready", function() {
|
|
console.log( "Bot connected successfully." );
|
|
} );
|
|
|
|
myBot.on( "message", function( message ) {
|
|
// React to all messages starting with "$query".
|
|
if ( message.content.split(" ")[0] === "$query") {
|
|
// Obtain the channel for which logs should be accessed.
|
|
var channel = message.channel;
|
|
|
|
// Find all the arguments to the command.
|
|
var arguments = message.content.split( " " );
|
|
|
|
// Get the arguments, as they contains the username
|
|
// to be queried for.
|
|
var username = arguments.slice( 1 ).join( " " );
|
|
|
|
// Exit the event handler unless the user exists.
|
|
if ( !username ) {
|
|
myBot.sendMessage( channel, "That user doesn't exist!" );
|
|
return;
|
|
}
|
|
|
|
// The getChannelLogs() function takes the channel that should be accessed,
|
|
// the amount of messages to query and a callback as its arguments.
|
|
myBot.getChannelLogs( channel, 1000, function( messageList ) {
|
|
// filter() takes three arguments, the key to be filtered for (in this
|
|
// case the username, so "username"), the value to look for, and whether
|
|
// only the first finding should be returned (true) or a list of all
|
|
// findings (false).
|
|
var message = messageList.deepFilter( ["author", "username"], username, true );
|
|
|
|
// Only continue if the message has been found
|
|
if ( message ) {
|
|
myBot.sendMessage( channel, "The last message from user " + username + " is:\n_" + message.content + "_" );
|
|
} else {
|
|
myBot.sendMessage( channel, "That user has not sent a message for the last 1,000 messages!" );
|
|
}
|
|
} );
|
|
}
|
|
|
|
} );
|