| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- package main
- import (
- "encoding/json"
- "log"
- "os"
-
- "battlecamp-go-server/stomp"
- "battlecamp-go-server/flag"
- "battlecamp-go-server/events"
- "battlecamp-go-server/player"
- )
- var Server *string
- func main() {
- initLogging()
- log.Println("Game bot version 0.1")
-
- flag.ParseFlags()
- go subscribeToGame()
- subscribeToUpdate()
- }
- func subscribeToGame() {
- sub := stomp.Subscribe("game")
-
- for {
- announcement := <- sub
- gs := new(events.GameStart)
- json.Unmarshal(announcement.Body, &gs)
- log.Printf("announcement type: %v ", gs.Type)
- gameEndChan := make(chan bool)
- if("GAME_START" == gs.Type) {
- go joinGame(gs.GameId, gameEndChan)
- } else {
- gameEndChan <- true
- }
- }
- }
- func subscribeToUpdate() {
- sub := stomp.Subscribe("update")
-
- for {
- announcement := <- sub
- if("vnd.battlecamp.player" == announcement.ContentType) {
- p := new(player.Player)
- json.Unmarshal(announcement.Body, &p)
- playerJoin(p)
- } else {
- pu := new(events.PlayerUpdate)
- json.Unmarshal(announcement.Body, &pu)
- playerUpdate(pu)
- }
- }
- }
- func joinGame(gameId int64, gameEndChan chan bool) {
- //join game
-
- //retrieve board
-
- for {
- select {
- case <-gameEndChan:
- return
- default:
- move()
- }
- }
- }
- func move() {
-
- }
- func playerJoin(p *player.Player) {
-
- }
- func playerUpdate(pu *events.PlayerUpdate) {
-
- }
- func initLogging() {
- logFile, err := os.Create("server.log")
- if err == nil {
- log.SetOutput(logFile)
- } else {
- log.Println("ERROR: Cannot open log file, using console.")
- log.Printf("%v=n", err)
- }
- }
|