msg.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package msg
  2. import (
  3. "fmt"
  4. "os"
  5. "reflect"
  6. "strings"
  7. "github.com/name5566/leaf/log"
  8. "github.com/name5566/leaf/network/protobuf"
  9. )
  10. var Processor = protobuf.NewProcessor()
  11. type MsgInfo struct {
  12. ID uint16
  13. Name string
  14. }
  15. var msgList []MsgInfo
  16. func init() {
  17. Processor.Register(&Hello{})
  18. Processor.Register(&ReqLogin{})
  19. Processor.Register(&ResLogin{})
  20. Processor.Register(&EnterHall{})
  21. Processor.Register(&LeaveHall{})
  22. Processor.Register(&ResJoinRoom{})
  23. Processor.Register(&ReqJoinRoom{})
  24. Processor.Register(&PlayList{})
  25. Processor.Register(&Shop{})
  26. Processor.Register(&ReqGameInfo{})
  27. Processor.Register(&ResGameInfo{})
  28. Processor.Register(&TeenPattiRoomList{})
  29. Processor.Register(&TeenPattiRoom{})
  30. Processor.Register(&ReqDealCard{})
  31. Processor.Register(&ReqPlayerAction{})
  32. Processor.Register(&ResPlayerOptAction{})
  33. // Processor.Register(&PlayerOptType{})
  34. // Processor.Register(&PlayerOpt{})
  35. Processor.Register(&ReqRound{})
  36. Processor.Register(&ReqBet{})
  37. // Processor.Register(&MsgError{})
  38. Processor.Register(&ReqPlayerList{})
  39. Processor.Register(&ReqResult{})
  40. Processor.Register(&ReqRoomTipsMessage{})
  41. Processor.Register(&ReqHeartBeat{})
  42. Processor.Register(&ResHeartBeat{})
  43. Processor.Register(&NextRound{})
  44. Processor.Register(&ReqLeaveRoom{})
  45. Processor.Register(&ReqUserInfo{})
  46. Processor.Register(&SiteShowResult{})
  47. Processor.Register(&ReqInsufficientPoints{})
  48. Processor.Range(func(id uint16, t reflect.Type) {
  49. log.Debug("消息ID: %d, 消息类型: %s\n", id, t.Elem().Name())
  50. msgList = append(msgList, MsgInfo{
  51. ID: id,
  52. Name: t.Elem().Name(),
  53. })
  54. // fmt.Printf("消息ID: %d, 消息类型: %s\n", id, t.Elem().Name())
  55. })
  56. generateTSCode()
  57. }
  58. func generateTSCode() {
  59. var tsCode strings.Builder
  60. tsCode.WriteString("// 自动生成的消息ID映射\n")
  61. tsCode.WriteString("export enum MsgID {\n")
  62. for _, msg := range msgList {
  63. tsCode.WriteString(fmt.Sprintf(" %s = %d,\n", msg.Name, msg.ID))
  64. }
  65. tsCode.WriteString("}\n")
  66. // 写入文件
  67. err := os.WriteFile("/home/zjh/teen_patti/bin/client_msg/msg.ts", []byte(tsCode.String()), 0644)
  68. if err != nil {
  69. log.Error("生成 TypeScript 代码失败: %v", err)
  70. }
  71. }