RainbowChat for DH1

This script is just amazing! Check the script for some configs!

目前为 2017-03-04 提交的版本。查看 最新版本

// ==UserScript==
// @name            RainbowChat for DH1
// @namespace       http://tampermonkey.net/
// @version         1.0.0
// @description     This script is just amazing! Check the script for some configs!
// @author          Lasse98brus
// @match           http://www.diamondhunt.co/DH1/game.php
// @run-at          document-idle
// @grant           none
// ==/UserScript==
/* jshint -W097 */
'use strict';


/*
 *   #=================================================================================================================================================================================================#
 *   #  Welcome to my RainbowChat script for both DH1 and DH2 :D My name is Lasse98brus and I did create this script because Amyjane1991 said she had the old DHRainbowChat that doesn't work anymore! #
 *   #  I pretty much had to change the whole script! So please don't this with the original DHRainbowChat! This script is built to be as stable as possible!                                          #
 *   #                                                                                                                                                                                                 #
 *   #  If you like my script and my work with it, and you feel to support my work! Feel free to donate to me with PayPal :D my PayPal: [email protected]                                        #
 *   #=================================================================================================================================================================================================#
 */


  // Some configs to easily choose the futures that YOU like! :D
var config = {
  // Here you can just change between "true" and "false" before you login to the game! :)
    "rainbowTime"  :  false,  // Set to "true" to enable rainbow timestamps! This will color timestamps for server messages too (default: "false")
    "rainbowName"  :  true,   // Set to "false" to disable rainbow names! (default: "true")
    "removeIcons"  :  false,  // Set to "true" to remove all icons in chat, doesn't remove donor icon! (default: "false")

  // Futures under here does have multiple choises! Read the end of the lines to know whats working ad not!
    // Unfortunately it's nothing to configure here yet!

  // Uder development! Something isn't working as well!
    "rainbowMSG"   :  false     // Under development! This works pretty good! Links doesn't work because of this for now! (default: "false")
};


/*
 * #=================#
 * # Update history! #
 * #=================#
 *
 *  v1.0.0 - February 19th 2017
 *  + Initial release! :D
 *
 *  v1.x.x - Comming soon!
 *  ? Try to fix "rainbowMSG" to support links!
 *  ? Maybe adding choises of color sets?
 *  ? Adding more color choises in the config!
 *
 */


/*
 *   #======================================================================================================================#
 *   # I'm pretty sure you don't need to change anything below here! It's pretty much fully customizeable in the configs :) #
 *   #======================================================================================================================#
 */


document.getElementById("chat-area-div").style = "background-color:#0c0c0c;color:#999!important;"; // Please just let this be! this makes the chat look a lot better with the colors used in this script!


var rcColours = [
    ["#ff0000", "#cc0000", "#b30000"],  // Red colors
    ["#00cc00", "#009900", "#00e600"],  // Green colors
    ["#ff99cc", "#ff4da6", "#ff0080"],  // Pink colors
    ["#9900cc", "#730099", "#bf00ff"],  // Purple colors
    ["#ff9933", "#ff8000", "#ff9933"],  // Orange colors
    ["#e6b800", "#cca300", "#b38f00"]   // Gold/Yellow colors
];
var rcColour = -1;
var rcLastColour = -1;


  // This is a trigger for the script to make the changes!
window.refreshChat = function(data) {
	data = newRainbowChat(data);
};


  // The actually magically code is here! This code will make the chat colors change when the above code is triggered and need this code!
  // All errors here that Tampermonkey tell you "'someVar' is not defined." is allready in Smitty's scripts!
function newRainbowChat(data) {
	var chatbox = document.getElementById("chat-area-div");
	var output = data;

	var splitArray = data.split("~");
	var userChatting = splitArray[0];
	var levelChat = splitArray[1];
	var tag = splitArray[2];
	var icon = splitArray[3];
	var message = splitArray[4];
	var isPM = splitArray[5];

	for(var i = 0; i < mutedPeople.length; i++) { if(mutedPeople[i] == userChatting) return; }

	var chatSegment = "";

      // Random color!
    while (rcColour === rcLastColour) { rcColour = getRandomArbitrary(0, rcColours.length); }
	rcLastColour = rcColour;
	var myColour = rcColours[rcColour][getRandomArbitrary(0, rcColours[rcColour].length)];

    var msg = "";
    if(config.rainbowMSG === true) {
        msg = "<span style='color:" + myColour + "'>" + message + "</span>";
    } else {
        msg = message;
    }

    var timeStamp = "";
    if(config.rainbowTime === true) {
	    timeStamp = "<span style='color:" + myColour + "'>" + timeFetch() + "</span>";
    } else {
        timeStamp = timeFetch();
    }

    var totalTextDiv = "";
    if(isPM == 1)
	{

		chatSegment = "<span style='color:purple'>PM from " + "<span style='cursor:pointer;' oncontextmenu='searchPlayerHicores(\""+userChatting+"\");return false;' onclick='preparePM(\""+userChatting+"\")'>"+userChatting+"</span>" +": " + message + "</span>";
		chatSegment += "<br />";
		lastPMFrom = userChatting;
		totalTextDiv = chatbox.innerHTML + timeStamp  + chatSegment;
		chatbox.innerHTML = totalTextDiv;
		if(isAutoScrolling) { $("#chat-area-div").animate({ scrollTop:  55555555 }, 'slow'); }
		return;
	}
	if(isPM == 2)
	{
		chatSegment = "<span style='color:purple'>sent PM to " + "<span style='cursor:pointer;' oncontextmenu='searchPlayerHicores(\""+userChatting+"\");return false;' onclick='preparePM(\""+userChatting+"\")'>"+userChatting+"</span>" +": " + message + "</span>";
		chatSegment += "<br />";
		totalTextDiv = chatbox.innerHTML + timeStamp  + chatSegment;
		lastPMFrom = userChatting;
		chatbox.innerHTML = totalTextDiv;
		if(isAutoScrolling) { $("#chat-area-div").animate({ scrollTop:  55555555 }, 'slow'); }
		return;
	}
	if(isPM == 3) //yell message
	{
		chatSegment = "<span style='color:#0066ff;'><span class='chat-tag-yell'>Server Message</span> " + message + " </span>";
		chatSegment += "<br />";
		totalTextDiv = chatbox.innerHTML + timeStamp  + chatSegment;
		lastPMFrom = userChatting;
		chatbox.innerHTML = totalTextDiv;
		if(isAutoScrolling) { $("#chat-area-div").animate({ scrollTop:  55555555 }, 'slow'); }
		return;
	}

    if(config.removeIcons === false) {
        if(icon == 1) { chatSegment = "<img title='Maxed Skills' src='images/icons/stats.png' style='vertical-align: text-top;' width='20' height='20' alt='Maxed Skills'/>" + chatSegment;
        } else if(icon == 2) { chatSegment = "<img title='Master in Mining' src='images/icons/pickaxe.png' style='vertical-align: text-top;' width='20' height='20' alt='Master in Mining'/>" + chatSegment;
        } else if(icon == 3) { chatSegment = "<img title='Master in Crafting' src='images/icons/anvil.png' style='vertical-align: text-top;' width='20' height='20' alt='Master in Crafting'/>" + chatSegment;
        } else if(icon == 4) { chatSegment = "<img title='Master in Brewing' src='images/brewing/vialofwater_chat.png' style='vertical-align: text-top;' width='20' height='20' alt='Master in Brewinghiscores'/>" + chatSegment;
        } else if(icon == 5) { chatSegment = "<img title='Master in Farming' src='images/icons/watering-can.png' style='vertical-align: text-top;' width='20' height='20' alt='Master in Farming'/>" + chatSegment;
        } else if(icon == 6) { chatSegment = "<img title='Hardcore Account' src='images/icons/hardcoreIcon.png' style='vertical-align: text-top;' width='20' height='20' alt='Hardcore Account'/>" + chatSegment;
        } else if(icon == 7) { chatSegment = "<img title='Halloween 2015' src='images/icons/halloween2015.png' style='vertical-align: text-top;' width='20' height='20' alt='Halloween 2015'/>" + chatSegment;
        } else if(icon == 8) { chatSegment = "<img title='Halloween 2015' src='images/icons/archaeology.png' style='vertical-align: text-top;' width='20' height='20' alt='Halloween 2015'/>" + chatSegment;
        } else if(icon == 9) { chatSegment = "<img title='Chirstmas 2015' src='images/sigils/christmas2015.png' style='vertical-align: text-top;' width='20' height='20' alt='Halloween 2015'/>" + chatSegment;
        } else if(icon == 10) { chatSegment = "<img title='Master in Farming' src='images/magic/wizardHatIcon.png' style='vertical-align: text-top;' width='20' height='20' alt='Master in Farming'/>" + chatSegment;
        } else if(icon == 11) { chatSegment = "<img title='Holiday' src='images/sigils/easter2016.png' style='vertical-align: text-top;' width='20' height='20' alt='Holiday Sigil'/>" + chatSegment;
        } else if(icon == 12) { chatSegment = "<img title='COOP' src='images/icons/groupTaskBadge5.png' style='vertical-align: text-top;' width='20' height='20' alt='COOP'/>" + chatSegment;
        } else if(icon == 13) { chatSegment = "<img title='cooking master' src='images/icons/cookingskill.png' style='vertical-align: text-top;' width='20' height='20' alt='Cooking Master'/>" + chatSegment;
        } else if(icon == 14) { chatSegment = "<img title='Halloween 2016' src='images/sigils/halloween2016.png' style='vertical-align: text-top;' width='20' height='20' alt='Halloween 2016'/>" + chatSegment;
        } else if(icon == 15) { chatSegment = "<img title='Chirstmas 2016' src='images/sigils/christmas2016.png' style='vertical-align: text-top;' width='20' height='20' alt='Christmas 2016'/>" + chatSegment; }
    } // End of "removeIcons"

    if(tag == 1) { chatSegment += "<span><img src='images/icons/donor-icon.gif' style='vertical-align: text-top;' width='20' height='20' alt='Donor'/> ";
    } else if(tag == 2) { chatSegment += "<span style='color:green;'><span class='chat-tag-contributor'>Contributor</span> ";
    } else if(tag == 4) { chatSegment += "<span style='color:#669999;'><span class='chat-tag-mod'>Moderator</span> ";
    } else if(tag == 5) { chatSegment += "<span style='color:#666600;'><span class='chat-tag-dev'>Dev</span> "; }

    if(config.rainbowName === true) { chatSegment += "<span style='cursor:pointer;color:" + myColour + "' oncontextmenu='searchPlayerHicores(\"" + userChatting + "\");return false;' onclick='preparePM(\"" + userChatting + "\")'>" + userChatting + " (" + levelChat +"): </span>";
    } else { chatSegment += "<span style='cursor:pointer' oncontextmenu='searchPlayerHicores(\"" + userChatting + "\");return false;' onclick='preparePM(\"" + userChatting + "\")'>" + userChatting + " (" + levelChat +"): </span>"; }

	//make links clickable
	if(isValidURL(msg) && disableUrls === 0) {
		var msgArray = msg.split(" ");
		var newString = "";
        var linkFound = "";
		for(i = 0; i < msgArray.length; i++) {
			if(isValidURL(msgArray[i])) {
				if(!msgArray[i].startsWith("http")) { linkFound = "<a style='color:#40ff00' href='http://"+msgArray[i]+"' target='_blank'>"+msgArray[i]+"</a>" + " ";
                } else { linkFound = "<a style='color:#40ff00' href='"+msgArray[i]+"' target='_blank'>"+msgArray[i]+"</a>" + " "; }
				newString += linkFound;
			} else { newString += msgArray[i] + " "; }
        }
        chatSegment += newString;
	} else { chatSegment += msg; }

	chatSegment += "<span><br />";

	totalTextDiv = chatbox.innerHTML + timeStamp  + chatSegment;
	chatbox.innerHTML = totalTextDiv;

	if(isAutoScrolling) { $("#chat-area-div").animate({ scrollTop:  55555555 }, 'slow'); }

    return data;

}

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

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址