From 68de64a05f57fccafd68aaaa381433e7b8fbba92 Mon Sep 17 00:00:00 2001 From: Matthe815 Date: Sun, 5 Nov 2023 19:08:02 -0500 Subject: [PATCH] fix: Fixed issue with seasons not properly displaying on client --- config.json | 10 +++++----- server/channelserver/handlers_quest.go | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/config.json b/config.json index 31629b894..467512410 100644 --- a/config.json +++ b/config.json @@ -17,8 +17,8 @@ "AutoCreateAccount": true, "CleanDB": false, "MaxLauncherHR": false, - "LogInboundMessages": true, - "LogOutboundMessages": true, + "LogInboundMessages": false, + "LogOutboundMessages": false, "MaxHexdumpLength": 256, "DivaEvent": 0, "FestaEvent": -1, @@ -67,7 +67,7 @@ "EnableHiganjimaEvent": false, "EnableNierEvent": false, "DisableRoad": false, - "SeasonOverride": false + "SeasonOverride": true }, "Discord": { "Enabled": false, @@ -120,9 +120,9 @@ ], "Database": { "Host": "localhost", - "Port": 5432, + "Port": 5433, "User": "postgres", - "Password": "", + "Password": "admin", "Database": "erupe" }, "Sign": { diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index 5c5fb9613..40c52f6c4 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -51,8 +51,16 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { pkt.Filename = seasonConversion(s, pkt.Filename) } + // custom quests expect there to be only a d0 for quests, rewrite quests to try for d0 if the quest file doesn't exist + if _, err := os.Stat(filepath.Join(s.server.erupeConfig.BinPath, fmt.Sprintf("quests/%s.bin", pkt.Filename))); err != nil { + pkt.Filename = fmt.Sprintf("%s%s", pkt.Filename[:5], "d0") + } + + s.logger.Info("Sent " + pkt.Filename) + data, err := os.ReadFile(filepath.Join(s.server.erupeConfig.BinPath, fmt.Sprintf("quests/%s.bin", pkt.Filename))) if err != nil { + s.logger.Error(fmt.Sprintf("Failed to open file: %s/quests/%s.bin", s.server.erupeConfig.BinPath, pkt.Filename)) // This will crash the game. doAckBufSucceed(s, pkt.AckHandle, data) @@ -77,10 +85,15 @@ func seasonConversion(s *Session, questFile string) string { filename := fmt.Sprintf("%s%s", questFile[:5], questSuffix(s)) // Return original file if file doesn't exist - if _, err := os.Stat(filename); err == nil { + if _, err := os.Stat(filepath.Join(s.server.erupeConfig.BinPath, fmt.Sprintf("quests/%s.bin", filename))); err == nil { return filename } else { - return questFile + // Load d0 if the regular quest file doesn't exist (Fixes custom quests) + if _, err := os.Stat(filepath.Join(s.server.erupeConfig.BinPath, fmt.Sprintf("quests/%s.bin", questFile))); err == nil { + return questFile + } + + return fmt.Sprintf("%s%s", questFile[:5], "d0") } }