fish.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package main
  2. import (
  3. "bet24.com/log"
  4. coreservice "bet24.com/servers/coreservice/client"
  5. "bet24.com/servers/games/fish/config"
  6. common "bet24.com/servers/games/fish/fishcommon"
  7. "bet24.com/servers/games/fish/gamelogic"
  8. "bet24.com/servers/insecureframe/frame"
  9. "bet24.com/servers/insecureframe/gate"
  10. "bet24.com/servers/transaction"
  11. "bet24.com/utils"
  12. "encoding/json"
  13. "fmt"
  14. "math/rand"
  15. "time"
  16. )
  17. func waitInput() {
  18. for {
  19. var cmd string
  20. var param1 string
  21. var param2 string
  22. fmt.Scanf("%s %s %s", &cmd, &param1, &param2)
  23. switch cmd {
  24. case "exit":
  25. gamelogic.Stopping = true
  26. frame.StopServer()
  27. go transaction.DoGameRoomPing(common.GAMEID, 1, config.RoomConfigName)
  28. case "listuser":
  29. gate.DumpUsers()
  30. default:
  31. if !frame.Dump(cmd, param1, param2) {
  32. log.Release("unknown command")
  33. }
  34. }
  35. }
  36. }
  37. func main() {
  38. defer waitInput()
  39. rand.Seed(time.Now().UnixNano())
  40. coreservice.SetServiceAddr(config.Server.ServiceAddr)
  41. config.Run()
  42. utils.SetErrorFile("log/fish/err.log", "fish starting")
  43. //monitor.Run(config.Server.MonitorPort)
  44. gamelogic.Run()
  45. startRoomPing()
  46. }
  47. func startRoomPing() {
  48. if gamelogic.Stopping {
  49. return
  50. }
  51. time.AfterFunc(10*time.Second, startRoomPing)
  52. for i := 0; i < len(config.Rooms.Rooms); i++ {
  53. d, _ := json.Marshal(config.Rooms.Rooms[i].RoomInfoBase)
  54. go transaction.DoGameRoomPing(common.GAMEID, 2, config.Rooms.Rooms[i].RoomName)
  55. frame.UpdateRoomList(config.Rooms.Rooms[i].RoomName, config.Rooms.Rooms[i].RoomDesc,
  56. string(d), i)
  57. }
  58. }