// ==UserScript== // @name Auto Click Chatbox // @namespace https://greasyfork.org/en/users/1200587-trilla-g // @match *://*.kick.com/* // @grant none // @version 1.37 // @license MIT // @author Trilla_G // @description This script automatically clicks the "Chat" button and "Message Input" on the sidebar, on kick.com. It pauses for 10 seconds after any mouse click. // @downloadURL none // ==/UserScript== (function() { 'use strict'; let clickingEnabled = true; // Variable to control automatic clicking function isLive() { let liveDisplay = document.querySelector(".vjs-live-control"); return liveDisplay && !liveDisplay.classList.contains('vjs-hidden'); } function clickChatAndMessageInput() { if (!clickingEnabled) { return; } let chatButton = document.querySelector('#chat-button'); let messageInputButton = document.querySelector('#message-input'); if (isLive()) { if (messageInputButton) { messageInputButton.click(); } } else { if (chatButton) { chatButton.click(); } if (messageInputButton) { messageInputButton.click(); } } } // Function to handle mouse clicks function handleMouseClick() { // Disable automatic clicking clickingEnabled = false; // Pause the script for 10 seconds setTimeout(() => { // Re-enable automatic clicking clickingEnabled = true; // Restart the script clickChatAndMessageInput(); }, 10000); } // Function to handle hashchange events function handleHashChange() { // Re-trigger clicking "Message Input" instantly clickChatAndMessageInput(); } // Create a MutationObserver to retrigger on hashchange const observer = new MutationObserver(() => { console.log('Hashchange event detected. Retriggering script.'); handleHashChange(); }); // Configure and start observing changes to the URL hash const config = { childList: true, subtree: true }; observer.observe(document.body, config); // Initial click and observe hashchange setTimeout(() => { clickChatAndMessageInput(); }, 1000); // Add event listener for mouse clicks document.body.addEventListener('mousedown', handleMouseClick); })();