-
-
Notifications
You must be signed in to change notification settings - Fork 91
/
map.go
99 lines (91 loc) · 2.53 KB
/
map.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package text
import "strings"
const (
black = "§0"
darkBlue = "§1"
darkGreen = "§2"
darkAqua = "§3"
darkRed = "§4"
darkPurple = "§5"
gold = "§6"
grey = "§7"
darkGrey = "§8"
blue = "§9"
green = "§a"
aqua = "§b"
red = "§c"
purple = "§d"
yellow = "§e"
white = "§f"
darkYellow = "§g"
obfuscated = "§k"
bold = "§l"
strikethrough = "§m"
underline = "§n"
italic = "§o"
reset = "§r"
)
const (
ansiBlack = "\x1b[38;5;16m"
ansiDarkBlue = "\x1b[38;5;19m"
ansiDarkGreen = "\x1b[38;5;34m"
ansiDarkAqua = "\x1b[38;5;37m"
ansiDarkRed = "\x1b[38;5;124m"
ansiDarkPurple = "\x1b[38;5;127m"
ansiGold = "\x1b[38;5;214m"
ansiGrey = "\x1b[38;5;145m"
ansiDarkGrey = "\x1b[38;5;59m"
ansiBlue = "\x1b[38;5;63m"
ansiGreen = "\x1b[38;5;83m"
ansiAqua = "\x1b[38;5;87m"
ansiRed = "\x1b[38;5;203m"
ansiPurple = "\x1b[38;5;207m"
ansiYellow = "\x1b[38;5;227m"
ansiWhite = "\x1b[38;5;231m"
ansiDarkYellow = "\x1b[38;5;226m"
ansiObfuscated = ""
ansiBold = "\x1b[1m"
ansiStrikethrough = "\x1b[9m"
ansiUnderline = "\x1b[4m"
ansiItalic = "\x1b[3m"
ansiReset = "\x1b[m"
)
var m = map[string]string{
black: ansiBlack,
darkBlue: ansiDarkBlue,
darkGreen: ansiDarkGreen,
darkAqua: ansiDarkAqua,
darkRed: ansiDarkRed,
darkPurple: ansiDarkPurple,
gold: ansiGold,
grey: ansiGrey,
darkGrey: ansiDarkGrey,
blue: ansiBlue,
green: ansiGreen,
aqua: ansiAqua,
red: ansiRed,
purple: ansiPurple,
yellow: ansiYellow,
white: ansiWhite,
darkYellow: ansiDarkYellow,
obfuscated: ansiObfuscated,
bold: ansiBold,
strikethrough: ansiStrikethrough,
underline: ansiUnderline,
reset: ansiReset,
italic: ansiItalic,
}
// minecraftReplacer and ansiReplacer are used to translate ANSI formatting codes to Minecraft formatting
// codes and vice versa.
var minecraftReplacer, ansiReplacer *strings.Replacer
func init() {
var minecraftToANSI []string
var ansiToMinecraft []string
for minecraftCode, ansiCode := range m {
if ansiCode != ansiObfuscated {
ansiToMinecraft = append(ansiToMinecraft, ansiCode, minecraftCode)
}
minecraftToANSI = append(minecraftToANSI, minecraftCode, ansiCode)
}
minecraftReplacer, ansiReplacer = strings.NewReplacer(minecraftToANSI...), strings.NewReplacer(ansiToMinecraft...)
}