From e943b54df40f7aab212e818af4942737638174af Mon Sep 17 00:00:00 2001 From: wish Date: Thu, 27 Oct 2022 13:11:56 +1100 Subject: [PATCH] add patch server option --- config.json | 2 ++ config/config.go | 2 ++ server/signserver/dsgn_resp.go | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index f0feb790e..b94d6c868 100644 --- a/config.json +++ b/config.json @@ -5,6 +5,8 @@ "FeaturedWeapons": 2, "DevMode": true, "DevModeOptions": { + "PatchServerManifest": "", + "PatchServerFile": "", "AutoCreateAccount": true, "EnableLauncherServer": false, "HideLoginNotice": false, diff --git a/config/config.go b/config/config.go index 48da57344..5d21c2240 100644 --- a/config/config.go +++ b/config/config.go @@ -30,6 +30,8 @@ type Config struct { // DevModeOptions holds various debug/temporary options for use while developing Erupe. type DevModeOptions struct { + PatchServerManifest string // Manifest patch server override + PatchServerFile string // File patch server override AutoCreateAccount bool // Automatically create accounts if they don't exist HideLoginNotice bool // Hide the Erupe notice on login LoginNotice string // MHFML string of the login notice displayed diff --git a/server/signserver/dsgn_resp.go b/server/signserver/dsgn_resp.go index cbad6405c..3966af8d6 100644 --- a/server/signserver/dsgn_resp.go +++ b/server/signserver/dsgn_resp.go @@ -42,13 +42,23 @@ func (s *Session) makeSignInResp(uid int) []byte { bf := byteframe.NewByteFrame() - bf.WriteUint8(1) // resp_code - bf.WriteUint8(0) // file/patch server count + bf.WriteUint8(1) // resp_code + if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.PatchServerManifest != "" && s.server.erupeConfig.DevModeOptions.PatchServerFile != "" { + bf.WriteUint8(2) + } else { + bf.WriteUint8(0) + } bf.WriteUint8(1) // entrance server count bf.WriteUint8(uint8(len(chars))) // character count bf.WriteUint32(0xFFFFFFFF) // login_token_number bf.WriteBytes([]byte(token)) // login_token bf.WriteUint32(uint32(time.Now().Unix())) // current time + if s.server.erupeConfig.DevMode { + if s.server.erupeConfig.DevModeOptions.PatchServerManifest != "" && s.server.erupeConfig.DevModeOptions.PatchServerFile != "" { + ps.Uint8(bf, s.server.erupeConfig.DevModeOptions.PatchServerManifest, false) + ps.Uint8(bf, s.server.erupeConfig.DevModeOptions.PatchServerFile, false) + } + } ps.Uint8(bf, fmt.Sprintf("%s:%d", s.server.erupeConfig.Host, s.server.erupeConfig.Entrance.Port), false) lastPlayed := uint32(0)