diff --git a/exec/load/ircbot_functions.js b/exec/load/ircbot_functions.js index 2c438c616ad749a1261bf26dfd43e75e3b52aefc..34bf4e3b73172f19bf27e1c7c1a44aa042f24b72 100644 --- a/exec/load/ircbot_functions.js +++ b/exec/load/ircbot_functions.js @@ -330,11 +330,26 @@ function ctrl_a_to_mirc(s) { var ctrl_a = false; var bright = false; var last_colour = ''; + var fg = 15; + var set_fg = false; var ret = ''; - function add_fg_colour(nn, nb, c) { - ret += ascii(3) + (bright ? nb : nn); + function add_fg(nn, nb, c) { + ret += ascii(3); + if (bright) { + fg = nb; + ret += nb; + } else { + fg = nn; + ret += nn; + } last_colour = c.toUpperCase(); + set_fg = true; + } + + function add_bg(c) { + if (!set_fg) ret += ascii(3) + fg; + ret += ',' + c; } s = s.split(''); @@ -353,28 +368,52 @@ function ctrl_a_to_mirc(s) { s.unshift('\1'); break; case 'K': - add_fg_colour(1, 14, c); + add_fg(1, 14, c); break; case 'R': - add_fg_colour(4, 7, c); // Red -> light red, high red -> orange + add_fg(4, 7, c); // Red -> light red, high red -> orange break; case 'G': - add_fg_colour(3, 9, c); + add_fg(3, 9, c); break; case 'Y': - add_fg_colour(5, 8, c); + add_fg(5, 8, c); break; case 'B': - add_fg_colour(2, 12, c); + add_fg(2, 12, c); break; case 'M': - add_fg_colour(6, 13, c); + add_fg(6, 13, c); break; case 'C': - add_fg_colour(10, 11, c); + add_fg(10, 11, c); break; case 'W': - add_fg_colour(15, 0, c); + add_fg(15, 0, c); + break; + case '0': + add_bg(1); + break; + case '1': + add_bg(4); + break; + case '2': + add_bg(3); + break; + case '3': + add_bg(5); + break; + case '4': + add_bg(2); + break; + case '5': + add_bg(6); + break; + case '6': + add_bg(10); + break; + case '7': + add_bg(14); break; default: break;