- // ==UserScript==
- // @name -:C&C TA Chat Colorize:-
- // @description Let's change the nickname color (chat only) in dependence of the role in the alliance.
- // @namespace http*://prodgame*.alliances.commandandconquer.com/*/index.aspx*
- // @include https://prodgame*.alliances.commandandconquer.com/*/index.aspx*
- // @icon http://i.imgur.com/0dweZMu.png
- // @version 0.1.6
- // @author der_flake
- // ==/UserScript==
- 'use strict';
- (function ()
- {
- var ta_chat_colorize_main = function ()
- {
- function ta_chat_initialize()
- {
- console.log('-:C&C TA Chat Colorize:- loaded');
- var config = {
- colors: [
- {
- name: 'Leader',
- color: '#ff7878'
- },
- {
- name: 'Second Commander',
- color: '#ca91d4'
- },
- {
- name: 'Officer',
- color: '#fdd94b'
- },
- {
- name: 'Veteran',
- color: '#4ec49f'
- },
- {
- name: 'Member',
- color: '#a5f25b'
- },
- {
- name: 'Newbe',
- color: '#a5f25b'
- },
- {
- name: 'Inactive',
- color: '#ababab'
- }
- ],
- append_alliance_name_limit: 15
- };
- var options = {
- colorize_names: true,
- colorize_comments: false,
- append_abbr: true
- };
- // module functions
- var mod = {
- colorize: function () {
- var css_colors = '';
- var role_colors = [
- ];
- var LibData = ClientLib.Data.MainData.GetInstance().get_Alliance();
- // get correct role id
- var alliance_roles = LibData.get_Roles().d;
- for (var akey in alliance_roles)
- {
- for (var ckey in config.colors)
- {
- if (config.colors[ckey].name == alliance_roles[akey].Name) {
- role_colors[alliance_roles[akey].Id] = config.colors[ckey].color;
- }
- }
- }
- // assign styles to the each player of the current alliance
-
- var players = LibData.get_MemberDataAsArray();
- for (var pkey in players)
- {
- var current_player = players[pkey];
- if (typeof role_colors[current_player.Role] != 'undefined')
- {
- if (options.colorize_comments) {
- css_colors += '[color="#a5f25b"] #CHAT_SENDER_' + current_player.Name + ',[color="#a5f25b"] #CHAT_SENDER_' + current_player.Name + ' + * {color: ' + role_colors[current_player.Role] + '}';
- } else {
- css_colors += '[color="#a5f25b"] #CHAT_SENDER_' + current_player.Name + ' {color: ' + role_colors[current_player.Role] + '}';
- }
- }
- }
- append_styles(css_colors);
- },
- /**
- * Append the alliance abbreviation to the player's name
- * @example der_flake -> #RoF der_flake
- */
- add_abbr: function () {
- //get top [append_alliance_name_limit] alliances by rating
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand('RankingGetData', {
- firstIndex: 0,
- lastIndex: config.append_alliance_name_limit - 1,
- view: 1,
- rankingType: 0,
- sortColumn: 2,
- ascending: true
- }, phe.cnc.Util.createEventDelegate(ClientLib.Net.CommandResult, this, function (context, data) {
- if (data !== null)
- {
- for (var i = 0; i < data.a.length; i++)
- {
- var alliance_id = data.a[i]['a'];
- // get alliance players
- ClientLib.Net.CommunicationManager.GetInstance().SendSimpleCommand('GetPublicAllianceInfo', {
- id: alliance_id
- }, phe.cnc.Util.createEventDelegate(ClientLib.Net.CommandResult, this, function (context, alliance_data) {
- var alliance_shortname = alliance_data['a'],
- alliance_players = alliance_data['m'],
- css_names = [
- ];
- for (var akey in alliance_players)
- {
- css_names.push('[color="#4becff"] #CHAT_SENDER_' + alliance_players[akey]['n'] + ':after');
- }
- var temp_css = css_names.join(',') + ' {content: " #' + alliance_shortname + '";opacity: .6;font-size: 11px;}';
- append_styles(temp_css);
- }), null);
- }
- }
- }), null);
- }
- }
- if (options.colorize_names) {
- mod.colorize();
- }
- if (options.append_abbr)
- {
- mod.add_abbr();
- }
- }
- function append_styles(css) {
- document.getElementsByTagName('style') [0].innerHTML += css;
- }
- function tachat_checkIfLoaded() {
- try {
- if (typeof qx != 'undefined') {
- if (qx.core.Init.getApplication() && qx.core.Init.getApplication().getMenuBar()) {
- // @TODO try to find other method to make ClientLib "WORKABLE"
- window.setTimeout(ta_chat_initialize, 15000);
- } else
- window.setTimeout(tachat_checkIfLoaded, 1000);
- } else {
- window.setTimeout(tachat_checkIfLoaded, 1000);
- }
- } catch (e) {
- console.log('tachat_checkIfLoaded: ', e);
- }
- }
- if (/commandandconquer\.com/i.test(document.domain)) {
- window.setTimeout(tachat_checkIfLoaded, 1000);
- }
- }
- var tachatScript = document.createElement('script');
- tachatScript.innerHTML = '(' + ta_chat_colorize_main.toString() + ')();';
- tachatScript.type = 'text/javascript';
- if (/commandandconquer\.com/i.test(document.domain)) {
- document.getElementsByTagName('head') [0].appendChild(tachatScript);
- }
- }) ();