/**
 * Monitor are functions that are designed to watch incoming messages. These can range from
 * checking a message for specific words, or logging all mentions to a channel.
 * @module Monitor
 * @example <caption> They will always follow this structure. </caption>
 * exports.run = (client, msg) => { // code here };
 * exports.conf = {};
 */

/**
 * The part of the monitor that will run on the message.
 * @param {KomadaClient}  client The Komada Client
 * @param {Message}  msg A Message object obtained from discord.js
 * @example <caption> This will create a monitor that logs every message that mentions the bot. </caption>
 * exports.run = (client, msg, cmd) => {
 *   if (msg.mentions.users.has(client.user.id)) console.log(`Message ${msg.id} contained the bots mention: ${msg.cleanContent}`);
 * }
 */
exports.run = (client, msg) => {}; // eslint-disable-line


/**
 * An Object containing configuration values that will configure a monitor.
 * @typedef {Object} Conf
 * @property {Boolean} enabled Whether or not this monitor should be enabled for use.
 * @property {Boolean} ignoreBots Whether or not this monitor should ignore other bots.
 * @property {Boolean} ignoreSelf Whether or not this monitor should ignore messages from the ClientUser.
 */


/**
 * An object that configures the monitor.
 * @type {Conf}
 * @example
 * exports.conf = {
   enabled: true,
   ignoreBots: true,
   ignoreSelf: true
 };
 */
exports.conf = {};