Greasy Fork is available in English.

Send Agario SIP To Discord

Gets the agario server IP link and posts it to discord

// ==UserScript==
// @name         Send Agario SIP To Discord
// @namespace    http://tampermonkey.net/
// @version      1.94
// @description  Gets the agario server IP link and posts it to discord
// @author       σмg ι ℓσνє уσυ! Published by Jimboy3100
// @match        http://agar.io/*
// @match        https://agar.io/*
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @grant        GM_registerMenuCommand
// @connect      agar.io
// ==/UserScript==

///////////////////////////////////////////////////////////////////////////////////////////////
//Written by σмg ι ℓσνє уσυ! (Joe Bigglesworth), published by Jimboy3100 on general form
//Put your webhook for generalChannel and serverChannel (2nd webhook) for the script to work

var generalChannel = "https://discord.com/api/webhooks/1146954240091234416/xmsHYTnT7SZRcHQF3KhuwPTZXfzDs2w3u7hsZUbIqVs0Nyh3r12YflR9XtUDvau-c4vC";
var serverChannel = "https://discordapp.com/api/webhooks/.../...";
///////////////////////////////////////////////////////////////////////////////////////////////		

window.messageone;
var discordcodetosend;

function displayDiscordNotification() {
	var discText = '<b>[SERVER]</b>: Server Sent to Discord.';

	if (window.messageone == "0" || window.messageone == "1") { //IF using Legend Mod
		toastr["info"](discText).css("width", "300px");
	} else {
		$('body').append('<div id="serverDiscord" class="agario-panel" style="position:fixed;width:18%;height:10%;right:0;background-color: rgba(0,0,255,0.5);z-index:100;"><div style="float: center;color: white;"><h3>' + discText + '</h2></div></div>');
		setTimeout(function() {
			$('#serverDiscord').remove();
		}, 1000);
	}
}

var previousUrl = "";

function popAgarURL(fun) {
	var a = WebSocket.prototype.send;
	window.__WS_send = WebSocket.prototype.send
	WebSocket.prototype.send = function(b) {
		//debugger;
		console.log(this.url)
		var vanilla;
		var ogartest = $('#menu-footer').text();
		try {
			var d = /[^:\/]+\.agar\.io/.exec(this.url);
			//var c = /((?:[0-9]{1,3}(?:\.|\-)){1,3}[0-9]{1,3})(?:.*?)?(\:[0-9]{1,5})/,
			//d = c.exec(this.url);
			//ogario support
			var serverlinks;
			if (window.messageone == "0" || window.messageone == "1") { //IF using Legend Mod
				serverlinks = window.location.href + "&?pass=" + $("#clantag").val();
			} else if ($("#connect").hasClass("agartoolbtn")) { //IF using Agar Tools
				serverlinks = "https://agar.io/?sip=" + "live-arena-" + $("#server").val() + ".agar.io";
			} else if (vanilla != null) { //IF using Vanilla
				var maketheserver = $("#btn-dc-input").val();
				maketheserver = maketheserver.split('live', 2).pop();
				maketheserver = 'live' + maketheserver;
				maketheserver.replace(':80', '');
				serverlinks = "https://agar.io/?sip=" + maketheserver;
			} else if (~ogartest.indexOf("ogario")) {
				serverlinks = "https://agar.io/?sip=" + "live-arena-" + $("#server-token").val() + ".agar.io" + "&?pass=" + $("#clantag").val();
			} else {
				serverlinks = "https://agar.io/?sip=" + d[0];
			}
			//console.log(serverlinks);
			//ally support
			//    var serverlinks="https://agar.io/?sip="+d[1].replace(/-/g,'.')+d[2]+" = regular";
			//    if( $('#btn-dc-input').length )         // use this if you are using id to check
			//   {
			//        serverlinks += "\r\n"+$('#btn-dc-input')[0].value+" = Ally"+"\r\n";
			//    }
			fun(serverlinks);
		} catch (e) {
			console.log('exception: ' + e.message);
		}
		try {
			a.apply(this, [b]);
			WebSocket.prototype.send = a;
		} catch (e) {
			window.__WS_send.apply(this, [b]);
			WebSocket.prototype.send = window.__WS_send;
		}
	};
}

function postToDiscord(discordUrl, isGeneralChannel) {
	popAgarURL(function(serverlinks) {
		//hack to prevent strange post duplication bug
		//if (previousUrl!=discordUrl) {
		// Sending and receiving data in JSON format using POST mothod
		//
		var xhr = new XMLHttpRequest();
		var url = discordUrl;
		console.log('discord url: ' + url);
		xhr.open("POST", url, true);
		xhr.setRequestHeader("Content-type", "application/json");
		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && xhr.status == 200) {
				/*window.idkwhatthisis=xhr.responseText;
				var json = JSON.parse(xhr.responseText);
				console.log(json.email + ", " + json.password);*/
			}
		};
		var nick = $.find('#nick');
		//  console.log('nick: '+nick[0].value);
		var discordMsg = "\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\\_\r\n" + "Poster: " + nick[0].value + "\r\n\r\n" + serverlinks;
		if (isGeneralChannel) {
			//discordMsg+="\r\n@everyone";
			//discordMsg+="\r\nAlso posted in #serverlinks";
			discordMsg += "\r\n";
		}
		var discordskintosend;
		if ($("#skin").length) {
			discordskintosend = $("#skin").val()
		}
		var discordtagtosend;
		if ($("#clantag").length) {
			discordtagtosend = $("#clantag").val()
		}
		var discordregiontosend;
		var discordmodetosend;
		if ($("#region").length && $("#gamemode").length) {
			discordregiontosend = $("#region").val()
			discordmodetosend = $("#gamemode").val()
		}

		var discregmod = discordregiontosend + discordmodetosend;
		var discordtop;
		if (window.messageone == "0" || window.messageone == "1") {
			discordtop = $("#leaderboard-positions").text()
		}
		var discordteam;
		if (window.teammatelegendmodnicks) {
			discordteam = window.teammatelegendmodnicks.toString();
		}
		var discordimageuser;
		if ($(".agario-profile-picture").length) {
			discordimageuser = $(".agario-profile-picture").attr('src');
		}
		if (discordtagtosend && discordtagtosend != "") {
			discordcodetosend = {
				//"username": "Agario to Discord Webhook",
				//"avatar_url": "https://jimboy3100.github.io/banners/CropedImage128.gif",
				//  "content": discordMsg,
				"embeds": [{
					"author": {
						"name": nick[0].value,
						"url": serverlinks,
						"icon_url": discordimageuser
					},
					"title": serverlinks,
					"url": serverlinks,
					//      "description": "[Click here]("+serverlinks+")",
					"color": 15258703,
					"fields": [{
							"name": "Tag / Password",
							"value": discordtagtosend,
							"inline": true
						},
						{
							"name": "Region / Mode",
							"value": discregmod,
							"inline": true
						},
						{
							"name": "Leaderboard",
							"value": discordtop
						}
					],
					"thumbnail": {
						"url": discordskintosend
					},
					"image": {
						"url": "https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg"
					},
					"footer": {
						"text": "* Discord webhook by Legend mod for agario",
					}
				}]
			}
		} else {
			discordcodetosend = {
				//"username": "Agario to Discord Webhook",
				//"avatar_url": "https://jimboy3100.github.io/banners/CropedImage128.gif",
				//  "content": discordMsg,
				"embeds": [{
					"author": {
						"name": nick[0].value,
						"url": serverlinks,
						"icon_url": discordimageuser
					},
					"title": "Join my agario server",
					"url": serverlinks,
					//      "description": "[Click here]("+serverlinks+")",
					"color": 15258703,
					"fields": [{
							"name": "Region / Mode",
							"value": discregmod,
						},
						{
							"name": "Leaderboard",
							"value": discordtop
						}
					],
					"thumbnail": {
						"url": discordskintosend
					},
					"image": {
						"url": "https://upload.wikimedia.org/wikipedia/commons/5/5a/A_picture_from_China_every_day_108.jpg"
					},
					"footer": {
						"text": "* Discord webhook by Legend mod for agario",
					}
				}]
			}
		}

		var data = JSON.stringify(discordcodetosend);
		//var data = JSON.stringify({"content":serverlinks});
		xhr.send(data);
		console.log('Formatted Serverlinks:');
		console.log(serverlinks);
		//}
		previousUrl = discordUrl;
	});
}


(function() {
	'use strict';
	setTimeout(function() {
		if (window.messageone == "0" || window.messageone == "1") {
			generalChannel = localStorage.getItem("discwebhook1");
			serverChannel = localStorage.getItem("discwebhook2");
		}
		var r = $('<button/>', {
			text: 'Post Server IP to Discord',
			class: 'btn btn-primary btn',
			style: 'width: 100%;margin-top: 0px'
		});
		if (window.discordsip == null) {
			window.discordsip = true;
			var a;
			if (window.messageone == "0" || window.messageone == "1") {
				a = $.find('#agario-main-buttons');
				//a[0].append($('<br/>')[0]);
				a[0].append(r[0]);
				//a[0].append($('<br/>')[0]);			
			} else {
				a = $('#title');
				a.before(r[0]);
				a.remove();
			}
			r[0].onclick = function() {

				postToDiscord(serverChannel, false);
				postToDiscord(generalChannel, true);
				displayDiscordNotification();
			};
		}
		// menu function
		var GM_registerMenuCommand;
		if (GM_registerMenuCommand) {
			GM_registerMenuCommand('Post Agar Server IP to Discord', function() {
				postToDiscord(serverChannel, false);
				postToDiscord(generalChannel, true);
				displayDiscordNotification();
			}, 'r');
		}
	}, 4000);

})();