Bot now replies to the author's message instead of sending DMs
This commit is contained in:
32
src/functions/attemptReplyAuthorMessage.ts
Normal file
32
src/functions/attemptReplyAuthorMessage.ts
Normal 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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -23,3 +23,7 @@ export function transformMessageArrayInMap(
|
||||
|
||||
return urlMessagesMap;
|
||||
}
|
||||
|
||||
export function underline(message: string): string {
|
||||
return `__${message}__`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user