DHRainbowChat

Diamond Hunt Online Rainbow Chat for Amy the Bully

Устаревшая версия за 03.03.2016. Перейдите к последней версии.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name		DHRainbowChat
// @namespace	http://tampermonkey.net/
// @version		1.0
// @description	Diamond Hunt Online Rainbow Chat for Amy the Bully
// @author		John / WhoIsYou
// @match		http://*.diamondhunt.co/game.php
// @match		https://*.diamondhunt.co/game.php
// @run-at document-idle
// @grant		none
// ==/UserScript==
/* jshint -W097 */
'use strict';

/*
	Adds some flair to the chat by randomly colouring messages to a shade of red, green, pink, purple, orange, or yellow (there are 3 of each)
	Does not recolour server messages, smitty's messages, PMs, or messages where your full username is included (problems)
	Will not use the same category of colour twice in a row
*/

// Reds, Greens, Pinks, Purples, Oranges, Golds/Yellows
var rcColours = [["#ff0000", "#cc0000", "#b30000"], ["#00cc00", "#009900", "#00e600"], ["#ff99cc", "#ff4da6", "#ff0080"], ["#9900cc", "#730099", "#bf00ff"], ["#ff9933", "#ff8000", "#ff9933"], ["#ffcc00", "#e6b800", "#ffd11a"]];
var rcColour = -1;
var rcLastColour = -1;

var originalRefreshChat = window.refreshChat;

window.refreshChat = function(data) {
	data = rainbowChat(data);
	originalRefreshChat(data);
}

function rainbowChat(messageString) {
	// If the message isn't from smitty or the server (~ is filtered out serverside so this is fairly safe)
	if (messageString.indexOf("~!!!") === -1) {
		// If the message isn't a received PM
		if (messageString.match(/<span style='color:purple'>Private Message from <b>(.*)<\/b>\: (.*)<\/span>/) === null) {
			// If the message isn't a sent PM
			if (messageString.match(/<span style='color:purple'>Sent to <b>(.*)<\/b>\: hi<\/span>/) === null) {
				var matches = messageString.match(/([0-9]~\*?\|?.* \([0-9]+\)\:) (.*)/);
				// If we properly separate the name + tags from the message, and the message does not contain your username
				if (matches !== null && matches.length >= 3 && matches[2].indexOf(window.username) === -1) {
					while (rcColour === rcLastColour) {
						rcColour = getRandomArbitrary(0, rcColours.length);
					}
					rcLastColour = rcColour;
					var myColour = rcColours[rcColour][getRandomArbitrary(0, rcColours[rcColour].length)];
					messageString = matches[1] + " <span style='color:" + myColour + "'>" + matches[2] + "</span>";
				}
			}
		}
	}
	return messageString;
}

function getRandomArbitrary(min, max) {
  return Math.floor(Math.random() * (max - min) + min);
}