您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Tells if someone goes online or offline (if they have this script).
当前为
// ==UserScript== // @name OWoT online and offline // @namespace https://greasyfork.org/scripts/458537-owot-online-and-offline // @version 8 // @description Tells if someone goes online or offline (if they have this script). // @author e_g. // @match https://ourworldoftext.com/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant none // ==/UserScript== let warn = true; let counter = 0; let amityping = false; //Part made by KKosty4ka var chat_upper = document.getElementById("chat_upper"); chat_upper.appendChild(document.createElement("br")); var typing_display = chat_upper.appendChild(document.createElement("span")); //Part made by KKosty4ka menu.addCheckboxOption('Online Offline warning', function(){ warn = true; }, function(){ warn = false; }, true); w.broadcastReceive(true); w.on('cmd', function(e){ if(!e.username || !warn) return; if(e.data.startsWith('online')){ clientChatResponse(e.username + " is online!"); } else if(e.data.startsWith('offline')){ clientChatResponse(e.username + " is now offline."); } else if(e.data.startsWith('back')){ clientChatResponse(e.username + " is back."); } else if(e.data.startsWith('afk')){ clientChatResponse(e.username + " is AFK. (Idle)"); } else if(e.data.startsWith('typing')){ typing_display.innerText = e.username + " is typing..."; } else if(e.data.startsWith('untyping')){ typing_display.innerText = "Currently, no one is typing"; console.log(e.username) }; }); setTimeout(function(){ w.broadcastCommand('online', true); }, 1000); window.addEventListener('beforeunload', function(){ w.broadcastCommand('offline', true) }); window.onblur = function(){w.broadcastCommand('afk', true)}; window.onfocus = function(){w.broadcastCommand('back', true)}; elm.chatbar.oninput = function(){ counter = 0; amityping = !!elm.chatbar.value.length; if(amityping) w.broadcastCommand('typing', true); }; setInterval(function(){ counter += 100; if(counter >= 5000 && amityping){ w.broadcastCommand('untyping', true); amityping = false; }; }, 100);