Skip to content

Commit b334fca

Browse files
parse nodedef version and name
1 parent 9ab948d commit b334fca

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

commandclient/debughandler.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ func DebugHandler(cc *CommandClient) error {
2424
if err != nil {
2525
return err
2626
}
27+
case *commands.ServerNodeDefinitions:
28+
fmt.Printf("Nodedefs: %v\n", cmd.Definitions)
2729
case *commands.ServerTimeOfDay:
2830
fmt.Printf("Time of day: %d\n", cmd.TimeOfDay)
2931
case *commands.ServerChatMessage:

commands/parse.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ func Parse(payload []byte) (Command, error) {
4646
cmd = &ServerMedia{}
4747
case ServerCommandAccessDenied:
4848
cmd = &ServerAccessDenied{}
49+
case ServerCommandNodeDefinitions:
50+
cmd = &ServerNodeDefinitions{}
4951
default:
5052
fmt.Printf("Unknown command received: %d\n", commandId)
5153
}

commands/server_node_definitions.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,26 @@ import (
99
)
1010

1111
type NodeDefinition struct {
12-
ID uint16
12+
ID uint16
13+
Version uint8
14+
Name string
1315
}
1416

1517
func (def *NodeDefinition) Parse(data []byte) error {
18+
def.Version = data[0]
19+
20+
offset := 1
21+
data_len := binary.BigEndian.Uint16(data[offset:])
22+
offset += 2
23+
def.Name = string(data[offset : offset+(int(data_len))])
24+
offset += int(data_len)
25+
1626
//TODO: more fields
1727
return nil
1828
}
1929

2030
func (def *NodeDefinition) String() string {
21-
return fmt.Sprintf("{NodeDefinition ID=%d}", def.ID)
31+
return fmt.Sprintf("{NodeDefinition ID=%d,Version=%d,Name=%s}", def.ID, def.Version, def.Name)
2232
}
2333

2434
type ServerNodeDefinitions struct {
@@ -59,10 +69,8 @@ func (p *ServerNodeDefinitions) UnmarshalPacket(payload []byte) error {
5969

6070
offset := 0
6171
for i := 0; i < int(p.Count); i++ {
62-
//fmt.Println(fmt.Sprint(nodedefs_raw[offset : offset+10]))
6372
nodeid := binary.BigEndian.Uint16(nodedefs_raw[offset:])
6473
offset += 2
65-
//fmt.Println(nodeid)
6674

6775
nodedef_size := binary.BigEndian.Uint16(nodedefs_raw[offset:])
6876
offset += 2

0 commit comments

Comments
 (0)