mentions
This commit is contained in:
		
							parent
							
								
									e3e6fe419c
								
							
						
					
					
						commit
						b988416ae3
					
				
					 2 changed files with 43 additions and 5 deletions
				
			
		
							
								
								
									
										15
									
								
								src/index.js
									
										
									
									
									
								
							
							
						
						
									
										15
									
								
								src/index.js
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -157,6 +157,21 @@ rpc.once("ready", function () {
 | 
			
		|||
rpc.on("error", function () {});
 | 
			
		||||
 | 
			
		||||
client.on("messageCreate", async function (msg) {
 | 
			
		||||
  if (
 | 
			
		||||
    (msg.mentions.find((user) => user.id == client.user.id) ||
 | 
			
		||||
      msg.mentionEveryone) &&
 | 
			
		||||
    msg.channel.id != comcord.state.currentChannel &&
 | 
			
		||||
    msg.channel.type !== Constants.ChannelTypes.DM &&
 | 
			
		||||
    msg.channel.type !== Constants.ChannelTypes.GROUP_DM
 | 
			
		||||
  ) {
 | 
			
		||||
    const data = {ping: true, channel: msg.channel, author: msg.author};
 | 
			
		||||
    if (comcord.state.inPrompt) {
 | 
			
		||||
      comcord.state.messageQueue.push(data);
 | 
			
		||||
    } else {
 | 
			
		||||
      processMessage(data);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (!msg.author) return;
 | 
			
		||||
  if (msg.author.id === client.user.id) return;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@ const chalk = require("chalk");
 | 
			
		|||
 | 
			
		||||
const REGEX_CODEBLOCK = /```(?:([a-z0-9_+\-.]+?)\n)?\n*([^\n][^]*?)\n*```/i;
 | 
			
		||||
const REGEX_CODEBLOCK_GLOBAL =
 | 
			
		||||
  /```(?:([a-z0-9_+\-.]+?)\n)?\n*([^\n][^]*?)\n*```/gi;
 | 
			
		||||
  /```(?:[a-z0-9_+\-.]+?\n)?\n*([^\n][^]*?)\n*```/gi;
 | 
			
		||||
 | 
			
		||||
const REGEX_MENTION = /<@!?(\d+)>/g;
 | 
			
		||||
const REGEX_ROLE_MENTION = /<@&?(\d+)>/g;
 | 
			
		||||
| 
						 | 
				
			
			@ -163,6 +163,7 @@ function formatMessage({
 | 
			
		|||
  stickers,
 | 
			
		||||
  reply,
 | 
			
		||||
  timestamp,
 | 
			
		||||
  mention = false,
 | 
			
		||||
  noColor = false,
 | 
			
		||||
  dump = false,
 | 
			
		||||
  history = false,
 | 
			
		||||
| 
						 | 
				
			
			@ -301,13 +302,17 @@ function formatMessage({
 | 
			
		|||
          )} ${content}`
 | 
			
		||||
        );
 | 
			
		||||
      } else {
 | 
			
		||||
        const nameColor = bot ? chalk.bold.yellow : chalk.bold.cyan;
 | 
			
		||||
        const nameColor = mention
 | 
			
		||||
          ? chalk.bold.red
 | 
			
		||||
          : bot
 | 
			
		||||
          ? chalk.bold.yellow
 | 
			
		||||
          : chalk.bold.cyan;
 | 
			
		||||
 | 
			
		||||
        // TODO: markdown
 | 
			
		||||
        console.log(
 | 
			
		||||
          nameColor(`[${name}]`) +
 | 
			
		||||
            " ".repeat(Math.abs(comcord.state.nameLength - (name.length + 2))) +
 | 
			
		||||
            chalk.reset(" " + content)
 | 
			
		||||
            chalk.reset(" " + content) +
 | 
			
		||||
            (mention ? "\x07" : "")
 | 
			
		||||
        );
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -356,6 +361,14 @@ function processMessage(msg, options = {}) {
 | 
			
		|||
 | 
			
		||||
  if (msg.time) {
 | 
			
		||||
    console.log(msg.content);
 | 
			
		||||
  } else if (msg.ping) {
 | 
			
		||||
    console.log(
 | 
			
		||||
      chalk.bold.red(
 | 
			
		||||
        `**mentioned by ${msg.author?.username ?? "<unknown>"} in #${
 | 
			
		||||
          msg.channel?.name ?? "<unknown>"
 | 
			
		||||
        } in ${msg.channel.guild?.name ?? "<unknown>"}**\x07`
 | 
			
		||||
      )
 | 
			
		||||
    );
 | 
			
		||||
  } else if (msg.content && msg.content.indexOf("\n") > -1) {
 | 
			
		||||
    if (msg.content.match(REGEX_CODEBLOCK)) {
 | 
			
		||||
      formatMessage({
 | 
			
		||||
| 
						 | 
				
			
			@ -364,12 +377,15 @@ function processMessage(msg, options = {}) {
 | 
			
		|||
        bot: msg.author.bot,
 | 
			
		||||
        content: msg.content.replace(
 | 
			
		||||
          REGEX_CODEBLOCK_GLOBAL,
 | 
			
		||||
          (_, lang, content) => content
 | 
			
		||||
          (_, content) => content
 | 
			
		||||
        ),
 | 
			
		||||
        attachments: msg.attachments,
 | 
			
		||||
        stickers: msg.stickerItems,
 | 
			
		||||
        reply: msg.referencedMessage,
 | 
			
		||||
        timestamp: msg.timestamp,
 | 
			
		||||
        mention:
 | 
			
		||||
          msg.mentionsEveryone ||
 | 
			
		||||
          msg.mentions.find((user) => user.id == comcord.client.user.id),
 | 
			
		||||
        dump: true,
 | 
			
		||||
        ...options,
 | 
			
		||||
      });
 | 
			
		||||
| 
						 | 
				
			
			@ -390,6 +406,10 @@ function processMessage(msg, options = {}) {
 | 
			
		|||
          stickers: index == lines.length - 1 ? msg.stickerItems : [],
 | 
			
		||||
          reply: index == 0 ? msg.referencedMessage : null,
 | 
			
		||||
          timestamp: msg.timestamp,
 | 
			
		||||
          mention:
 | 
			
		||||
            index == 0 &&
 | 
			
		||||
            (msg.mentionsEveryone ||
 | 
			
		||||
              msg.mentions.find((user) => user.id == comcord.client.user.id)),
 | 
			
		||||
          ...options,
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -404,6 +424,9 @@ function processMessage(msg, options = {}) {
 | 
			
		|||
      stickers: msg.stickerItems,
 | 
			
		||||
      reply: msg.referencedMessage,
 | 
			
		||||
      timestamp: msg.timestamp,
 | 
			
		||||
      mention:
 | 
			
		||||
        msg.mentionsEveryone ||
 | 
			
		||||
        msg.mentions.find((user) => user.id == comcord.client.user.id),
 | 
			
		||||
      ...options,
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue