parse messages from client
parent
30495c8302
commit
230702f7a3
@ -0,0 +1,6 @@
|
||||
package main
|
||||
|
||||
type message struct {
|
||||
from int
|
||||
text string
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
type request struct {
|
||||
Cmd string `json:"cmd"`
|
||||
}
|
||||
|
||||
func (r request) parse(msg string) command {
|
||||
var c command
|
||||
switch r.Cmd {
|
||||
case "login":
|
||||
c = new(login)
|
||||
case "death":
|
||||
c = new(death)
|
||||
case "collect-soul":
|
||||
c = new(collectSoul)
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
json.Unmarshal([]byte(msg), &c)
|
||||
return c
|
||||
}
|
||||
|
||||
type vector3 struct {
|
||||
X float64 `json:"x"`
|
||||
Y float64 `json:"y"`
|
||||
Z float64 `json:"z"`
|
||||
}
|
||||
|
||||
type command interface {
|
||||
exec(*server)
|
||||
}
|
||||
|
||||
type collectSoul struct {
|
||||
PlayerName string `json:"playerName"`
|
||||
Position vector3 `json:"position"`
|
||||
}
|
||||
|
||||
func (c *collectSoul) exec(s *server) {
|
||||
}
|
||||
|
||||
type login struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
func (l *login) exec(s *server) {
|
||||
}
|
||||
|
||||
type death struct {
|
||||
Position vector3 `json:"position"`
|
||||
}
|
||||
|
||||
func (d *death) exec(s *server) {
|
||||
}
|
Loading…
Reference in New Issue