chat_system_msg.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package event
  2. import (
  3. "f1-game/internal/enum"
  4. eventBase "f1-game/internal/event/base"
  5. "f1-game/internal/extend/utils"
  6. nameEvent "f1-game/internal/name/event"
  7. "f1-game/internal/pb"
  8. "f1-game/internal/types"
  9. )
  10. type ChatSystemMsg struct {
  11. eventBase.EmptyEvent
  12. params *pb.ParamsTemplate
  13. }
  14. func NewChatSystemMsgByTemplate(playerID int64, paramTemplate *pb.ParamsTemplate) *ChatSystemMsg {
  15. return &ChatSystemMsg{
  16. EmptyEvent: eventBase.NewEmptyEvent(playerID, nameEvent.Chat_SystemMsg),
  17. params: paramTemplate,
  18. }
  19. }
  20. func NewChatSystemMsg(playerID int64, msgType enum.ChatMsgType, asserts types.Assets, points types.Points, params ...any) *ChatSystemMsg {
  21. paramTemplate := &pb.ParamsTemplate{
  22. Type: int32(msgType),
  23. Params: utils.ToStringSlice(params...),
  24. }
  25. if asserts != nil {
  26. assertListProto := asserts.ToAssetListProto()
  27. paramTemplate.Assets = &assertListProto
  28. }
  29. if points != nil {
  30. paramTemplate.Points = points.ToProtos()
  31. }
  32. return &ChatSystemMsg{
  33. EmptyEvent: eventBase.NewEmptyEvent(playerID, nameEvent.Chat_SystemMsg),
  34. params: paramTemplate,
  35. }
  36. }
  37. func (p *ChatSystemMsg) Params() *pb.ParamsTemplate {
  38. return p.params
  39. }