Bot now replies to the author's message instead of sending DMs

This commit is contained in:
Matheus Albino
2024-10-23 17:31:12 -03:00
parent 0eac76b5d1
commit 7af32a69be
4 changed files with 40 additions and 23 deletions

View File

@@ -0,0 +1,32 @@
import { TextChannel, type Message } from "discord.js";
import { underline } from "../utils/message.ts";
export default function attemptReplyAuthorMessage(
authorMessage: Message,
url: string,
originalMessages: Message[],
): void {
if (!(authorMessage.channel instanceof TextChannel)) return;
if (!authorMessage.guild) return;
let replyMessage = `Hey! [${underline("O link que voce mandou")}](<${url}>) ja foi mandado no passado! Voce eh um repostado!`;
for (let index = 0; index < originalMessages.length; index++) {
const msg = originalMessages[index];
if (!msg) return;
const { id, guildId, channelId, author } = msg;
if (!author.globalName) return;
const messageUrl = `https://discord.com/channels/${guildId}/${channelId}/${id}`;
replyMessage += `\n- Mensagem original ${++index} (por ${underline(author.globalName)}): ${messageUrl}`;
}
authorMessage
.reply({
content: replyMessage,
options: { ephemeral: true },
})
.then()
.catch((_) => null);
}

View File

@@ -1,18 +0,0 @@
import { TextChannel, type Message } from "discord.js";
export default function attemptSendAuthorMessage(
authorMessage: Message,
url: string,
): void {
if (!(authorMessage.channel instanceof TextChannel)) return;
if (!authorMessage.guild) return;
authorMessage.author
.send(
`Hey! [__O link que voce mandou__](<${url}>) no canal "_${authorMessage.channel.name}_" do servidor "_${authorMessage.guild.name}_" ja foi mandado no passado!
A mensagem que voce mandou foi apagada para evitar que os chatos comentem "repost".
De nada!`,
)
.then()
.catch((_) => null);
}

View File

@@ -3,7 +3,7 @@ import { clearUrl } from "../utils/url.ts";
import { transformMessageArrayInMap } from "../utils/message.ts";
import updateMessagesArray from "./updateMessagesArray.ts";
import attemptSendAuthorMessage from "./attemptSendUserMessage.ts";
import attemptReplyAuthorMessage from "./attemptReplyAuthorMessage.ts";
export default function handleMessageReposts(
messagesArray: Message[],
@@ -15,14 +15,13 @@ export default function handleMessageReposts(
if (!newMessageClearedUrl) return messagesArray;
const urlMessagesMatchArray = urlMessagesMap.get(newMessageClearedUrl);
const originalMessages = urlMessagesMap.get(newMessageClearedUrl);
if (!urlMessagesMatchArray) {
if (!originalMessages) {
return updateMessagesArray(messagesArray, newMessage);
}
newMessage.delete();
attemptSendAuthorMessage(newMessage, newMessageClearedUrl);
attemptReplyAuthorMessage(newMessage, newMessageClearedUrl, originalMessages);
return messagesArray;
}

View File

@@ -23,3 +23,7 @@ export function transformMessageArrayInMap(
return urlMessagesMap;
}
export function underline(message: string): string {
return `__${message}__`;
}