diff --git a/.config.yaml.kate-swp b/.config.yaml.kate-swp deleted file mode 100644 index 32aede4..0000000 Binary files a/.config.yaml.kate-swp and /dev/null differ diff --git a/README.md b/README.md index 05bf85e..cb7c53a 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,6 @@ node bot.js - For secure IRC connections, ensure `tls: true` and correct port # Warning: -I would not reccomend using this in a active room since that might get the bot/userbot rate limited which is not good ! +I would not reccomend using this in a active room since that might get the bot/userbot rate limited on Discord OR IRC which is not good ! Also Using Userbots is against Discord's Terms of Service so your account/bot might get deactived. This has not happen yet but it is still possible. diff --git a/bot.js b/bot.js index eba33ca..a4e2b7d 100644 --- a/bot.js +++ b/bot.js @@ -59,32 +59,33 @@ function createIRCClient(bridge) { }); client.on("connecting", () => - logDebug(`🔌 Connecting to ${ircConfig.server}:${ircConfig.port} ...`) + logDebug(`Connecting to ${ircConfig.server}:${ircConfig.port} ...`) ); client.on("connected", () => - logDebug(`✅ TCP connection established to ${ircConfig.server}`) + logDebug(`TCP connection established to ${ircConfig.server}`) ); client.on("registered", () => { console.log( `Connected to IRC ${ircConfig.server} as ${ircConfig.nick}, joining ${ircConfig.channel}` ); client.join(ircConfig.channel, () => - logDebug(`➡️ Sent JOIN for ${ircConfig.channel}`) + logDebug(`Sent JOIN for ${ircConfig.channel}`) ); }); client.on("join", (event) => - logDebug(`🎉 Joined ${event.channel} as ${event.nick}`) + logDebug(`Joined ${event.channel} as ${event.nick}`) ); client.on("error", (event) => console.error(`IRC error on ${ircConfig.server}:`, event) ); client.on("socket close", () => - logDebug(`❌ Socket closed for ${ircConfig.server}`) + logDebug(`Socket closed for ${ircConfig.server}`) ); client.on("socket error", (err) => - console.error(`⚠️ Socket error on ${ircConfig.server}:`, err) + console.error(`Socket error on ${ircConfig.server}:`, err) ); + client.on("message", (event) => { if (event.nick === ircConfig.nick) return; // Skip self const ircMessage = `<${event.nick}> ${event.message}`; @@ -95,7 +96,9 @@ function createIRCClient(bridge) { client.on("relaymsg", (event) => { const discordChannel = discordClient.channels.cache.get(discordChannelId); if (discordChannel) - discordChannel.send(`[relay ${event.nick}] ${event.message}`).catch(console.error); + discordChannel + .send(`[relay ${event.nick}] ${event.message}`) + .catch(console.error); }); if (DEBUG) { @@ -135,28 +138,25 @@ discordClient.on("messageCreate", async (message) => { } } - // Handle quoted replies + // Handle quoted replies (text only) in one line let quote = ""; if (message.reference && message.reference.messageId) { try { const referencedMessage = await message.channel.messages.fetch( message.reference.messageId ); - if (referencedMessage) { - const refMember = - referencedMessage.guild && - (await referencedMessage.guild.members.fetch( - referencedMessage.author.id - ).catch(() => null)); - const refAuthor = refMember - ? refMember.displayName - : referencedMessage.author.username; - const refContent = referencedMessage.content || "[Embed/Attachment]"; - const quotedLines = refContent - .split("\n") - .map((line) => `> ${line}`) - .join("\n"); - quote = `> ${refAuthor} said:\n${quotedLines}\n`; + + if (referencedMessage.content) { + let refAuthor = referencedMessage.author.username; + if (referencedMessage.guild) { + const member = await referencedMessage.guild.members + .fetch(referencedMessage.author.id) + .catch(() => null); + if (member) refAuthor = member.displayName; + } + + const originalText = referencedMessage.content.replace(/\n/g, " "); + quote = `<${refAuthor}> said: ${originalText} | `; } } catch (err) { logDebug("Failed to fetch referenced message:", err); @@ -166,7 +166,7 @@ discordClient.on("messageCreate", async (message) => { // Build message text let discordMessage = `${quote}<${nickname}> ${message.content}`; - // Append attachment URLs (images/files) + // Append attachment URLs if (message.attachments.size > 0) { const urls = message.attachments.map((att) => att.url).join(" "); discordMessage += ` [Attachments: ${urls}]`;