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