NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Chat hurt eyes // @namespace torn.com // @version 1.3.1 // @author Ahab [1735214] // @updateURL https://openuserjs.org/meta/Ahab/Chat_hurt_eyes.meta.js // @require https://jpillora.com/xhook/dist/xhook.js // @require https://gist.githubusercontent.com/BrockA/2625891/raw/9c97aa67ff9c5d56be34a55ad6c18a314e5eb548/waitForKeyElements.js // @require https://raw.githubusercontent.com/seballot/spectrum/59bfa41e0dac01d5db8fa1dd63322e9f72561c5e/src/spectrum.js // @include *torn.com* // @grant GM_addStyle // @license MIT // ==/UserScript== const sharedStyles = ` [class*="avatar-status-wrapper--online"]{ background-image: linear-gradient(#c0ff00,#c0ff00)!important; } [class*="avatar-status-wrapper--idle"]{ background-image: linear-gradient(#ff8000,#ff8000)!important; } [class*="message__timestamp"]{ display: none!important } [class*="message__avatar"]{ display: none!important } [id="tStamp"]{ color: #f6f6f6; margin-left: 5px; font-size: 0.85em; } [class*="minimized-chat-box"]>[title^='Faction']{ background: none!important; min-height: 34px; } #optionsLabel{ text-align: center; } .optionsRow{ display: flex; justify-content: space-evenly; } .optionsRowB{ display: grid; justify-items: center; } #chatOptions { display: flex; flex-direction: column; flex-wrap: wrap; padding-bottom: 5px; } .h7{ font-size: 1rem; padding-top: 5px; } #chatInput{ width: fit-content; align-self: center; } [class*="typography___"]>span>a{ word-break: break-all!important; } @media screen and (max-width: 600px){ [id="tStamp"]{ color: #f6f6f6;; margin-left: 5px; font-size: 0.75em; } .mobileFac{ align-items: center; background: linear-gradient(180deg,#303030,#444 .01%,#363636 55.73%,#2e2e2e 99.99%,#2e2e2e); border: none; border-radius: 4px 4px 0 0; display: flex; pointer-events: auto; position: relative; height: 34px; } .mobileFac>[class*="minimized-menu-item__"]{ background: none!important; } [class^="mobileFac"] [class^="minimized-menu-item__message-count___"]{ top: -17px; } } .sp-container{position:absolute;top:0;left:0;display:inline-block;*display:inline;*zoom:1;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid black;background:white;opacity:.8}.sp-alpha{display:none;position:absolute;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:solid 1px #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0;right:0;bottom:0;left:84%;height:28px}.sp-container,.sp-replacer,.sp-preview,.sp-dragger,.sp-slider,.sp-alpha,.sp-clear,.sp-alpha-handle,.sp-container.sp-dragging .sp-input,.sp-container button{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear,0 0,100% 0,from(#FFF),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left,#FFF,rgba(204,154,129,0));background-image:-moz-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-o-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:-ms-linear-gradient(left,#fff,rgba(204,154,129,0));background-image:linear-gradient(to right,#fff,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType = 1,startColorstr='#FFFFFFFF',endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear,0 100%,0 0,from(#000),to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-o-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom,#000,rgba(204,154,129,0));background-image:linear-gradient(to top,#000,rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81',endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-ms-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-o-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:-webkit-gradient(linear,left top,left bottom,from(#f00),color-stop(0.17,#ff0),color-stop(0.33,#0f0),color-stop(0.5,#0ff),color-stop(0.67,#00f),color-stop(0.83,#f0f),to(#f00));background:-webkit-linear-gradient(top,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%);background:linear-gradient(to bottom,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000',endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00',endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00',endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff',endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff',endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff',endColorstr='#ff0000')}.sp-hidden{display:none !important}.sp-cf:before,.sp-cf:after{content:"";display:table}.sp-cf:after{clear:both}.sp-cf{*zoom:1}@media(max-device-width:480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:white;opacity:.8}.sp-container{border-radius:0;background-color:#ececec;border:solid 1px #f0c49b;padding:0}.sp-container,.sp-container button,.sp-container input,.sp-color,.sp-hue,.sp-clear{font:normal 12px "Lucida Grande","Lucida Sans Unicode","Lucida Sans",Geneva,Verdana,sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-color,.sp-hue,.sp-clear{border:solid 1px #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px !important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:transparent;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-picker-container,.sp-palette-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left;border:solid 1px #333}.sp-initial span{width:30px;height:25px;border:0;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-palette-button-container,.sp-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;*zoom:1;*display:inline;border:solid 1px #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer:hover,.sp-replacer.sp-active{border-color:#f0c49b;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;float:left;font-size:10px}.sp-preview{position:relative;width:25px;height:20px;border:solid 1px #222;margin-right:5px;float:left;z-index:0}.sp-palette{*width:220px;max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:solid 1px #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eee;background-image:-webkit-linear-gradient(top,#eee,#ccc);background-image:-moz-linear-gradient(top,#eee,#ccc);background-image:-ms-linear-gradient(top,#eee,#ccc);background-image:-o-linear-gradient(top,#eee,#ccc);background-image:linear-gradient(to bottom,#eee,#ccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#ddd;background-image:-webkit-linear-gradient(top,#ddd,#bbb);background-image:-moz-linear-gradient(top,#ddd,#bbb);background-image:-ms-linear-gradient(top,#ddd,#bbb);background-image:-o-linear-gradient(top,#ddd,#bbb);background-image:linear-gradient(to bottom,#ddd,#bbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-moz-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-ms-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;-o-box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee;box-shadow:inset 0 0 5px 2px #aaa,0 1px 0 0 #eee}.sp-cancel{font-size:11px;color:#d93f3f !important;margin:0;padding:2px;margin-right:5px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f !important;text-decoration:underline}.sp-palette span:hover,.sp-palette span.sp-thumb-active{border-color:#000}.sp-preview,.sp-alpha,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-preview-inner,.sp-alpha-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)} ` const full = ` [class*="chat-box-message__box"]{ padding: 1px 5px 1px 5px!important; } ` const alt = ` [class^="chat-box-body___"]{ padding: 0 0 0 5px!important; } [class*="chat-box-message__box"]{ padding: 1px 5px 1px 0!important; background: var(--chat-box-bg)!important; display: inline-block!important; } [class*="chat-box-message--"]{ margin-bottom: 2px!important; } [class*="chat-box-message--self"]{ background: var(--chat-box-bg)!important; justify-content: flex-start!important; } [class*="chat-box-message--self"]>[class*="chat-box-message"]>p{ color: var(--chat-box-body-message)!important; } [class*="chat-box-message__sender"]{ display: inline!important; font-weight: 700!important; font-size: .75rem; margin-right: 2px!important; align-self: baseline; } ` var settings = {} var chatId = {} var temp = {} var userid = 0 var customColor = "" var activeStyle = "" if(localStorage.chatSettings === undefined){ localStorage.chatSettings = JSON.stringify({'version':'full'}) settings = JSON.parse(localStorage.chatSettings) }else{ settings = JSON.parse(localStorage.chatSettings); if(!('version' in settings)){ temp = {} temp.version = 'full' $.extend(true, settings, temp) localStorage.chatSettings = JSON.stringify(settings); } } if(settings.version == 'full'){ activeStyle = GM_addStyle(sharedStyles+full) }else if(settings.version == 'alt'){ activeStyle = GM_addStyle(sharedStyles+alt) } xhook.after(function(request, response) { if(request.url.match(/private/)){ response.clone().text().then((text) => { var data = JSON.parse(text) if(data.hasOwnProperty('members')){ $.each(data['members'], function(i, v){ if(data['members'][i]['user_id'] !== $('ul[class^="settings-menu"]').find('.link')[0].children[0].href.split("=")[1] && data['members'][i]['profile_url'].indexOf('profile') !== -1){ chatId[data['members'][i]['nickname']] = data['members'][i]['user_id'] } }) } }) load() } if(request.url.match(/show_read_receipt/)){ response.clone().text().then((text) => { var data = JSON.parse(text) var time = new Date(data['last_message']['created_at']).toJSON().replace('T', ' ').slice(0, -5) if(data['name'] == 'private-chat' && data['last_message'] != null && 'created_at' in data['last_message']){ $.each(data['members'], function(i, v){ if(data['members'][i]['user_id'] !== $('ul[class^="settings-menu"]').find('.link')[0].children[0].href.split("=")[1] && $('p[class*="chat-box-header__name"]').length !== 0){ $.each($('p[class*="chat-box-header__name"]'), function(o, t){ if($('p[class*="chat-box-header__name"]')[o].innerText == data['members'][i]['nickname'] && $($('p[class*="chat-box-header__name"]')[o].parentElement.parentElement).children('#tStamp').length < 1){ $($('p[class*="chat-box-header__name"]')[o].parentElement).after('<p id="tStamp" class="tStamp">Last Message: '+time+'</p>') } else if($('p[class*="chat-box-header__name"]')[o].innerText == data['members'][i]['nickname'] && $($('p[class*="chat-box-header__name"]')[o].parentElement.parentElement).children('#tStamp').length == 1){ $($('p[class*="chat-box-header__name"]')[o].parentElement).children('#tStamp').replaceWith('<p id="tStamp" class="tStamp">Last Message: '+time+'</p>') } }) } }) }else{ if($('p[class*="chat-box-header__name"]').length !== 0){ $.each($('p[class*="chat-box-header__name"]'), function(o, t){ if($('p[class*="chat-box-header__name"]')[o].innerText == data['name'] && $($('p[class*="chat-box-header__name"]')[o].parentElement.parentElement).children('#tStamp').length < 1){ $($('p[class*="chat-box-header__name"]')[o].parentElement).after('<p id="tStamp" class="tStamp">Last Message: '+time+'</p>') } else if($('p[class*="chat-box-header__name"]')[o].innerText == data['name'] && $($('p[class*="chat-box-header__name"]')[o].parentElement.parentElement).children('#tStamp').length == 1){ $($('p[class*="chat-box-header__name"]')[o].parentElement).children('#tStamp').replaceWith('<p id="tStamp" class="tStamp">Last Message: '+time+'</p>') } }) } } }) } }); /*if($(window).width() < 600){ $($('button[title*="Faction"]')[0]).detach().insertAfter($('div[class*="group-minimized-chat-box___"]')).wrap('<div class="mobileFac"></div>') }*/ function load(){ $.each($('img[alt^="chat-avatar"][class*="avatar--medium"]'), function(i, v){ var id = $('img[class*="avatar--medium"]')[i].src.split("-")[$('img[alt^="chat-avatar"][class*="avatar--medium"]')[i].src.split("-").length-1].split(".")[0] if($('img[class*="avatar--medium"]')[i].src.indexOf('profile') !== -1){ id = chatId[$('img[class*="avatar--medium"]')[i].parentElement.parentElement.nextSibling.innerText] } if($('img[alt^="chat-avatar"][class*="avatar--medium"]')[i].parentElement.parentElement.className.indexOf('minimized') !== -1 && $(window).width() >= 600 || $('img[alt^="chat-avatar"][class*="avatar--medium"]')[i].parentElement.parentElement.className.indexOf('minimized') == -1){ $('img[alt^="chat-avatar"][class*="avatar--medium"]')[i].parentElement.href = "https://www.torn.com/profiles.php?XID="+id } }) } var blehTarget = $('div[id^="chatRoot"]')[0]; var blehConfig = { attributes: false, childList: true, characterData: false, subtree: true }; var bleh = new MutationObserver(function(mutations3) { var ChatTarget = $('div[class^="group-chat-box"]')[0]; var ChatConfig = { attributes: false, childList: true, characterData: false, subtree: false }; var Chat = new MutationObserver(function(mutations2) { if(mutations2[0].addedNodes.length == 1 && mutations2[0].addedNodes[0].className.indexOf("unread-message-count") !== -1 && $(mutations2[0].addedNodes)[0].find('[class*="chat-box-header__info-btn___"]').indexOf('btn') !== -1){ addMini(mutations2) } }) Chat.observe(ChatTarget, ChatConfig); if($(window).width() >= 600){ var minChatTarget = $('div[class^="group-minimized-chat-box"]')[0]; var minChatConfig = { attributes: false, childList: true, characterData: false, subtree: true }; var minChat = new MutationObserver(function(mutations1) { if(mutations1[0].addedNodes.length == 1 && mutations1[0].addedNodes[0].className.indexOf("unread-message-count") !== -1 || mutations1[0].addedNodes.length == 1){ addMini(mutations1) } }) minChat.observe(minChatTarget, minChatConfig); } var addTarget = $('div[class*="group-chat-box___"]')[0]; var addConfig = { attributes: false, childList: true, characterData: false, subtree: true }; var add = new MutationObserver(function(mutations) { $('div[class*="chat-box-message___"]').each(function( index ) { userid = $(this).find('[class*="hrefLink___"]')[0].href.split('=')[1] $($(this).find('[class*="chat-box-message"]')[0]).attr("data-userid", userid) if(userid in settings && settings.version == 'full'){ $('div[data-userid="'+userid+'"]').css("background-color", settings[userid]['bg']) } else if(userid in settings && settings.version == 'alt'){ $('div[data-userid="'+userid+'"]').css('cssText', 'background-color:'+settings[userid]['bg']+'!important;') } if(userid in settings){ $('div[data-userid="'+userid+'"]').find("p").css('cssText', 'color:'+settings[userid]['fc']+'!important;'); $('div[data-userid="'+userid+'"]').find("a").css("color", settings[userid]['fc']); } if(!($('script[uid]').attr("uid") in settings)){ if(settings.version == 'alt'){ $('div[data-userid="'+$('script[uid]').attr("uid")+'"]').find("p").css("cssText", "color:var(--chat-box-body-message)!important; display:inline"); } } $('div[class*="chat-box-message__box"] p').css("font-size", settings.fs+"rem"); $('div[class*="chat-box-message__box"] a').css("font-size", settings.fs+"rem"); $("[class^=chat-box-body___]" ).each(function(index){ (this).scrollTop = (this).scrollHeight - (this).clientHeight; }); }) }) add.observe(addTarget, addConfig); bleh.disconnect(); }) bleh.observe(blehTarget, blehConfig); function saveId(uid, type, color){ temp = {} temp[uid] = {[type]:color} $.extend(true, settings, temp) localStorage.chatSettings = JSON.stringify(settings); } function removeId(uid, type){ $('style[id*="'+type+$('script[uid]').attr("uid")+'"]').remove() if(settings[uid]){ delete settings[uid][type] if(Object.keys(settings[uid]).length == 0){ delete settings[uid] } localStorage.chatSettings = JSON.stringify(settings) } } function addMini(mutations){ if($(mutations)[0].target.className.indexOf('minimized') !== -1 && $(window).width() >= 600 || $(mutations)[0].target.className.indexOf('minimized') == -1 && $(window).width() < 600){ var id = $(mutations[0].addedNodes[0]).find('img[alt^="chat-avatar"]')[0].src.split("-")[$(mutations[0].addedNodes[0]).find('img[alt^="chat-avatar"]')[0].src.split("-").length-1].split(".")[0] if($(mutations[0].addedNodes[0]).find('img[alt^="chat-avatar"]')[0].src.indexOf('profile') !== -1){ id = chatId[$(mutations)[0].addedNodes[0].children[0].children[1].children[0].innerText] } $(mutations[0].addedNodes[0]).find('img[alt^="chat-avatar"]')[0].parentElement.href = "https://www.torn.com/profiles.php?XID="+id } } function options(){ var bgy = getComputedStyle(document.documentElement).getPropertyValue('--chat-box-body-message-box-self') var fcy = "" if(settings.version == 'full'){ fcy = "#f6f6f6" }else{ fcy = "var(--chat-box-body-message)" } var bgt = getComputedStyle(document.documentElement).getPropertyValue('--chat-box-body-message-box') var fct = getComputedStyle(document.documentElement).getPropertyValue('--chat-box-body-message') var fs = '0.75' if($('script[uid]').attr("uid") in settings){ if('bg' in settings[$('script[uid]').attr("uid")]){ bgy = settings[$('script[uid]').attr("uid")]['bg'] } if('fc' in settings[$('script[uid]').attr("uid")]){ fcy = settings[$('script[uid]').attr("uid")]['fc'] } } if($('div[class^="chat-box-options___"]').length != 0){ if($($('div[class^="chat-box-options___"]')[0].parentElement).find('[class^="avatar__avatar-status-wrapper"]')[0].href.split("=")[1] in settings){ if('bg' in settings[$($('div[class^="chat-box-options___"]')[0].parentElement).find('[class^="avatar__avatar-status-wrapper"]')[0].href.split("=")[1]]){ bgt = settings[$($('div[class^="chat-box-options___"]')[0].parentElement).find('[class^="avatar__avatar-status-wrapper"]')[0].href.split("=")[1]]['bg'] } if('fc' in settings[$($('div[class^="chat-box-options___"]')[0].parentElement).find('[class^="avatar__avatar-status-wrapper"]')[0].href.split("=")[1]]){ fct = settings[$($('div[class^="chat-box-options___"]')[0].parentElement).find('[class^="avatar__avatar-status-wrapper"]')[0].href.split("=")[1]]['fc'] } } } if('fs' in settings){ fs = settings['fs'] } if($('div[class^="chat-box-options___"]').length == 1 && $('div[class^="chat-box-options___"] [id^="chatOptions"]').length == 0){ $('div[class^="chat-box-options___"]').children().append('<hr class="delimiter-999 m-top10 m-bottom10"><div id="chatOptions"><div id="optionsLabel" class="h6">Options</div><div class="optionsRowB"><input type="range" min="0.1" max="1.5" value="'+fs+'" step="0.01" class="slider" id="myRange"><p class="typography___Dc5WV body4 color-#333333">Font Size</p></div><div id="optionsLabel" class="h7">You</div><div class="optionsRow"><div><input id="custom" data-color="'+bgy+'" class="bgpickerYou" style="display: none;"><p class="typography___Dc5WV body4 color-#333333">Background</p></div><div><input id="custom" data-color="'+fcy+'" class="fcpickerYou" style="display: none;"><p class="typography___Dc5WV body4 color-#333333 chat-box-options__label___QSXin">Font</p></div></div><div id="optionsLabel" class="h7">Them</div><div class="optionsRow"><div><input id="custom" data-color="'+bgt+'" class="bgpickerThem" style="display: none;"><p class="typography___Dc5WV body4 color-#333333">Background</p></div><div><input id="custom" data-color="'+fct+'" class="fcpickerThem" style="display: none;"><p class="typography___Dc5WV body4 color-#333333 chat-box-options__label___QSXin">Font</p></div></div></div>') } if($('div[class^="settings-panel___"]').length == 1 && $('div[class^="settings-panel___"] [id^="chatOptions"]').length == 0){ $('<hr class="delimiter-999 m-top10 m-bottom10"><div id="chatOptions"><div id="optionsLabel" class="h6">Chat Options</div><div class="optionsRowC" style="display: flex; justify-content: space-evenly;"><div style="display: flex; align-items: center;"><input type="checkbox" id="full" style="margin-right: 5px;"><p>Full Chat</p></div><div style="display: flex; align-items: center;"><input type="checkbox" id="alt" style="margin-right: 5px;"><p>Alt Chat</p></div></div><div class="optionsRowB"><input type="range" min="0.1" max="1.5" value="'+fs+'" step="0.01" class="slider" id="myRange"><p class="typography___Dc5WV body4 color-#333333">Font Size</p></div><div id="optionsLabel" class="h7">You</div><div class="optionsRow"><div><input id="custom" data-color="'+bgy+'" class="bgpickerYou" style="display: none;"><p class="typography___Dc5WV body4 color-#333333">Background</p></div><div><input id="custom" data-color="'+fcy+'" class="fcpickerYou" style="display: none;"><p class="typography___Dc5WV body4 color-#333333 chat-box-options__label___QSXin">Font</p></div></div><div id="optionsLabel" class="h7">Them</div><input id="chatInput" type="text" placeholder="Player ID here"/><div class="optionsRow"><div><input id="custom" data-color="'+getComputedStyle(document.documentElement).getPropertyValue('--chat-box-body-message-box')+'" class="bgpickerThem" style="display: none;"><p class="typography___Dc5WV body4 color-#333333">Background</p></div><div><input id="custom" data-color="'+getComputedStyle(document.documentElement).getPropertyValue('--chat-box-body-message')+'" class="fcpickerThem" style="display: none;"><p class="typography___Dc5WV body4 color-#333333 chat-box-options__label___QSXin">Font</p></div></div></div>').appendTo($('div[class*="settings-panel__section___"]')[0]) $('#' + settings.version).prop({'checked':true,'disabled':true}) $('div[class*="settings-panel__section___"] input[type*="checkbox"]').on('click', function(event) { $(this).prop('disabled', true); check(event.target.id) location.reload() }) } $("#custom, #custom1").spectrum({ type: "color", showPalette: false, showInput: true, showAlpha: true, allowEmpty: true, clickoutFiresChange: true, closeOnClickout: true, showInitial: true, showButtons: false, cancelText: "cancel", chooseText: "choose", preferredFormat: "rgb", }); $(".bgpickerYou").on('move.spectrum', function(e, tinycolor){ $('style[id*="bg'+$('script[uid]').attr("uid")+'"]').remove() if(e.target.value !== ""){ customColor = tinycolor.toRgbString() if(settings.version == 'full'){ $('div[class*="chat-box-message__box--self"]').css("background-color", customColor); }else{ $('div[class*="chat-box-message__box--self"]').css('cssText', 'background-color:'+customColor+'!important;'); } }else{ $('div[class*="chat-box-message__box--self"]').css('background-color', "") } }); $(".bgpickerYou").on('change.spectrum', function(e, tinycolor){ if(e.target.value !== ""){ customColor = tinycolor.toRgbString() $('<style id="bg'+$('script[uid]').attr("uid")+'">div[class*="chat-box-body__message-box--self___"] { background:none!important; } div[class*="chat-box-body__message-box--self___"] { background-color:'+customColor+'!important; } </style>' ).appendTo( "head" ) saveId($('script[uid]').attr("uid"), 'bg', customColor) }else{ removeId($('script[uid]').attr("uid"), 'bg') } }); $(".bgpickerThem").on('move.spectrum', function(e, tinycolor){ if(e.currentTarget.parentElement.parentElement.parentElement.parentElement.parentElement.className.indexOf('chat-box-options') != -1){ if($(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-message__box--self"]')).length != 0){ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-message__box--self"]'))[0].getAttribute("data-userid") }else{ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="avatar__avatar-status-wrapper"]'))[0].href.split('=')[1] } }else{ userid = $('input[id^="chatInput"]')[0].value } $('style[id*="bg'+userid+'"]').remove() if(e.target.value !== ""){ customColor = tinycolor.toRgbString() if(settings.version == 'full'){ $('div[data-userid="'+userid+'"]').css("background-color", customColor); }else{ $('div[data-userid="'+userid+'"]').css('cssText', 'background-color:'+customColor+'!important;'); } }else{ $('div[data-userid="'+userid+'"]').css("background-color", ""); } }); $(".bgpickerThem").on('change.spectrum', function(e, tinycolor){ if(e.currentTarget.parentElement.parentElement.parentElement.parentElement.parentElement.className.indexOf('chat-box-options') !== -1){ if($(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-message__box--self"]')).length != 0){ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-message__box--self"]'))[0].getAttribute("data-userid") }else{ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="avatar__avatar-status-wrapper"]'))[0].href.split('=')[1] } }else{ userid = $('input[id^="chatInput"]')[0].value } if(e.target.value !== "" && userid !== ""){ customColor = tinycolor.toRgbString() $('<style id="bg'+userid+'">div[data-userid="'+userid+'"] { background-color:'+customColor+'!important; }</style>' ).appendTo( "head" ) saveId(userid, 'bg', customColor) }else{ removeId(userid, 'bg') } }); $(".fcpickerYou").on('move.spectrum', function(e, tinycolor){ $('style[id*="fc'+$('script[uid]').attr("uid")+'"]').remove() if(settings.version == 'full'){ if(e.target.value !== ""){ customColor = tinycolor.toRgbString() $('div[class*="chat-box-message__box--self___"]').find("p").css("color", customColor) $('div[class*="chat-box-message__box--self___"]').find("a").css("color", customColor) }else{ $('div[class*="chat-box-message__box--self___"]').find("p").css("color", "") $('div[class*="chat-box-message__box--self___"]').find("a").css("color", "") } }else{ if(e.target.value !== ""){ customColor = tinycolor.toRgbString() $('div[class*="chat-box-message__box--self___"]').find("p").css('cssText', 'color:'+customColor+'!important;') $('div[class*="chat-box-message__box--self___"]').find("a").css('cssText', 'color:'+customColor+'!important;') }else{ $('div[class*="chat-box-message__box--self___"]').find("p").css("cssText", "color:var(--chat-box-body-message)!important"); $('div[class*="chat-box-message__box--self___"]').find("a").css("color", "") } } }); $(".fcpickerYou").on('change.spectrum', function(e, tinycolor){ if(e.target.value !== ""){ customColor = tinycolor.toRgbString() $('<style id="fc'+$('script[uid]').attr("uid")+'">div[class*="chat-box-body__message-box--self___"] p { color:'+customColor+'!important; }</style>' ).appendTo( "head" ) $('<style id="fc'+$('script[uid]').attr("uid")+'">div[class*="chat-box-body__message-box--self___"] a { color:'+customColor+'!important; }</style>' ).appendTo( "head" ) saveId($('script[uid]').attr("uid"), 'fc', customColor) }else{ removeId($('script[uid]').attr("uid"), 'fc') } }); $(".fcpickerThem").on('move.spectrum', function(e, tinycolor){ if(e.currentTarget.parentElement.parentElement.parentElement.parentElement.parentElement.className.indexOf('chat-box-options') != -1){ if($(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-body__message-box--self"]')).length != 0){ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-body__message-box--self"]'))[0].getAttribute("data-userid") }else{ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="avatar__avatar-status-wrapper"]'))[0].href.split('=')[1] } }else{ userid = $('input[id^="chatInput"]')[0].value } $('style[id*="fc'+userid+'"]').remove() if(e.target.value !== ""){ customColor = tinycolor.toRgbString() $('div[data-userid="'+userid+'"]').find("p").css("color", customColor); $('div[data-userid="'+userid+'"]').find("a").css("color", customColor); }else{ $('div[data-userid="'+userid+'"]').find("p").css("color", ""); $('div[data-userid="'+userid+'"]').find("a").css("color", ""); } }); $(".fcpickerThem").on('change.spectrum', function(e, tinycolor){ if(e.currentTarget.parentElement.parentElement.parentElement.parentElement.parentElement.className.indexOf('chat-box-options') != -1){ if($(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-body__message-box--self"]')).length != 0){ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="chat-box-body__message-box___"]:not([class*="chat-box-body__message-box--self"]'))[0].getAttribute("data-userid") }else{ userid = $(e.target.parentElement.offsetParent.offsetParent).find($('[class^="avatar__avatar-status-wrapper"]'))[0].href.split('=')[1] } }else{ userid = $('input[id^="chatInput"]')[0].value } if(e.target.value !== "" && userid !== ""){ customColor = tinycolor.toRgbString() $('<style id="fc'+userid+'">div[data-userid="'+userid+'"] p { color:'+customColor+'!important; }</style>' ).appendTo( "head" ) $('<style id="fc'+userid+'">div[data-userid="'+userid+'"] a { color:'+customColor+'!important; }</style>' ).appendTo( "head" ) saveId(userid, 'fc', customColor) }else{ removeId(userid, 'fc') } }); $("#myRange").on('input', function(e){ $('style[id*="fs"]').remove() $('div[class*="chat-box-message__box"] p').css("font-size", e.target.value+"rem"); $('div[class*="chat-box-message__box"] a').css("font-size", e.target.value+"rem"); $('<style id="fs">div[class*="chat-box-message__box"] p, div[class*="chat-box-message__box"] a { font-size:'+e.target.value+"rem!important; }</style>").appendTo('head') $("[class^=chat-box-body___]" ).each(function(index){ (this).scrollTop = (this).scrollHeight - (this).clientHeight; }); temp = {} temp['fs'] = [e.target.value] $.extend(true, settings, temp) localStorage.chatSettings = JSON.stringify(settings); }); $('button[class*="chat-box-options__button"]').on('click', function(e){ $('div[id*="chatOptions"]').hide() }); $('button[class*="chat-box-options__confirmation-button___"]').on('click', function(e){ $('div[id*="chatOptions"]').show() }); $('input[id*="custom"]').on('show.spectrum', function(e){ $('.sp-replacer').addClass('sp-disabled'); $('.sp-replacer').prop('disabled', true); }) $('input[id*="custom"]').on('hide.spectrum', function(e){ $('.sp-replacer').removeClass('sp-disabled'); $('.sp-replacer').prop('disabled', false);; }) } function check(checkbox){ var uncheck = checkbox === 'full' ? 'alt' : 'full'; $('#' + uncheck).prop({'checked':false,'disabled':false}); if($("input[id="+ checkbox +"]:checked").length != 0){ settings.version = checkbox localStorage.chatSettings = JSON.stringify(settings) } } waitForKeyElements('div[class^="chat-box-options___"]', options) waitForKeyElements('div[class*="settings-panel___"]', options)