newiteractions

custom word for iteractions on lolz.live

// ==UserScript==
// @name         newiteractions
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  custom word for iteractions on lolz.live
// @author       k3kzia
// @license      MIT
// @match        *://lolz.live/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=lolz.live
// @grant        GM_registerMenuCommand
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_xmlhttpRequest
// @connect      githubraw.com
// @connect      githubusercontent.com
// ==/UserScript==

(function () {
    'use strict';

    const defaultColors = {
        color1: '#ff0000',
        color2: '#00ff00',
        color3: '#0000ff',
        color4: '#ffff00'
    };

    function showColorPickers() {
        const colorPickerDiv = document.createElement('div');
        colorPickerDiv.style.position = 'fixed';
        colorPickerDiv.style.top = '50%';
        colorPickerDiv.style.left = '50%';
        colorPickerDiv.style.transform = 'translate(-50%, -50%)';
        colorPickerDiv.style.background = 'gray';
        colorPickerDiv.style.border = '1px solid black';
        colorPickerDiv.style.padding = '20px';
        colorPickerDiv.style.zIndex = '9999';

        const inputs = {};
        Object.keys(defaultColors).forEach((key, index) => {
            const colorLabel = document.createElement('label');
            colorLabel.textContent = `Color ${index + 1}: `;
            colorLabel.style.display = 'block';
            colorLabel.style.marginBottom = '5px';

            const colorInput = document.createElement('input');
            colorInput.type = 'color';
            colorInput.value = GM_getValue(key, defaultColors[key]);
            colorInput.style.marginRight = '10px';

            inputs[key] = colorInput;

            colorPickerDiv.appendChild(colorLabel);
            colorPickerDiv.appendChild(colorInput);
        });

        const saveButton = document.createElement('button');
        saveButton.textContent = 'Save';
        saveButton.style.display = 'block';
        saveButton.style.marginTop = '20px';
        saveButton.onclick = () => {
            Object.keys(inputs).forEach(key => {
                GM_setValue(key, inputs[key].value);
            });
            alert('Colors saved!');
            document.body.removeChild(colorPickerDiv);
        };

        colorPickerDiv.appendChild(saveButton);
        document.body.appendChild(colorPickerDiv);
    }

    function collectWords() {
        const presetWords = ['k3kzia'];
        const presetString = presetWords.join(', ');

        let userInput = prompt("Please enter a list of words, separated by commas:", presetString);

        if (userInput) {
            const wordList = userInput.split(',').map(word => word.trim());
            GM_setValue('CUSTOM_WORD_LIST', wordList);
            alert('Word list saved!');
        } else {
            GM_setValue('CUSTOM_WORD_LIST', presetWords);
            alert('Using preset word list!');
        }
    }

    GM_registerMenuCommand('Set Colors', showColorPickers);
    GM_registerMenuCommand('Enter Word List', collectWords);

    const storedColors = {};
    Object.keys(defaultColors).forEach(key => {
        storedColors[key] = GM_getValue(key, defaultColors[key]);
    });

    let customWordList = GM_getValue('CUSTOM_WORD_LIST', null);

    if (!customWordList) {
        customWordList = ['k3kzia'];
        GM_setValue('CUSTOM_WORD_LIST', customWordList);
        alert('No word list found. Using preset word list.');
    }

    console.log('Current colors:', storedColors);
    console.log('Custom word list:', customWordList);

    const githubScriptUrl = "https://raw.githubusercontent.com/quickyyy/lolzmamonti/refs/heads/main/iteractions_test.js";

    GM_xmlhttpRequest({
        method: "GET",
        url: githubScriptUrl,
        onload: function (response) {
            if (response.status === 200) {
                console.log("Загрузил гитхаб скрипт.");
                const scriptContent = response.responseText
                    .replace(/{{CUSTOM_COLOR_1}}/g, storedColors.color1)
                    .replace(/{{CUSTOM_COLOR_2}}/g, storedColors.color2)
                    .replace(/{{CUSTOM_COLOR_3}}/g, storedColors.color3)
                    .replace(/{{CUSTOM_COLOR_4}}/g, storedColors.color4)
                    .replace(/{{CUSTOM_WORD_LIST}}/g, JSON.stringify(customWordList));

                console.log("Полученный скрипт:", scriptContent);

                eval(scriptContent);
            } else {
                console.error("Ошибка загрузки скрипта с гитхаба. Статус:", response.status);
            }
        },
        onerror: function () {
            console.error("Ошибка загрузки скрипта с гитхаба.");
        },
    });
})();