| 219 | } |
| 220 | |
| 221 | func (player *Player) ReadStringLimited(max int) (s string, err error) { |
| 222 | max = (max * 4) + 3 |
| 223 | |
| 224 | length, err := player.ReadVarInt() |
| 225 | if err != nil { |
| 226 | return "", err |
| 227 | } |
| 228 | if length > max { |
| 229 | player.Kick("Invalid packet") |
| 230 | return "", nil |
| 231 | } |
| 232 | buffer := make([]byte, length) |
| 233 | _, err = io.ReadFull(player.io.rdr, buffer) |
| 234 | if err != nil { |
| 235 | return "", err |
| 236 | } |
| 237 | return string(buffer), nil |
| 238 | } |
| 239 | |
| 240 | func (player *Player) ReadNStringLimited(max int) (s string, read int, err error) { |
| 241 | max = (max * 4) + 3 |