game_sync/common/action.go

55 lines
1008 B
Go

package common
import (
"mongo.games.com/goserver/core/logger"
)
const (
A_USER_BLACK = 1 //增加黑名单
)
type Action struct {
ActionID int //执行id
ActionParamInt64 []int //整形参数
ActionParamFloat []float64 //浮点参数
ActionParamString []string //字符串参数
}
var ActionMgrSington = &ActionMgr{
pool: make(map[int]ActionBase),
}
func init() {
}
type ActionMgr struct {
pool map[int]ActionBase
}
func (this *ActionMgr) ActionGroup(need interface{}, action []*Action) bool {
for i := 0; i < len(action); i++ {
this.action(need, action[i])
}
return true
}
func (this *ActionMgr) action(need interface{}, action *Action) bool {
a, ok := this.pool[action.ActionID]
if !ok {
logger.Logger.Warnf("no this action %v", action.ActionID)
return false
}
return a.Action(need, action)
}
func (this *ActionMgr) Register(cid int, c ActionBase) {
this.pool[cid] = c
}
type ActionBase interface {
Action(need interface{}, action *Action) bool
}