(message string)
| 200 | } |
| 201 | |
| 202 | func BukkitMessageConvert(message string) IChatComponent { |
| 203 | base := ChatMessage("") |
| 204 | |
| 205 | current := base |
| 206 | buff := bytes.NewBufferString("") |
| 207 | for i := 0; i < len(message); i++ { |
| 208 | if message[i] == '&' && len(message) > i+1 { |
| 209 | if (message[i+1] >= '0' && message[i+1] <= '9') || |
| 210 | (message[i+1] >= 'a' && message[i+1] <= 'f') || |
| 211 | message[i+1] == 'r' { |
| 212 | // Create new node |
| 213 | current.Text = buff.String() |
| 214 | n := ChatMessage("") |
| 215 | current.AddExtra(n) |
| 216 | current = n |
| 217 | buff.Reset() |
| 218 | } |
| 219 | |
| 220 | if message[i+1] >= '0' && message[i+1] <= '9' { |
| 221 | current.SetColor(&chatColorIds[message[i+1]-'0']) |
| 222 | } else if message[i+1] >= 'a' && message[i+1] <= 'f' { |
| 223 | current.SetColor(&chatColorIds[message[i+1]-'a'+10]) |
| 224 | } else { |
| 225 | switch message[i+1] { |
| 226 | case 'k': |
| 227 | current.SetObfuscated(true) |
| 228 | case 'l': |
| 229 | current.SetBold(true) |
| 230 | case 'm': |
| 231 | current.SetStrikeThrough(true) |
| 232 | case 'n': |
| 233 | current.SetUnderlined(true) |
| 234 | case 'o': |
| 235 | current.SetItalic(true) |
| 236 | case 'r': |
| 237 | current.SetColor(&ChatColorWhite) |
| 238 | } |
| 239 | } |
| 240 | i += 1 |
| 241 | } else { |
| 242 | buff.WriteByte(message[i]) |
| 243 | } |
| 244 | } |
| 245 | |
| 246 | return base |
| 247 | } |
| 248 | |
| 249 | func (p *Player) SendMessage(message IChatComponent) { |
| 250 | msg, err := message.JSON() |
no test coverage detected