evades.io server list fallbacks

allows you to join servers without having to wait for the api to fetch the server list

// ==UserScript==
// @name         evades.io server list fallbacks
// @namespace    https://evades.io/
// @version      1.0.3.1
// @description  allows you to join servers without having to wait for the api to fetch the server list
// @author       sonic.exe
// @include      /http(?:s)?:\/\/(www\.)?(eu\.)?evades\.(io|online)(:\d+)?\//
// @run-at       document-start
// @grant        GM_info
// @license      MIT
// ==/UserScript==
(()=>{new MutationObserver(function(mutations){
        var elem = Array.from(document.querySelectorAll('script')).filter(e=>{return e.src.startsWith(location.href)})[1];
		if(elem){
		var src = elem.src;
    elem.remove()
		elem=document.createElement('script');
		elem.innerHTML=`var akek=new XMLHttpRequest();
		akek.open("GET","${src}",false);
		akek.send();
    var tmp = akek.response;
    tmp=tmp.replace('return this.state.showServerList','var s=this.props;this.state.gameServers??={local:new Array(8).fill(1).map(ts=>([{connected:"--",capacity:100}])),remotes:{"https://eu.evades.io":new Array(8).fill(1).map(ts=>([{connected:"--",capacity:100}]))}};this.state.gameServers.remotes["https://eu.evades.io"]??=new Array(8).fill(1).map(ts=>([{connected:"--",capacity:100}]));window.playServer=function(v){s.play(v.slice(0,2)=="NA"?null:"eu.evades.io", parseInt(v.slice(2))-1, 0)};return this.state.showServerList')
	  var t=document.createElement('script');
    t.type="module";
		t.text=tmp;
    document.body.appendChild(t);`;
		document.body.appendChild(elem);
		this.disconnect();
        }
}).observe(document, {childList: true, subtree: true});
})()