// ==UserScript==
// @name 'Delta - 999999 in 1
// @name:ru 'Delta - 999999 в 1
// @name:ru 'Delta - 999999 в 1'
// @name:ja 'デルタ - 999999 イン 1'
// @name:es 'Delta - 999999 en 1'
// @name:zh-CN 'Delta - 999999 合 1'
// @name:de 'Delta - 999999 in 1'
// @name:ar 'دلتا - 999999 في 1'
// @description Delta - extension for agario, agar.io mod collection. Zoom+, macro eject mass, double split, hot-keys, minimap, chat, helpers, themes
// @description:es Delta - extensión para agario, colección de mods agar.io. Zoom+, masa de expulsión de macro, doble división, teclas de acceso rápido, minimapa, chat, ayudas, temas
// @description:ru Delta - расширение для агарио, сборник модов для agar.io. Зум, авто-ц, дабл-сплит, горячие клавиши, мини-карта, чат, подсказки, темы
// @description:zh-CN Delta - agario 的擴展,agar.io mod 集合。縮放+、巨集彈出品質、雙分割、熱鍵、小地圖、聊天、助理、主題
// @description:uk Delta - розширення для agario, колекція модів agar.io. Zoom+, макро викидна маса, подвійний поділ, гарячі клавіші, міні-карта, чат, помічники, теми
// @description:tr Delta - agario, agar.io mod koleksiyonu için uzantı. Zoom+, makro çıkarma kütlesi, çift bölme, kısayol tuşları, mini harita, sohbet, yardımcılar, temalar
// @description:de Delta – Erweiterung für Agario, agar.io Mod-Sammlung. Zoom+, Makro-Auswurfmasse, Doppelsplit, Hotkeys, Minikarte, Chat, Helfer, Themen
// @description:ja Delta - agario の拡張機能、agar.io mod コレクション。 Zoom+、マクロイジェクトマス、ダブルスプリット、ホットキー、ミニマップ、チャット、ヘルパー、テーマ
// @description:pl Delta - rozszerzenie do kolekcji modów agario, agar.io. Zoom+, masa wyrzucania makro, podwójny podział, klawisze skrótu, minimapa, czat, pomocnicy, motywy
// @description:fr Delta - extension para sa agario, agar.io mod collection. Zoom+, macro eject mass, double split, hot-keys, minimap, chat, mga katulong, mga tema
// @description:ar 'دلتا - إضافة لـ Agario، مجموعة تعديلات لـ agar.io. تكبير+، ماكرو لإطلاق الكتلة، انقسام مزدوج، مفاتيح الاختصار، خريطة مصغرة، دردشة، مساعدات، ثيمات'
// @version 7.6
// @namespace delta.agar
// @author neo
// @icon https://deltav4.gitlab.io/ext/assets/favicon.ico
// @match *://*.agar.io/*
// @match *://*.sigmally.com/*
// @match *://*.gota.io/*
// @run-at document-start
// @grant GM.xmlHttpRequest
// @grant GM.registerMenuCommand
// @grant window.close
// @grant unsafeWindow
// @license Proprietary
// ==/UserScript==
/*
GREASYFORK VERSION
Sorry, Delta is no longer available for GreasyFork users.
Delta will be available again after all GreasyFork rules are met.
Right now there is a lite version of Delta
If this user script does not start, write me a discord
Если данное расширение не запускается, напишите мне в дискорд
https://discord.gg/HHmyKW6
*/
function sorry() {
alert('Sorry, this extension is not available in this user-script');
}
try {
GM.registerMenuCommand('\uD83D\uDF02\u2077 Delta 7', function () {
window.location.href = 'https://delt.io/';
});
GM.registerMenuCommand('\ud83d\uddf8 Stock Agar.io', function () {
window.location.href = 'https://agar.io/noext';
});
GM.registerMenuCommand('\ud83d\udd17 Visit our website', function () {
window.location.href = 'https://deltav4.glitch.me/';
});
GM.registerMenuCommand('\uD83D\uDDAD Delta Discord', function () {
window.location.href = 'https://bit.ly/3RXQXQd';
});
} catch (e) {}
if (window.document && window.document.title === 'Attention Required! | Cloudflare') {
if (!/you have been blocked/.test(window.document.body.innerHTML)) {
return;
}
}
const host2path = {
sigmally: '/terms.html',
'': '/delta'
};
if (window.location.pathname === '/') {
window.stop();
for (const [host, path] of Object.entries(host2path)) {
if (window.location.host.includes(host)) return (window.location.href = path);
}
}
for (const [, path] of Object.entries(host2path)) {
if (window.location.pathname.includes(path)) {
window.history && window.history.replaceState && window.history.replaceState({}, window.document.title, '/');
break;
}
}
var defaultMode = 'default';
var modes = {
default: function () {
/**
* Vue selector
* example: find_node(window['agarApp'].home, (child, depth) => { if(child.$vnode?.tag?.toLowerCase().includes('home')) return true })
* @param {*} where window.agarApp.home
* @param {(child: any, depth: number) => any} cond
* @returns {any[]}
*/
const find_node = (where = unsafeWindow['agarApp'].home, cond) => {
const results = [];
const find_static = (where = unsafeWindow['agarApp'].home, cond) => {
function each_children(child, depth) {
depth += 1;
child.forEach((ch) => {
if (cond(ch, depth)) results.push(ch);
ch.children && each_children(ch.children, depth);
});
}
each_children(where, -1);
return results;
};
function each_children(child, depth) {
depth += 1;
if (cond(child, depth)) results.push(child);
child._staticTrees && find_static(child._staticTrees, cond);
// console.log(depth, 'TAG:', child, child.$vnode?.tag)
child.$children?.forEach((ch) => {
each_children(ch, depth);
});
child.children?.forEach((ch) => {
each_children(ch, depth);
});
child._vnode?.children?.forEach((ch) => {
each_children(ch, depth);
});
child._vnode?.componentOptions?.children?.forEach((ch) => {
each_children(ch, depth);
});
}
each_children(where, -1);
return results;
};
function init() {
// Ads delete
find_node(undefined, (child, depth) => {
if (child.$vnode?.tag.includes('-ads')) return true;
})[0]?.$destroy();
find_node(undefined, (child, depth) => {
if (child.$vnode?.tag.includes('-promo')) return true;
})[0]?.$destroy();
find_node(undefined, (child, depth) => {
return child.elm?.id?.includes('agar-io');
}).forEach((child) => {
child.elm.parentElement?.removeChild(child.elm);
});
find_node(undefined, (child, depth) => child.playVideoAd).forEach((elem) => {
elem.getVideoTimestamp = () => Date.now();
});
{
const vnode = find_node(undefined, (child, depth) =>
Object.getPrototypeOf(child).hasOwnProperty('hasBottomAd')
)?.[0];
if (vnode) {
Object.defineProperties(vnode, {
fastEntry: { get: () => true }
});
}
}
// Youtube, FB buttons
{
const vnode = find_node(undefined, (child, depth) => {
if (child?.elm?.id == 'socialButtons') return true;
})[0];
if (vnode) {
vnode.elm.parentElement.removeChild(vnode.elm);
}
}
// Skin floating badge
{
const bubble = find_node(undefined, (child, depth) => child.data?.staticClass?.includes('bubble'))[0];
bubble?.elm?.parentElement.removeChild(bubble?.elm);
}
unsafeWindow['agarApp'].ads = {
requestAds() {},
requestAd() {},
refreshAd() {},
destroyAd() {},
adSlots() {},
enableTargetedAds() {},
disableTargetedAds() {},
isTargeted() {},
supersonicAds: {
BrandConnectReadyEvent() {},
BrandConnectDoneEvent() {},
BrandConnectOpenEvent() {},
BrandConnectCloseEvent() {},
BrandConnectCompletedEvent() {},
hasEngagement() {
return false;
}
}
};
}
addEventListener('core_init_complete', () => {
try {
init();
} catch (e) {
console.error(e);
}
});
}
};
var matched = modes[defaultMode];
for (var mode in modes) {
var isMatched = window.location.pathname.toLowerCase().indexOf(mode) > -1;
if (isMatched) {
matched = modes[mode];
break;
}
}
if (document && document.documentElement) {
const style =
'<style>html{font: 1.2em "Fira Sans", sans-serif;color:white;background: radial-gradient(circle at bottom right,#36003e, #000000 27%); height: 100%;}</style>';
document.documentElement.innerHTML =
style +
'Extension is loading....<br>' +
'Sorry, Delta is no longer available on GreasyFork users. Delta will be available again after all GreasyFork rules are met.<br>' +
'Right now there is a lite version of Delta.';
}
loader();
function loader() {
setTimeout(function () {
GM.xmlHttpRequest({
method: 'GET',
url: window.location.pathname,
onload: async function (e) {
var blob = new Blob(['\ufeff' + e.responseText], { type: 'text/html;charset=windows-1252' });
var reader = new FileReader();
reader.onload = function () {
document.open();
document.write(reader.result);
document.close();
matched();
};
reader.readAsText(blob);
}
});
}, 1500);
}