ludo.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package main
  2. import (
  3. "bet24.com/log"
  4. coreservice "bet24.com/servers/coreservice/client"
  5. "bet24.com/servers/games/ludo/config"
  6. "bet24.com/servers/games/ludo/gamelogic"
  7. "bet24.com/servers/insecureframe/frame"
  8. "bet24.com/servers/insecureframe/gate"
  9. robotmanager "bet24.com/servers/insecureframe/robot"
  10. "bet24.com/servers/transaction"
  11. "encoding/json"
  12. "fmt"
  13. "math/rand"
  14. "time"
  15. )
  16. func waitInput() {
  17. for {
  18. var cmd string
  19. var param1 string
  20. var param2 string
  21. fmt.Scanf("%s %s %s", &cmd, &param1, &param2)
  22. switch cmd {
  23. case "exit":
  24. gamelogic.Stopping = true
  25. robotmanager.Exit()
  26. frame.StopServer()
  27. go transaction.DoGameRoomPing(gamelogic.GAMEID, 1, config.RoomConfgName)
  28. break
  29. case "listuser":
  30. gate.DumpUsers()
  31. case "robotlist":
  32. robotmanager.Dump()
  33. case "robotWin":
  34. log.Release(config.Rooms.Dump())
  35. default:
  36. if !frame.Dump(cmd, param1, param2) {
  37. log.Release("unknown command")
  38. }
  39. }
  40. }
  41. }
  42. func startRoomPing() {
  43. if gamelogic.Stopping {
  44. return
  45. }
  46. time.AfterFunc(10*time.Second, startRoomPing)
  47. //将本server的Ip和端口写入redis
  48. for i := 0; i < len(config.Rooms.Rooms); i++ {
  49. d, _ := json.Marshal(config.Rooms.Rooms[i].RoomInfoBase)
  50. // fmt.Println(string(d))
  51. go transaction.DoGameRoomPing(gamelogic.GAMEID, 2, config.Rooms.Rooms[i].RoomName)
  52. frame.UpdateRoomList(config.Rooms.Rooms[i].RoomName, config.Rooms.Rooms[i].RoomDesc, string(d), config.Rooms.Rooms[i].RoomID-1)
  53. }
  54. }
  55. func initRoomList() {
  56. for i := 0; i < len(config.Rooms.Rooms); i++ {
  57. d, _ := json.Marshal(config.Rooms.Rooms[i].RoomInfoBase)
  58. // fmt.Println(string(d))
  59. go transaction.DoGameRoomPing(gamelogic.GAMEID, 2, config.Rooms.Rooms[i].RoomName)
  60. frame.UpdateRoomList(config.Rooms.Rooms[i].RoomName, config.Rooms.Rooms[i].RoomDesc, string(d), config.Rooms.Rooms[i].RoomID-1)
  61. }
  62. time.AfterFunc(10*time.Second, startRoomPing)
  63. }
  64. func main() {
  65. defer waitInput()
  66. rand.Seed(time.Now().UnixNano())
  67. coreservice.SetServiceAddr(config.Server.ServiceAddr)
  68. config.Run()
  69. gamelogic.Run()
  70. //monitor.Run(config.Server.MonitorPort)
  71. initRoomList()
  72. }