From 65af33758b4234e0f63e86cfa2b2f4c5fd95f9de Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Wed, 17 Dec 2025 19:45:53 +0800 Subject: [PATCH] =?UTF-8?q?message=20controll=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/message_mgr.go | 36 +++++++++++++++++++++++++++++ src/server/game/server_mod.go | 1 + src/server/game_rpc/admin_server.go | 1 - 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/server/game/message_mgr.go delete mode 100644 src/server/game_rpc/admin_server.go diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go new file mode 100644 index 00000000..3aca0df4 --- /dev/null +++ b/src/server/game/message_mgr.go @@ -0,0 +1,36 @@ +package game + +import ( + "fmt" + "server/game/mod/msg" + "server/pkg/github.com/name5566/leaf/log" +) + +type MessageMgr struct { + *ServerMod +} + +type MessageData struct { + MessageList map[int64][]*msg.Msg +} + +func (m *MessageMgr) MessageMgrInit() { + m.key = MESSAGE_MGR_KEY + m.data = &MessageData{} + // 注册处理函数 + m.init() +} + +type MessageHandlerFunc func(message *msg.Msg) (interface{}, error) + +func (m *MessageMgr) RegisterMessageHandler(hType int, handler MessageHandlerFunc) { + m.RegisterHandler(hType, handler) +} + +func (m *MessageMgr) Handle(msg *msg.Msg) (interface{}, error) { + if fun, ok := m.handler[msg.Type]; ok { + return fun.(MessageHandlerFunc)(msg) + } + log.Error("server mod key:%s handle not exist handle type:%d", m.key, msg.Type) + return nil, fmt.Errorf("server mod handler err") +} diff --git a/src/server/game/server_mod.go b/src/server/game/server_mod.go index 310b5233..b76b4479 100644 --- a/src/server/game/server_mod.go +++ b/src/server/game/server_mod.go @@ -21,6 +21,7 @@ const ( CHAMPSHIP_MGR_KEY = "CHAMPSHIP_MGR" BAN_MGR_KEY = "BAN_MGR" PER_SAVE_TIME = 60 + MESSAGE_MGR_KEY = "MESSAGE_MGR" ) type ServerMod struct { diff --git a/src/server/game_rpc/admin_server.go b/src/server/game_rpc/admin_server.go deleted file mode 100644 index 4930cd7d..00000000 --- a/src/server/game_rpc/admin_server.go +++ /dev/null @@ -1 +0,0 @@ -package gamerpc