60 lines
1.2 KiB
Go
60 lines
1.2 KiB
Go
package player
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/go-redis/redis"
|
|
"github.com/tomas-qstarrs/redimo"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/ddb"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/global"
|
|
"time"
|
|
)
|
|
|
|
var PlayerMgrSington = &PlayerMgr{
|
|
Client: ddb.RedimoClient(),
|
|
}
|
|
|
|
const (
|
|
PLAYER_INFO = "PLAYERINFO[%v-%v]"
|
|
)
|
|
|
|
type PlayerMgr struct {
|
|
*redimo.Client
|
|
Redis *redis.Client
|
|
}
|
|
|
|
func (p *PlayerMgr) ModuleName() string {
|
|
return "PlayerMgr"
|
|
}
|
|
func (p *PlayerMgr) Init() {
|
|
p.Redis = global.RedisClient
|
|
}
|
|
func (p *PlayerMgr) getKey(tn string) string {
|
|
return fmt.Sprintf("%v.%v.Platform[%v]", global.Project, global.Game, tn)
|
|
}
|
|
func (p *PlayerMgr) GetPlayerUid(tn, ops string) uint64 {
|
|
val, err := p.HGET(p.getKey(tn), ops)
|
|
if err != nil {
|
|
logger.Logger.Errorf("get player info error: %v", err)
|
|
return 0
|
|
}
|
|
return uint64(val.Int())
|
|
}
|
|
func (p *PlayerMgr) SetPlayer(tn, ops string, uid uint64) bool {
|
|
_, err := p.HSETNX(p.getKey(tn), ops, redimo.IntValue{I: int64(uid)})
|
|
if err != nil {
|
|
logger.Logger.Errorf("set player err:%v", err)
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
func (p *PlayerMgr) Update() {
|
|
|
|
}
|
|
|
|
func (p *PlayerMgr) Shutdown() {
|
|
|
|
}
|
|
func init() {
|
|
module.RegisteModule(PlayerMgrSington, time.Hour, 0)
|
|
}
|