47 lines
2.0 KiB
Go
Raw Normal View History

2025-04-24 20:39:31 +08:00
package projects
import (
2025-04-30 15:46:14 +08:00
"admin/apps/game/domain/entity"
2025-04-24 20:39:31 +08:00
"admin/apps/game/domain/projects/smdl"
"admin/internal/consts"
)
2025-05-16 15:51:22 +08:00
var debugDisableAllHook = false // 调试用关闭所有项目钩子调用可以在没有远程游戏api服务器时调一些gm后台本地的增删改查等逻辑
2025-04-24 20:39:31 +08:00
// 注册各个项目所有gm资源操作后的回调例如后台添加了白名单可以在回调里加上通知项目内的服务
var projectsResourceHookMgr = map[string]map[string]any{
2025-04-26 13:50:26 +08:00
// 神魔大陆项目注册的资源钩子回调
consts.RegisteredProjectId_shenmodalu: {
2025-04-28 15:56:04 +08:00
consts.ResourcesName_Server: &smdl.ServerHook{}, // 查看了数据库所有数据之后还要连alisrv获取所有进程运行情况
consts.ResourcesName_Role: &smdl.RoleHook{}, // 所有角色走神魔大陆api直接获取
consts.ResourcesName_Account: &smdl.AccountHook{}, // 所有角色走神魔大陆api直接获取
consts.ResourcesName_Ban: &smdl.BanHook{}, // 所有角色走神魔大陆api直接获取
consts.ResourcesName_MailGlobal: &smdl.MailGlobalHook{}, // 所有角色走神魔大陆api直接获取
consts.ResourcesName_MailRole: &smdl.MailRoleHook{}, // 所有角色走神魔大陆api直接获取
2025-05-07 15:03:19 +08:00
consts.ResourcesName_WhiteList: &smdl.WhitelistHook{}, // 所有角色走神魔大陆api直接获取
2025-04-24 20:39:31 +08:00
},
}
// 注册各个项目所有增删改字段可选项的钩子
var projectsValueChoicesGetHook = map[string]IGetAllValueChoicesHook{
consts.RegisteredProjectId_shenmodalu: &smdl.Items{},
}
2025-04-30 15:46:14 +08:00
func GetProjectResourceHook(project *entity.Project, resource string) any {
2025-05-16 15:51:22 +08:00
if debugDisableAllHook {
return nil
}
2025-04-30 15:46:14 +08:00
projectResourceHooks, find := projectsResourceHookMgr[project.Po.ProjectType]
2025-04-24 20:39:31 +08:00
if !find {
return nil
}
2025-04-30 15:46:14 +08:00
return projectResourceHooks[resource]
2025-04-24 20:39:31 +08:00
}
func GetProjectValueChoicesGetHook(projectId string) IGetAllValueChoicesHook {
2025-05-16 15:51:22 +08:00
if debugDisableAllHook {
return nil
}
2025-04-24 20:39:31 +08:00
return projectsValueChoicesGetHook[projectId]
}