First commit.
This commit is contained in:
commit
2e5155380b
12 changed files with 471 additions and 0 deletions
130
MinecraftColorCodes.3.7.js
Normal file
130
MinecraftColorCodes.3.7.js
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
|
||||
var obfuscators = [];
|
||||
var styleMap = {
|
||||
'§4': 'font-weight:normal;text-decoration:none;color:#be0000',
|
||||
'§c': 'font-weight:normal;text-decoration:none;color:#fe3f3f',
|
||||
'§6': 'font-weight:normal;text-decoration:none;color:#d9a334',
|
||||
'§e': 'font-weight:normal;text-decoration:none;color:#fefe3f',
|
||||
'§2': 'font-weight:normal;text-decoration:none;color:#00be00',
|
||||
'§a': 'font-weight:normal;text-decoration:none;color:#3ffe3f',
|
||||
'§b': 'font-weight:normal;text-decoration:none;color:#3ffefe',
|
||||
'§3': 'font-weight:normal;text-decoration:none;color:#00bebe',
|
||||
'§1': 'font-weight:normal;text-decoration:none;color:#0000be',
|
||||
'§9': 'font-weight:normal;text-decoration:none;color:#3f3ffe',
|
||||
'§d': 'font-weight:normal;text-decoration:none;color:#fe3ffe',
|
||||
'§5': 'font-weight:normal;text-decoration:none;color:#be00be',
|
||||
'§f': 'font-weight:normal;text-decoration:none;color:#ffffff',
|
||||
'§7': 'font-weight:normal;text-decoration:none;color:#bebebe',
|
||||
'§8': 'font-weight:normal;text-decoration:none;color:#3f3f3f',
|
||||
'§0': 'font-weight:normal;text-decoration:none;color:#000000',
|
||||
'§l': 'font-weight:bold',
|
||||
'§n': 'text-decoration:underline;text-decoration-skip:spaces',
|
||||
'§o': 'font-style:italic',
|
||||
'§m': 'text-decoration:line-through;text-decoration-skip:spaces',
|
||||
};
|
||||
function obfuscate(string, elem) {
|
||||
var magicSpan,
|
||||
currNode,
|
||||
len = elem.childNodes.length;
|
||||
if(string.indexOf('<br>') > -1) {
|
||||
elem.innerHTML = string;
|
||||
for(var j = 0; j < len; j++) {
|
||||
currNode = elem.childNodes[j];
|
||||
if(currNode.nodeType === 3) {
|
||||
magicSpan = document.createElement('span');
|
||||
magicSpan.innerHTML = currNode.nodeValue;
|
||||
elem.replaceChild(magicSpan, currNode);
|
||||
init(magicSpan);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
init(elem, string);
|
||||
}
|
||||
function init(el, str) {
|
||||
var i = 0,
|
||||
obsStr = str || el.innerHTML,
|
||||
len = obsStr.length;
|
||||
obfuscators.push( window.setInterval(function () {
|
||||
if(i >= len) i = 0;
|
||||
obsStr = replaceRand(obsStr, i);
|
||||
el.innerHTML = obsStr;
|
||||
i++;
|
||||
}, 0) );
|
||||
}
|
||||
function randInt(min, max) {
|
||||
return Math.floor( Math.random() * (max - min + 1) ) + min;
|
||||
}
|
||||
function replaceRand(string, i) {
|
||||
var randChar = String.fromCharCode( randInt(64,90) ); /*Numbers: 48-57 Al:64-90*/
|
||||
return string.substr(0, i) + randChar + string.substr(i + 1, string.length);
|
||||
}
|
||||
}
|
||||
function applyCode(string, codes) {
|
||||
var len = codes.length;
|
||||
var elem = document.createElement('span'),
|
||||
obfuscated = false;
|
||||
for(var i = 0; i < len; i++) {
|
||||
elem.style.cssText += styleMap[codes[i]] + ';';
|
||||
if(codes[i] === '§k') {
|
||||
obfuscate(string, elem);
|
||||
obfuscated = true;
|
||||
}
|
||||
}
|
||||
if(!obfuscated) elem.innerHTML = string;
|
||||
return elem;
|
||||
}
|
||||
function parseStyle(string) {
|
||||
var codes = string.match(/§.{1}/g) || [],
|
||||
indexes = [],
|
||||
apply = [],
|
||||
tmpStr,
|
||||
indexDelta,
|
||||
noCode,
|
||||
final = document.createDocumentFragment(),
|
||||
len = codes.length,
|
||||
string = string.replace(/\n|\\n/g, '<br>');
|
||||
|
||||
for(var i = 0; i < len; i++) {
|
||||
indexes.push( string.indexOf(codes[i]) );
|
||||
string = string.replace(codes[i], '\x00\x00');
|
||||
}
|
||||
if(indexes[0] !== 0) {
|
||||
final.appendChild( applyCode( string.substring(0, indexes[0]), [] ) );
|
||||
}
|
||||
for(var i = 0; i < len; i++) {
|
||||
indexDelta = indexes[i + 1] - indexes[i];
|
||||
if(indexDelta === 2) {
|
||||
while(indexDelta === 2) {
|
||||
apply.push ( codes[i] );
|
||||
i++;
|
||||
indexDelta = indexes[i + 1] - indexes[i];
|
||||
}
|
||||
apply.push ( codes[i] );
|
||||
} else {
|
||||
apply.push( codes[i] );
|
||||
}
|
||||
if( apply.lastIndexOf('§r') > -1) {
|
||||
apply = apply.slice( apply.lastIndexOf('§r') + 1 );
|
||||
}
|
||||
tmpStr = string.substring( indexes[i], indexes[i + 1] );
|
||||
final.appendChild( applyCode(tmpStr, apply) );
|
||||
}
|
||||
return final;
|
||||
}
|
||||
function clearObfuscators() {
|
||||
var i = obfuscators.length;
|
||||
for(;i--;) {
|
||||
clearInterval(obfuscators[i]);
|
||||
}
|
||||
obfuscators = [];
|
||||
}
|
||||
String.prototype.replaceColorCodes = function() {
|
||||
clearObfuscators();
|
||||
var outputString = parseStyle(String(this));
|
||||
return outputString;
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////
|
||||
function cutString(str, cutStart, cutEnd){
|
||||
return str.substr(0,cutStart) + str.substr(cutEnd+1);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue