// ==UserScript== // @name Xero-Bots | .io Bots 2022 // @namespace https://discord.com/invite/bAstbAfem9 // @version 30.0.2 // @description The best bots for popular agar.io clone games. // @author Tatsuya & Enes // @match *.oceanar.io/* // @match *.aquar.io/* // @match *.agar.live/* // @run-at document-start // @icon https://www.google.com/s2/favicons?sz=64&domain=cellcraft.io // @grant none // @downloadURL none // ==/UserScript== function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); if (String.prototype.replace) { String.prototype.replace = new Proxy(String.prototype.replace, { apply(a, b, c) { if (c[0].toString().match('xero') || c[0].toString().match('XERO')) { c[1] = c[0]; } return Reflect.apply(...arguments) } }) } var _00601 = new (function () { function _00401() { _classCallCheck(this, _00401); } _createClass(_00401, [{ key: '_00801', value: function _00801() { this._00201 = []; this._00202 = this._00802; this._00203 = ''; this._00204 = { 'x': 0, 'y': 0 }; this._00205 = null; this._00206 = false; this._00207 = _00602._00810(); this._00804(); } }, { key: '_00802', get: function _00802() { let _00300 = /(\w+)\:\/\/(\w+.\w+)/gi.exec(window.location.origin)[2]; if (_00300 == "agma.io" || _00300 == "cellcraft.io" || _00300 == "oceanar.io" || _00300 == "aquar.io" || _00300 == 'agar.live') { return 50; } else { return 15; } } }, { key: '_00803', get: function _00803() { return this._00201.filter(b => b._00218 && b._00218.readyState === WebSocket.OPEN).length; } }, { key: '_00804', value: function _00804() { for (let _00301 = 0; _00301 < this._00202; _00301++) { this._00201.push(new _00603()) }; this._00805(); } }, { key: '_00805', value: function _00805() { this._00302 = setInterval(() => { _00602._00816(this._00803, this._00202) }, 1000) } }, { key: '_00806', value: function _00806() { this._00201.forEach((bot) => { bot._00828() }) } }, { key: '_00807', value: function _00807() { this._00201.forEach((bot) => { bot._00829() }) } }, { key: '_00808', value: function _00808() { if (this._00206 || !this._00203) return; if (this._00203 == undefined) return; this._00201.forEach((bot) => { bot._00818(this._00203) }); this._00206 = true } }, { key: '_00809', value: function _00809() { if (!this._00206) return; this._00201.forEach((bot) => { bot._00819() }); this._00206 = false } }]); return _00401; }())(); var _00602 = new (function () { function _00402() { _classCallCheck(this, _00402); } _createClass(_00402, [{ key: '_00810', value: function _00810(start, stop, split, eject) { this._00208 = { 'startButton': 'startB', 'stopButton': 'stopB', 'botCount': 'casteramount', 'DiscordURL': 'title' }; this._00209 = false; this._00811(); this._00814(); } }, { key: '_00811', value: async function _00811() { this._00214 = await this._00812(); if (!this._00214) { return alert('Failed to load bot GUI. If this keeps happening, contact a developer.'); } this._00813(this._00214); } }, { key: '_00812', value: async function _00812() { const _00303 = await fetch('https://uttermost-inky-aardvark.glitch.me/'); if (!_00303.ok) { return console.log('[GUI STATUS]', _00303); } return await _00303.text(); } }, { key: '_00813', value: function _00813(html) { const _00304 = document.createElement('div'); _00304.innerHTML = html; document.body.appendChild(_00304); this._00209 = true; this._00815('startB', 'startButton'); this._00815('stopB', 'stopButton'); this._00815('casteramount', 'botCount'); this._00815('title', 'DiscordURL'); document.getElementById(this._00208.startButton).onclick = () => { _00601._00808(); this.getQueryMethod(this._00208.stopButton, 'block', this._00208.startButton, 'none'); }; document.getElementById(this._00208.stopButton).onclick = () => { _00601._00809(); this.getQueryMethod(this._00208.stopButton, 'none', this._00208.startButton, 'block'); }; document.getElementById(this._00208.DiscordURL).onclick = () => { window.location.href = 'https://discord.gg/bAstbAfem9' }; document.getElementById("okbtn").onclick = () => { this.getQueryMethod('popup', 'none', 'blackout', 'none'); }; this._00817( "Webpack Module Successfully initiated, bypass injected. 𝙉𝙞𝙘𝙚 𝙥𝙖𝙩𝙘𝙝 𝘼𝙜𝙖𝙧.𝙡𝙞𝙫𝙚 𝙙𝙚𝙫𝙨, 𝙩𝙧𝙮 𝙩𝙤 𝙗𝙡𝙤𝙘𝙠 𝙢𝙮 𝙂𝙐𝙄 𝙖𝙜𝙖𝙞𝙣 :)" ); } }, { key: '_00814', value: function _00814() { window.addEventListener('keypress', (event) => { switch (event.key) { case 'q': _00601._00806(); break; case 'w': _00601._00807(); break; } }); } }, { key: '_00815', value: function _00815(div, callback) { const _00305 = (((1 + Math.random()) * 0x10000) | 0); document.getElementById(div).id = _00305; this._00208[callback] = _00305; } }, { key: 'getQueryMethod', value: function _00500(div1, style1, div2, style2) { document.getElementById(div1).style.display = style1; document.getElementById(div2).style.display = style2; } }, { key: '_00816', value: function _00816(spawned, max) { document.getElementById(this._00208.botCount).innerText = spawned + " / " + max } }, { key: '_00817', value: function _00817(msg) { document.getElementById("msgpop").innerHTML = msg; document.querySelector("#popup").style.display = "block"; document.querySelector("#blackout").style.display = "block"; } }]); return _00402; }())(); class _00603 { constructor() { this._00215 = /(\w+)\:\/\/(\w+.\w+)/gi.exec(window.location.origin)[2]; this._00216 = { _00306: ["discord.gg/bAstbAfem9", "rb.gy/kafgsw", "Xero-Bots", "Nice try devs!"], _00307() { return this._00306[Math.floor(Math.random() * this._00306.length)] } } } _00818(url) { this._00217 = url; this._00218 = new WebSocket(url); this._00218.binaryType = "arraybuffer"; this._00218.onmessage = this._00820.bind(this); this._00218.onopen = this._00821.bind(this); this._00218.onclose = this._00822.bind(this); this._00218.onerror = this._00823.bind(this); this._00219 = false; this._00220 = Math.floor(Math.pow(2, 14) * Math.random()).toString(36); this._00221 = this._00216._00307() + ' | ' + this._00220; } _00819() { if (this._00218) { this._00218.close(); delete this._00218; } clearInterval(this._00902); clearInterval(this._00900); clearTimeout(this._00901); } _00820(message) { } _00821() { if (this._00834 == 1) { this._00824(); this._00827(); } else if (this._00834 == 2) { let _00308 = this._00832(5); _00308.setUint8(0, 254); _00308.setUint32(1, 5, true); this._00835(_00308, true); _00308 = this._00832(5); _00308.setUint8(0, 255); _00308.setUint32(1, 123456789, true); this._00835(_00308, true); this._00824(); this._00900 = setInterval(this._00826.bind(this), 1e3); } this._00901 = setInterval(this._00824.bind(this), 3000); this._00902 = setInterval(this._00831.bind(this), 150); } _00822() { clearInterval(this._00902); clearInterval(this._00900); clearTimeout(this._00901); } _00823() { } _00824() { if (this._00834 == 1) { let _00309 = this._00832(52); _00309.setUint8(0, 22); var o = 0; for (; o < 25; ++o) { _00309.setUint16(1 + 2 * o, o < this._00221.length ? this._00221.charCodeAt(o) : 0, true); } _00309.setUint8(51, 255) this._00835(_00309); } else if (this._00834 == 2) { var _00310 = this._00832(1 + 2 * this._00221.length); _00310.setUint8(0, 129); for (var i = 0; i < this._00221.length; ++i) { _00310.setUint16(1 + 2 * i, this._00221.charCodeAt(i), true); } this._00835(_00310, true); } } _00825(offset) { var _00311 = this._00832(1); _00311.setUint8(0, offset); this._00835(_00311); } _00826() { const _00312 = this._00832(5); _00312.setUint8(0, 90); _00312.setUint32(1, 123456789, true); this._00835(_00312, true); } _00827() { let _00313 = 268435455 & Date.now(); let _00314 = this._00832(0x5); _00314.setUint8(0x0, 0x1); _00314.setUint32(0x1, _00313); this._00835(_00314); } _00828() { if (this._00834 == 2) { this._00835(new Uint8Array([0x11])) } } _00829() { if (this._00834 == 2) { this._00835(new Uint8Array([0x24])) } } _00830(message) { if (this._00834 == 2) { var _00315 = this._00832(4 + 2 * message.length); var _00316 = 0; _00315.setUint8(_00316++, 199); _00315.setUint8(_00316++, 0); for (var _00317 = 0; _00317 < message.length; ++_00317) { _00315.setUint16(_00316, message.charCodeAt(_00317), true); _00316 += 2; } _00315.setUint16(_00316, 57344, true); this._00835(_00315) } } _00831() { if (this._00834 == 1) { this._00835(_00601._00205) } else if (this._00834 == 2) { const _00318 = this._00832(21); _00318.setUint8(0, 185); _00318.setFloat64(1, _00601._00204.x, true); _00318.setFloat64(9, _00601._00204.y, true); _00318.setUint32(17, 0, true); this._00835(_00318, true); } } _00832(buf) { return new DataView(new ArrayBuffer(!buf ? 1 : buf)) } get _00833() { return this._00218 && this._00218.readyState === WebSocket.OPEN; } get _00834() { switch (true) { case /oceanar.io/.test(this._00215): case /aquar.io/.test(this._00215): return 1; case /agar.live/.test(this._00215): return 2; case /cellcraft.io/.test(this._00215): return 3; } return 0; } _00835(data, encrypt) { if (this._00833) { if (encrypt) { this._00218.send(data.buffer); } else this._00218.send(data); } } } if (location.host.includes('agma.io') || location.host.includes('cellcraft.io')) { window.WebSocket = class extends WebSocket { constructor() { let ws = super(...arguments); window.sockets?.push(this); setTimeout(() => { ws.onmessage = new Proxy(ws.onmessage, { apply(target, thisArg, argArray) { let data = argArray[0].data; return target.apply(thisArg, argArray); } }); }); } } WebSocket.prototype.send = new Proxy(WebSocket.prototype.send, { apply(target, thisArg, argArray) { var res = target.apply(thisArg, argArray); let pkt = argArray[0]; if (typeof pkt == 'string') return res; if (pkt instanceof ArrayBuffer) pkt = new DataView(pkt); else if (pkt instanceof DataView) pkt = pkt; else pkt = new DataView(pkt.buffer); switch (pkt.getUint8(0, true)) { case 0: switch (pkt.byteLength) { case 9: _00601._00205 = pkt; break; } break; } if (_00601._00203 !== thisArg.url) { _00601._00203 = thisArg.url; } return res; } }); window.addEventListener('load', () => { _00601._00801(); }); } else { window.addEventListener('load', () => { _00601._00801(); WebSocket.prototype.send = new Proxy(WebSocket.prototype.send, { apply(target, thisArg, argArray) { var res = target.apply(thisArg, argArray); let pkt = argArray[0]; if (!_00601) return; if (typeof pkt == 'string') return res; if (pkt instanceof ArrayBuffer) pkt = new DataView(pkt); else if (pkt instanceof DataView) pkt = pkt; else pkt = new DataView(pkt.buffer); switch (pkt.getUint8(0, true)) { case 16: case 185: _00601._00204.x = pkt.getFloat64(1, true); _00601._00204.y = pkt.getFloat64(9, true); break; case 5: case 14: case 239: _00601._00205 = pkt.buffer; break; } if (_00601._00203 !== thisArg.url) { _00601._00203 = thisArg.url; } return res; } }); }) }