aboutsummaryrefslogtreecommitdiff
path: root/packets/message.go
diff options
context:
space:
mode:
Diffstat (limited to 'packets/message.go')
-rw-r--r--packets/message.go64
1 files changed, 64 insertions, 0 deletions
diff --git a/packets/message.go b/packets/message.go
new file mode 100644
index 0000000..a8e830d
--- /dev/null
+++ b/packets/message.go
@@ -0,0 +1,64 @@
1package packets
2
3import (
4 "fmt"
5
6 "github.com/pektezol/bitreader"
7)
8
9func ParseMessage(reader *bitreader.ReaderType) (status int) {
10 messageType := reader.TryReadInt8()
11 messageTick := reader.TryReadInt32()
12 messageSlot := reader.TryReadInt8()
13 //fmt.Println(messageType, messageTick, messageSlot)
14 switch messageType {
15 case 0x01:
16 //signOn := SignOn{}
17 reader.SkipBytes(76*2 + 8)
18 val := reader.TryReadInt32()
19 reader.SkipBytes(int(val))
20 fmt.Printf("[%d] (%d) {%d} SignOn: \n", messageTick, messageType, messageSlot)
21 return 1
22 case 0x02:
23 reader.SkipBytes(76*2 + 8)
24 val := reader.TryReadInt32()
25 reader.SkipBytes(int(val))
26 // fmt.Printf("[%d] (%d) Packet: \n", messageTick, messageType)
27 return 2
28 case 0x03:
29 fmt.Printf("[%d] (%d) SyncTick: \n", messageTick, messageType)
30 return 3
31 case 0x04:
32 val := reader.TryReadInt32()
33 reader.SkipBytes(int(val))
34 // fmt.Printf("[%d] (%d) ConsoleCmd: \n", messageTick, messageType)
35 return 4
36 case 0x05:
37 reader.SkipBytes(4)
38 val := reader.TryReadInt32()
39 reader.SkipBytes(int(val))
40 // fmt.Printf("[%d] (%d) UserCmd: \n", messageTick, messageType)
41 return 5
42 case 0x06:
43 val := reader.TryReadInt32()
44 reader.SkipBytes(int(val))
45 // fmt.Printf("[%d] (%d) DataTables: \n", messageTick, messageType)
46 return 6
47 case 0x07:
48 fmt.Printf("[%d] (%d) Stop: \n", messageTick, messageType)
49 return 7
50 case 0x08:
51 reader.SkipBytes(4)
52 val := reader.TryReadInt32()
53 reader.SkipBytes(int(val))
54 // fmt.Printf("[%d] (%d) CustomData: \n", messageTick, messageType)
55 return 8
56 case 0x09:
57 val := reader.TryReadInt32()
58 reader.SkipBytes(int(val))
59 // fmt.Printf("[%d] (%d) StringTables: \n", messageTick, messageType)
60 return 9
61 default:
62 return 0
63 }
64}