]>
Commit | Line | Data |
---|---|---|
c3efd9cc CP |
1 | var ThemeControlCodeMap = {\r |
2 | "C": "\x03",\r | |
3 | "B": "\x02",\r | |
4 | "U": "\x1F",\r | |
5 | "O": "\x0F",\r | |
6 | "$": "$"\r | |
7 | };\r | |
8 | \r | |
9 | function Theme(values) {\r | |
10 | var theme = {};\r | |
11 | for(var k in DefaultTheme)\r | |
12 | theme[k] = DefaultTheme[k];\r | |
13 | \r | |
14 | if(values)\r | |
15 | for(var k in values)\r | |
16 | theme[k] = values[k];\r | |
17 | \r | |
18 | function preprocess(line, useprefix) {\r | |
19 | if(useprefix)\r | |
20 | return theme["PREFIX"] + line;\r | |
21 | \r | |
22 | return line;\r | |
23 | }\r | |
24 | \r | |
25 | for(var k in theme) {\r | |
26 | if(k == "PREFIX")\r | |
27 | continue;\r | |
28 | var data = theme[k];\r | |
29 | \r | |
30 | theme[k] = preprocess(data[0], data[1]);\r | |
31 | }\r | |
32 | \r | |
33 | var dollarReplace = function(x, h) {\r | |
34 | var msg = [];\r | |
35 | var n = x.split("");\r | |
36 | for(var i=0;i<n.length;i++) {\r | |
37 | var c = n[i];\r | |
38 | if(c == "$" && (i <= n.length - 1)) {\r | |
39 | var c2 = n[++i];\r | |
40 | \r | |
41 | var o = ThemeControlCodeMap[c2];\r | |
e2757a91 | 42 | if(!o)\r |
c3efd9cc | 43 | o = h[c2];\r |
e2757a91 CP |
44 | if(o)\r |
45 | msg.push(o);\r | |
c3efd9cc CP |
46 | } else {\r |
47 | msg.push(c);\r | |
48 | }\r | |
49 | }\r | |
50 | \r | |
51 | return msg.join("");\r | |
52 | }\r | |
53 | \r | |
54 | this.message = function(type, data) {\r | |
55 | var msg = theme[type];\r | |
56 | \r | |
57 | //msg = msg.replace("$C", "\x03").replace("$B", "\x02").replace("$U", "\x1F").replace("$O", "\x0F");\r | |
58 | msg = dollarReplace(msg, data);\r | |
59 | \r | |
60 | return msg;\r | |
61 | }\r | |
62 | }\r |