package reddot import ( "go_dreamfactory/comm" "go_dreamfactory/lego/base" "go_dreamfactory/lego/core" "go_dreamfactory/modules" "go_dreamfactory/pb" ) /* 模块名:红点系统 描述:统一获取红点信息 开发:李伟 */ func NewModule() core.IModule { m := new(Reddot) return m } type Reddot struct { modules.ModuleBase service base.IRPCXService smithy comm.ISmithy //铁匠铺 library comm.ILibrary //羁绊 mail comm.Imail //邮件 sociaty comm.ISociaty //工会 pagoda comm.IPagoda horoscope comm.IHoroscope arena comm.IArena //竞技场 friend comm.IFriend gourmet comm.IGourmet viking comm.IViking hunting comm.IHunting api_comp *apiComp mline comm.IMline } //模块名 func (this *Reddot) GetType() core.M_Modules { return comm.ModuleReddot } //模块初始化接口 注册用户创建角色事件 func (this *Reddot) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) { err = this.ModuleBase.Init(service, module, options) this.service = service.(base.IRPCXService) return } func (this *Reddot) Start() (err error) { err = this.ModuleBase.Start() var module core.IModule if module, err = this.service.GetModule(comm.ModuleMline); err != nil { return } this.mline = module.(comm.IMline) if module, err = this.service.GetModule(comm.ModuleSmithy); err != nil { return } this.smithy = module.(comm.ISmithy) if module, err = this.service.GetModule(comm.ModuleFriend); err != nil { return } this.friend = module.(comm.IFriend) if module, err = this.service.GetModule(comm.ModulePagoda); err != nil { return } this.pagoda = module.(comm.IPagoda) if module, err = this.service.GetModule(comm.ModuleHoroscope); err != nil { return } this.horoscope = module.(comm.IHoroscope) if module, err = this.service.GetModule(comm.ModuleArena); err != nil { return } this.arena = module.(comm.IArena) if module, err = this.service.GetModule(comm.ModuleGourmet); err != nil { return } this.gourmet = module.(comm.IGourmet) if module, err = this.service.GetModule(comm.ModuleSociaty); err != nil { return } this.sociaty = module.(comm.ISociaty) if module, err = this.service.GetModule(comm.ModuleMail); err != nil { return } this.mail = module.(comm.Imail) if module, err = this.service.GetModule(comm.ModuleViking); err != nil { return } this.viking = module.(comm.IViking) if module, err = this.service.GetModule(comm.ModuleHunting); err != nil { return } this.hunting = module.(comm.IHunting) if module, err = this.service.GetModule(comm.ModuleLibrary); err != nil { return } this.library = module.(comm.ILibrary) return } //装备组件 func (this *Reddot) OnInstallComp() { this.ModuleBase.OnInstallComp() this.api_comp = this.RegisterComp(new(apiComp)).(*apiComp) } //推送红点 func (this *Reddot) PushReddot(session comm.IUserSession, reddot ...*pb.ReddotItem) (errdata *pb.ErrorData) { if len(reddot) <= 0 { return } session.SendMsg(string(this.GetType()), "change", &pb.ReddotChangePush{Rids: reddot}) return }