aboutsummaryrefslogtreecommitdiff
path: root/webAO/packets/handlers/handleCT.ts
blob: 84329d380e16eaa77c45751b77f65664776ca61e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import queryParser from '../../utils/queryParser'
import { prepChat } from '../../encoding'
const { mode } = queryParser();

/**
   * Handles an out-of-character chat message.
   * @param {Array} args packet arguments
   */
export const handleCT = (args: string[]) => {
    if (mode !== "replay") {
        const oocLog = document.getElementById("client_ooclog")!;
        const username = prepChat(args[1]);
        let message = addLinks(prepChat(args[2]));
        // Replace newlines with br
        message = message.replace(/\n/g, "<br>");

        oocLog.innerHTML += `${username}: ${message}<br>`;
        if (oocLog.scrollTop > oocLog.scrollHeight - 600) {
            oocLog.scrollTop = oocLog.scrollHeight;
        }
    }
}

// If the incoming message contains a link, add a href hyperlink to it
function addLinks(message: string) {
    const urlRegex = /(https?:\/\/[^\s]+)/g;
    return message.replace(urlRegex, (url) => `<a href="${url}" target="_blank">${url}</a>`);
}