enent.go 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package event
  2. import (
  3. "sync"
  4. mhayaLogger "github.com/mhaya/logger"
  5. )
  6. type EventManage struct {
  7. eventMap sync.Map
  8. }
  9. var (
  10. instance *EventManage
  11. once sync.Once
  12. )
  13. func GetEventIdMap() *EventManage {
  14. return instance
  15. }
  16. func init() {
  17. once.Do(func() {
  18. instance = &EventManage{
  19. eventMap: sync.Map{},
  20. }
  21. })
  22. instance.AddEvent(new(PlayerLoginEventContent))
  23. }
  24. func (em *EventManage) AddEvent(e Eventer) {
  25. em.eventMap.Store(e.EventName(), e)
  26. }
  27. func (em *EventManage) GetEvent(eventName string) Eventer {
  28. value, exist := em.eventMap.Load(eventName)
  29. if !exist {
  30. return nil
  31. }
  32. return value.(Eventer)
  33. }
  34. func (em *EventManage) PrintAllEvent() {
  35. mhayaLogger.Info("-------------------------------------------------")
  36. em.eventMap.Range(func(key, value any) bool {
  37. mhayaLogger.Infof("[event name = %s]", key)
  38. mhayaLogger.Infof("[event content = %v]", value)
  39. return true
  40. })
  41. mhayaLogger.Info("-------------------------------------------------")
  42. }