您需要先安装一个扩展,例如 篡改猴、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 9
- // @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;
- let people = [];
- //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"));
- typing_display.style.display = "flex";
- typing_display.style.justifyContent = "center";
- typing_display.style.alignItems = "center";
- //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')){
- if(people.indexOf(e.username) == -1) people.push(e.username);
- typing_display.innerText = people.join(" and ") + " " + (people.length > 1 ? "are" : "is") + " typing...";
- }
- else if(e.data.startsWith('untyping')){
- people = people.filter((x, i)=>i != people.indexOf(e.username))
- typing_display.innerText = people.length ? people.join(" and ") + " " + (people.length > 1 ? "are" : "is") + " typing..." : "Currently, no one is typing";
- };
- });
- 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(e){
- counter = 0;
- amityping = !!elm.chatbar.value.length;
- if(amityping) w.broadcastCommand('typing', true)
- else w.broadcastCommand('untyping', true);
- };
- setInterval(function(){
- counter += 100;
- if((counter >= 5000 && amityping) || !elm.chatbar.value.length){
- w.broadcastCommand('untyping', true);
- amityping = false;
- };
- }, 100);