Swordz.io Clean Up + AI Spam Bot + Toggle UI

Hides junk in the homescreen, other boxes on the top left, the coins display, adds an AI Spam Bot, and provides a toggle UI at the bottom left

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Swordz.io Clean Up + AI Spam Bot + Toggle UI
// @namespace    intuxs
// @version      1.3
// @description  Hides junk in the homescreen, other boxes on the top left, the coins display, adds an AI Spam Bot, and provides a toggle UI at the bottom left
// @author       intuxs
// @match        *.swordz.io
// @grant        none
// ==/UserScript==
// ==========================================
// Ad and UI Cleanup Functionality
// ==========================================

var hideBoxesEnabled = false; // Toggle hide boxes on/off
var showPauseEnabled = false; // Toggle show pause on/off
var showCoinsEnabled = false; // Toggle show coins on/off

// Store original styles for elements
const originalStyles = new Map();

// Function to hide ads
function hideAds() {
    if (!hideBoxesEnabled) return; // Only hide ads if hideBoxesEnabled is true
    const ads = document.querySelectorAll('div[style*="background-color"], iframe, img[src*="ads"]');
    ads.forEach(ad => {
        if (ad.offsetWidth > 0 && ad.offsetHeight > 0 && !ad.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(ad, { display: ad.style.display, visibility: ad.style.visibility });
            ad.style.display = 'none';
            console.log('Ad hidden:', ad);
        }
    });
}

// Function to hide the logo
function hideLogo() {
    if (!hideBoxesEnabled) return; // Only hide logo if hideBoxesEnabled is true

    const logo = document.querySelector('img[src="https://playem.io/cache/swordzio/client/img/logo.png"]');
    if (logo && !logo.classList.contains('custom-ui')) { // Skip custom UI elements
        originalStyles.set(logo, { display: logo.style.display, visibility: logo.style.visibility });
        logo.style.display = 'none';
        console.log('Logo hidden:', logo);
    }
}

// Function to hide specific elements on the top left
function hideTopLeftElements() {
    if (!hideBoxesEnabled) return; // Only hide elements if hideBoxesEnabled is true
    const elementsToHide = [
        { id: 'buttonFullscreenImage', type: 'img' },
        { id: 'buttonFullscreen', type: 'div' },
        { id: 'buttonMusicImage', type: 'img' },
        { id: 'buttonMusic', type: 'div' },
        { id: 'buttonPauseImage', type: 'img' },
        { id: 'buttonPause', type: 'div' },
        { id: 'buttonSoundImage', type: 'img' },
        { id: 'buttonSound', type: 'div' }
    ];

    elementsToHide.forEach(element => {
        const el = document.getElementById(element.id);
        if (el && !el.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(el, { display: el.style.display, visibility: el.style.visibility });
            el.style.visibility = 'hidden';
        }
    });
}

// Function to hide the coins display
function hideCoinsDisplay() {
    if (!hideBoxesEnabled) return; // Only hide coins if hideBoxesEnabled is true
    const coinsText = document.getElementById('coinsText');
    if (coinsText && !coinsText.classList.contains('custom-ui')) { // Skip custom UI elements
        originalStyles.set(coinsText, { display: coinsText.style.display, visibility: coinsText.style.visibility });
        coinsText.style.visibility = 'hidden';
    }

    const coinsIcon = document.querySelector('img[src*="coins.png"]');
    if (coinsIcon && !coinsIcon.classList.contains('custom-ui')) { // Skip custom UI elements
        originalStyles.set(coinsIcon, { display: coinsIcon.style.display, visibility: coinsIcon.style.visibility });
        coinsIcon.style.visibility = 'hidden';
    }
}

// Function to hide the YouTube wrapper and big box on the bottom right
function hideYouTubeWrapperAndBigBox() {
    if (!hideBoxesEnabled) return; // Only hide if hideBoxesEnabled is true

    // Hide YouTube wrapper
    const youtubeWrapper = document.querySelector('.youtube-wrapper'); // Adjust selector if needed
    if (youtubeWrapper && !youtubeWrapper.classList.contains('custom-ui')) { // Skip custom UI elements
        originalStyles.set(youtubeWrapper, { display: youtubeWrapper.style.display, visibility: youtubeWrapper.style.visibility });
        youtubeWrapper.style.visibility = 'hidden';
    }

    // Hide big box on the bottom right
    const bigBox = document.querySelector('.big-box'); // Adjust selector if needed
    if (bigBox && !bigBox.classList.contains('custom-ui')) { // Skip custom UI elements
        originalStyles.set(bigBox, { display: bigBox.style.display, visibility: bigBox.style.visibility });
        bigBox.style.visibility = 'hidden';
    }
}

// Function to show hidden elements
function showHiddenElements() {
    // Restore original styles for all elements except the UI we created
    originalStyles.forEach((styles, element) => {
        if (element && !element.classList.contains('custom-ui')) { // Skip custom UI elements
            element.style.display = styles.display;
            element.style.visibility = styles.visibility;
        }
    });

    // Clear the original styles map
    originalStyles.clear();
}

// Function to toggle pause button visibility
function togglePauseButton() {
    const buttonPause = document.getElementById('buttonPause');
    const buttonPauseImage = document.getElementById('buttonPauseImage');

    if (buttonPause && buttonPauseImage) {
        if (showPauseEnabled) {
            buttonPause.style.visibility = 'visible';
            buttonPauseImage.style.visibility = 'visible';
        } else {
            buttonPause.style.visibility = 'hidden';
            buttonPauseImage.style.visibility = 'hidden';
        }
    }
}

// Function to toggle coins visibility
function toggleCoinsDisplay() {
    const coinsText = document.getElementById('coinsText');
    const coinsIcon = document.querySelector('img[src*="coins.png"]');

    if (coinsText && coinsIcon) {
        if (showCoinsEnabled) {
            coinsText.style.visibility = 'visible';
            coinsIcon.style.visibility = 'visible';
        } else {
            coinsText.style.visibility = 'hidden';
            coinsIcon.style.visibility = 'hidden';
        }
    }
}

// ==========================================
// AI Spam Bot Functionality
// ==========================================

var spam = false; // Toggle spam on/off
var spamMessage = "Subscribe to richupi YT!"; // Default spam message

// Function to send spam messages
function spamChat() {
    if (spam) {
        const message = input.value.trim() !== '' ? input.value : spamMessage;
        console.log('Sending message:', message);

        try {
            socket.emit('keyPressX', {
                inputId: 'chatMessage',
                state: message
            });
            console.log('Message sent successfully!');
        } catch (error) {
            console.error('Error sending message:', error);
        }
    }
}

// ==========================================
// Toggle UI Functionality
// ==========================================

// Create a UI container at the bottom left
const uiContainer = document.createElement('div');
uiContainer.style.position = 'fixed';
uiContainer.style.bottom = '10px';
uiContainer.style.left = '10px';
uiContainer.style.zIndex = '9999';
uiContainer.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
uiContainer.style.padding = '10px';
uiContainer.style.borderRadius = '10px';
uiContainer.style.color = '#fff';
uiContainer.style.fontFamily = 'Montserrat, Arial, sans-serif';
uiContainer.style.transition = 'transform 0.3s ease';
uiContainer.classList.add('custom-ui'); // Add a class to identify our custom UI
document.body.appendChild(uiContainer);

// Create an arrow button to hide/show the UI
const arrowButton = document.createElement('div');
arrowButton.textContent = '◄'; // Arrow pointing left
arrowButton.style.position = 'fixed';
arrowButton.style.bottom = '20px';
arrowButton.style.left = '10px';
arrowButton.style.zIndex = '10000';
arrowButton.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
arrowButton.style.color = 'lightblue'; // Changed from white to light blue
arrowButton.style.padding = '10px';
arrowButton.style.borderRadius = '50%';
arrowButton.style.cursor = 'pointer';
arrowButton.style.userSelect = 'none';
arrowButton.style.transition = 'transform 0.3s ease';
arrowButton.classList.add('custom-ui'); // Add a class to identify our custom UI
document.body.appendChild(arrowButton);

// Toggle UI visibility
let uiVisible = true;
arrowButton.addEventListener('click', () => {
    uiVisible = !uiVisible;
    if (uiVisible) {
        uiContainer.style.transform = 'translateX(0)';
        arrowButton.style.transform = 'rotate(0deg)';
        arrowButton.textContent = '◄'; // Arrow pointing left
    } else {
        uiContainer.style.transform = 'translateX(-110%)';
        arrowButton.style.transform = 'rotate(180deg)';
        arrowButton.textContent = '►'; // Arrow pointing right
    }
});

// Spam Bot Toggle
const spamBotLabel = document.createElement('div');
spamBotLabel.textContent = 'Spam Bot [1]';
spamBotLabel.style.color = '#ffa500'; // Orange when off
spamBotLabel.style.fontSize = '14px';
spamBotLabel.style.fontWeight = 'bold';
spamBotLabel.style.marginBottom = '10px';
spamBotLabel.style.cursor = 'pointer';
uiContainer.appendChild(spamBotLabel);

// Hide Boxes Toggle
const hideBoxesLabel = document.createElement('div');
hideBoxesLabel.textContent = 'Hide Boxes [2]';
hideBoxesLabel.style.color = '#ffa500'; // Orange when off
hideBoxesLabel.style.fontSize = '14px';
hideBoxesLabel.style.fontWeight = 'bold';
hideBoxesLabel.style.marginBottom = '10px';
hideBoxesLabel.style.cursor = 'pointer';
uiContainer.appendChild(hideBoxesLabel);

// Show Pause Toggle
const showPauseLabel = document.createElement('div');
showPauseLabel.textContent = 'Show Pause [3]';
showPauseLabel.style.color = '#ffa500'; // Orange when off
showPauseLabel.style.fontSize = '14px';
showPauseLabel.style.fontWeight = 'bold';
showPauseLabel.style.marginBottom = '10px';
showPauseLabel.style.cursor = 'pointer';
uiContainer.appendChild(showPauseLabel);

// Show Coins Toggle
const showCoinsLabel = document.createElement('div');
showCoinsLabel.textContent = 'Show Coins [4]';
showCoinsLabel.style.color = '#ffa500'; // Orange when off
showCoinsLabel.style.fontSize = '14px';
showCoinsLabel.style.fontWeight = 'bold';
showCoinsLabel.style.marginBottom = '10px';
showCoinsLabel.style.cursor = 'pointer';
uiContainer.appendChild(showCoinsLabel);

// Input for custom spam message
const input = document.createElement('input');
input.style.width = '100%';
input.style.marginTop = '10px';
input.style.height = '25px';
input.style.borderRadius = '5px';
input.style.backgroundColor = '#222';
input.style.color = '#fff';
input.style.border = '1px solid #555';
input.style.padding = '5px';
input.placeholder = 'Enter spam message';
uiContainer.appendChild(input);

// Toggle Spam Bot with '1' key
document.addEventListener('keydown', function (e) {
    if (e.key === '1') { // '1' key to toggle spam bot
        spam = !spam;
        spamBotLabel.textContent = `Spam Bot [1] ${spam ? 'ON' : 'OFF'}`;
        spamBotLabel.style.color = spam ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
        console.log(`Spam Bot ${spam ? 'enabled' : 'disabled'}`);
    }
});

// Toggle Hide Boxes with '2' key
document.addEventListener('keydown', function (e) {
    if (e.key === '2') { // '2' key to toggle hide boxes
        hideBoxesEnabled = !hideBoxesEnabled;
        hideBoxesLabel.textContent = `Hide Boxes [2] ${hideBoxesEnabled ? 'ON' : 'OFF'}`;
        hideBoxesLabel.style.color = hideBoxesEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
        console.log(`Hide Boxes ${hideBoxesEnabled ? 'enabled' : 'disabled'}`);

        if (hideBoxesEnabled) {
            hideAds();
            hideLogo(); // Call the new function
            hideTopLeftElements();
            hideCoinsDisplay();
            hideYouTubeWrapperAndBigBox();
        } else {
            showHiddenElements();
        }
    }
});

// Toggle Show Pause with '3' key
document.addEventListener('keydown', function (e) {
    if (e.key === '3') { // '3' key to toggle show pause
        showPauseEnabled = !showPauseEnabled;
        showPauseLabel.textContent = `Show Pause [3] ${showPauseEnabled ? 'ON' : 'OFF'}`;
        showPauseLabel.style.color = showPauseEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
        console.log(`Show Pause ${showPauseEnabled ? 'enabled' : 'disabled'}`);
        togglePauseButton();
    }
});

// Toggle Show Coins with '4' key
document.addEventListener('keydown', function (e) {
    if (e.key === '4') { // '4' key to toggle show coins
        showCoinsEnabled = !showCoinsEnabled;
        showCoinsLabel.textContent = `Show Coins [4] ${showCoinsEnabled ? 'ON' : 'OFF'}`;
        showCoinsLabel.style.color = showCoinsEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
        console.log(`Show Coins ${showCoinsEnabled ? 'enabled' : 'disabled'}`);
        toggleCoinsDisplay();
    }
});

// Continuously send spam messages
setInterval(spamChat, 1000);