Greasy Fork is available in English.
To turn it on, press F2. When the chat is open, it will work by itself. Use the HTTPS protocol of the page. You can use 2 languages [ru, en] to switch, press F8.
// ==UserScript==// @name Voice input for chat// @namespace -// @version 0.1// @description To turn it on, press F2. When the chat is open, it will work by itself. Use the HTTPS protocol of the page. You can use 2 languages [ru, en] to switch, press F8.// @author Nudo#9482// @match *://sploop.io/*// @icon https://www.google.com/s2/favicons?sz=64&domain=sploop.io// @run-at document-end// @grant none// ==/UserScript==(function() {const Chat = document.getElementById("chat")const Keys = {}const Recognizer = new window.webkitSpeechRecognition()Chat.wrapper = document.getElementById("chat-wrapper")Chat.voiceActive = falseChat.voiceLang = "en-En"Chat._voiceLangs = ["en-En", "ru-Ru"]Chat.counter = 0Chat.getNextLang = function() {const length = Chat._voiceLangs.length - 1this.counter += 1if (this.counter > length) {this.counter = 0}return this.counter}Recognizer.active = falseRecognizer.setup = function() {this.interimR###lts = truethis.reset = function() {this.stop()setTimeout(() => {this.start()}, 750)}this.launch = function() {this.lang = Chat.voiceLangthis.active = !this.activethis.start()}this.onr###lt = function() {try {if (!this.active) {return void 0}const r###lt = event.r###lts[event.r###ltIndex]const words = r###lt[0].transcriptif (words.length) {Chat.value = wordsChat.focus()}} catch {this.disable()}}this.disable = function() {if (this.active) {this.active = !Recognizer.activethis.stop()}}this.onend = function() {if (this.active) {this.reset()}}}window.addEventListener("load", () => {Recognizer.setup()})setInterval(() => {try {if (Chat.wrapper.style.display === "block") {if (Chat.voiceActive) {if (!Recognizer.active) {Recognizer.launch()}} else {Recognizer.disable()}} else {Recognizer.disable()}} catch {Recognizer.disable()}}, 100)function onKeyDown(event) {if (event.code === "F2") {Chat.voiceActive = !Chat.voiceActive}if (event.code === "F8") {Chat.voiceLang = Chat._voiceLangs[Chat.getNextLang()]document.title = `Voice language: ${Chat.voiceLang}`setTimeout(() => {document.title = "Sploop.io - Fast paced combat game"}, 2000)}}document.addEventListener("keydown", onKeyDown)})()