diff --git a/src/server/game/VarMgr.go b/src/server/game/VarMgr.go index 4b52a9be..b8d5a35b 100644 --- a/src/server/game/VarMgr.go +++ b/src/server/game/VarMgr.go @@ -5,7 +5,6 @@ import ( "server/GoUtil" "server/game/mod/card" "server/game/mod/msg" - "sync" "time" ) @@ -15,7 +14,7 @@ type VarMgr struct { type VarData struct { Var map[string]interface{} - UserVar sync.Map + UserVar map[string]*VarUserData ZeroTime int64 } @@ -40,6 +39,9 @@ func (f *VarMgr) Init() { if f.data.(*VarData).Var == nil { f.data.(*VarData).Var = make(map[string]interface{}) } + if f.data.(*VarData).UserVar == nil { + f.data.(*VarData).UserVar = make(map[string]*VarUserData) + } if f.getData().ZeroTime == GoUtil.ZeroTimestamp() { f.ZeroUpdate(&msg.Msg{}) } @@ -68,29 +70,26 @@ func (f *VarMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { } func (f *VarMgr) SetVar(key string, value interface{}) { - f.getData().UserVar.Store(key, value) + f.getData().Var[key] = value } func (f *VarMgr) GetVar(key string) interface{} { - value, _ := f.getData().UserVar.Load(key) - return value + return f.getData().Var[key] } func (f *VarMgr) SetUserVar(key string, value *VarUserData) { - f.getData().UserVar.Store(key, value) + f.getData().UserVar[key] = value } func (f *VarMgr) GetUserVar(key string) *VarUserData { - value, _ := f.getData().UserVar.Load(key) - if value == nil { - value = &VarUserData{} - f.getData().UserVar.Store(key, value) + if v, ok := f.getData().UserVar[key]; ok { + return v } - return value.(*VarUserData) + return nil } func (f *VarMgr) DelVar(key string) { - f.getData().UserVar.Delete(key) + delete(f.getData().Var, key) } func (f *VarMgr) getData() *VarData {