diff --git a/common/mhfcourse/mhfcourse.go b/common/mhfcourse/mhfcourse.go index 272d3e3d4..332c684dc 100644 --- a/common/mhfcourse/mhfcourse.go +++ b/common/mhfcourse/mhfcourse.go @@ -68,7 +68,7 @@ func CourseExists(ID uint16, c []Course) bool { // GetCourseStruct returns a slice of Course(s) from a rights integer func GetCourseStruct(rights uint32) ([]Course, uint32) { var resp []Course - for _, c := range _config.ErupeConfig.DevModeOptions.DefaultCourses { + for _, c := range _config.ErupeConfig.DefaultCourses { resp = append(resp, Course{ID: c}) } s := Courses() diff --git a/config.json b/config.json index a099936bc..23105d55a 100644 --- a/config.json +++ b/config.json @@ -13,11 +13,18 @@ "DeleteOnSaveCorruption": false, "ClientMode": "ZZ", "QuestCacheExpiry": 300, - "ProxyPort": 0, "CommandPrefix": "!", - "DevMode": true, - "DevModeOptions": { - "AutoCreateAccount": true, + "AutoCreateAccount": true, + "DefaultCourses": [1, 23, 24], + "EarthStatus": 0, + "EarthID": 0, + "EarthMonsters": [0, 0, 0, 0], + "SaveDumps": { + "Enabled": true, + "RawEnabled": false, + "OutputDir": "save-backups" + }, + "DebugOptions": { "CleanDB": false, "MaxLauncherHR": false, "LogInboundMessages": false, @@ -28,16 +35,8 @@ "FestaEvent": -1, "TournamentEvent": 0, "DisableTokenCheck": false, - "QuestDebugTools": false, - "DefaultCourses": [1, 23, 24], - "EarthStatusOverride": 0, - "EarthIDOverride": 0, - "EarthMonsterOverride": [0, 0, 0, 0], - "SaveDumps": { - "Enabled": true, - "RawEnabled": false, - "OutputDir": "save-backups" - }, + "QuestTools": false, + "ProxyPort": 0, "CapLink": { "Values": [51728, 20000, 51729, 1, 20000], "Key": "", @@ -58,8 +57,6 @@ "ClanMemberLimits": [[0, 30], [3, 40], [7, 50], [10, 60]], "BonusQuestAllowance": 3, "DailyQuestAllowance": 1, - "MezfesSoloTickets": 10, - "MezfesGroupTickets": 4, "LowLatencyRaviente": false, "RegularRavienteMaxPlayers": 8, "ViolentRavienteMaxPlayers": 8, @@ -74,6 +71,8 @@ "MaterialMultiplier": 1.00, "ExtraCarves": 0, "DisableHunterNavi": false, + "MezFesSoloTickets": 5, + "MezFesGroupTickets": 1, "MezFesDuration": 172800, "MezFesSwitchMinigame": false, "EnableKaijiEvent": false, diff --git a/config/config.go b/config/config.go index 7e87fd8b8..02c94b030 100644 --- a/config/config.go +++ b/config/config.go @@ -80,42 +80,23 @@ type Config struct { ClientMode string RealClientMode Mode QuestCacheExpiry int // Number of seconds to keep quest data cached - ProxyPort uint16 // Forces the game to connect to a channel server proxy CommandPrefix string // The prefix for commands - DevMode bool - - DevModeOptions DevModeOptions - GameplayOptions GameplayOptions - Discord Discord - Commands []Command - Courses []Course - Database Database - Sign Sign - SignV2 SignV2 - Channel Channel - Entrance Entrance -} - -// DevModeOptions holds various debug/temporary options for use while developing Erupe. -type DevModeOptions struct { - AutoCreateAccount bool // Automatically create accounts if they don't exist - CleanDB bool // Automatically wipes the DB on server reset. - MaxLauncherHR bool // Sets the HR returned in the launcher to HR7 so that you can join non-beginner worlds. - LogInboundMessages bool // Log all messages sent to the server - LogOutboundMessages bool // Log all messages sent to the clients - LogMessageData bool // Log all bytes transferred as a hexdump - MaxHexdumpLength int // Maximum number of bytes printed when logs are enabled - DivaEvent int // Diva Defense event status - FestaEvent int // Hunter's Festa event status - TournamentEvent int // VS Tournament event status - DisableTokenCheck bool // Disables checking login token exists in the DB (security risk!) - QuestDebugTools bool // Enable various quest debug logs - DefaultCourses []uint16 - EarthStatusOverride int32 - EarthIDOverride int32 - EarthMonsterOverride []int32 - SaveDumps SaveDumpOptions - CapLink CapLinkOptions + AutoCreateAccount bool // Automatically create accounts if they don't exist + DefaultCourses []uint16 + EarthStatus int32 + EarthID int32 + EarthMonsters []int32 + SaveDumps SaveDumpOptions + DebugOptions DebugOptions + GameplayOptions GameplayOptions + Discord Discord + Commands []Command + Courses []Course + Database Database + Sign Sign + SignV2 SignV2 + Channel Channel + Entrance Entrance } type SaveDumpOptions struct { @@ -124,6 +105,23 @@ type SaveDumpOptions struct { OutputDir string } +// DebugOptions holds various debug/temporary options for use while developing Erupe. +type DebugOptions struct { + CleanDB bool // Automatically wipes the DB on server reset. + MaxLauncherHR bool // Sets the HR returned in the launcher to HR7 so that you can join non-beginner worlds. + LogInboundMessages bool // Log all messages sent to the server + LogOutboundMessages bool // Log all messages sent to the clients + LogMessageData bool // Log all bytes transferred as a hexdump + MaxHexdumpLength int // Maximum number of bytes printed when logs are enabled + DivaEvent int // Diva Defense event status + FestaEvent int // Hunter's Festa event status + TournamentEvent int // VS Tournament event status + DisableTokenCheck bool // Disables checking login token exists in the DB (security risk!) + QuestTools bool // Enable various quest debug logs + ProxyPort uint16 // Forces the game to connect to a channel server proxy + CapLink CapLinkOptions +} + type CapLinkOptions struct { Values []uint16 Key string @@ -146,8 +144,6 @@ type GameplayOptions struct { ClanMemberLimits [][]uint8 // Array of maximum Clan Members -> [Rank, Members] BonusQuestAllowance uint32 // Number of Bonus Point Quests to allow daily DailyQuestAllowance uint32 // Number of Daily Quests to allow daily - MezfesSoloTickets uint32 // Number of solo tickets given weekly - MezfesGroupTickets uint32 // Number of group tickets given weekly LowLatencyRaviente bool // Toggles low latency mode for Raviente, can be network intensive RegularRavienteMaxPlayers uint8 ViolentRavienteMaxPlayers uint8 @@ -162,6 +158,8 @@ type GameplayOptions struct { MaterialMultiplier float32 // Adjusts the multiplier of Monster Materials rewarded for quest completion ExtraCarves uint16 // Grant n extra chances to carve ALL carcasses DisableHunterNavi bool // Disables the Hunter Navi + MezFesSoloTickets uint32 // Number of solo tickets given weekly + MezFesGroupTickets uint32 // Number of group tickets given weekly MezFesDuration int // Seconds that MezFes will last for weekly (from 12AM Mon backwards) MezFesSwitchMinigame bool // Swaps out Volpakkun Together for Tokotoko Partnya EnableKaijiEvent bool // Enables the Kaiji event in the Rasta Bar diff --git a/main.go b/main.go index c56d90b0f..42da5a7fe 100644 --- a/main.go +++ b/main.go @@ -22,13 +22,10 @@ import ( ) // Temporary DB auto clean on startup for quick development & testing. -func cleanDB(db *sqlx.DB, config *_config.Config) { +func cleanDB(db *sqlx.DB) { _ = db.MustExec("DELETE FROM guild_characters") _ = db.MustExec("DELETE FROM guilds") _ = db.MustExec("DELETE FROM characters") - if config.ProxyPort == 0 { - _ = db.MustExec("DELETE FROM sign_sessions") - } _ = db.MustExec("DELETE FROM users") } @@ -48,11 +45,7 @@ func main() { var zapLogger *zap.Logger config := _config.ErupeConfig - if config.DevMode { - zapLogger, _ = zap.NewDevelopment() - } else { - zapLogger, _ = zap.NewProduction() - } + zapLogger, _ = zap.NewDevelopment() defer zapLogger.Sync() logger := zapLogger.Named("main") @@ -126,16 +119,16 @@ func main() { logger.Info("Database: Started successfully") // Clear stale data - if config.ProxyPort == 0 { + if config.DebugOptions.ProxyPort == 0 { _ = db.MustExec("DELETE FROM sign_sessions") } _ = db.MustExec("DELETE FROM servers") _ = db.MustExec(`UPDATE guild_characters SET treasure_hunt=NULL`) // Clean the DB if the option is on. - if config.DevMode && config.DevModeOptions.CleanDB { + if config.DebugOptions.CleanDB { logger.Info("Database: Started clearing...") - cleanDB(db, config) + cleanDB(db) logger.Info("Database: Finished clearing") } diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 76d085175..e2c15a4f8 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -31,7 +31,7 @@ func stubEnumerateNoResults(s *Session, ackHandle uint32) { func doAckEarthSucceed(s *Session, ackHandle uint32, data []*byteframe.ByteFrame) { bf := byteframe.NewByteFrame() - bf.WriteUint32(uint32(s.server.erupeConfig.DevModeOptions.EarthIDOverride)) + bf.WriteUint32(uint32(s.server.erupeConfig.EarthID)) bf.WriteUint32(0) bf.WriteUint32(0) bf.WriteUint32(uint32(len(data))) @@ -127,7 +127,7 @@ func handleMsgSysTerminalLog(s *Session, p mhfpacket.MHFPacket) { func handleMsgSysLogin(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysLogin) - if !s.server.erupeConfig.DevModeOptions.DisableTokenCheck { + if !s.server.erupeConfig.DebugOptions.DisableTokenCheck { var token string err := s.server.db.QueryRow("SELECT token FROM sign_sessions ss INNER JOIN public.users u on ss.user_id = u.id WHERE token=$1 AND ss.id=$2 AND u.id=(SELECT c.user_id FROM characters c WHERE c.id=$3)", pkt.LoginTokenString, pkt.LoginTokenNumber, pkt.CharID0).Scan(&token) if err != nil { @@ -1147,9 +1147,9 @@ func handleMsgMhfGetEarthStatus(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint32(uint32(TimeWeekStart().Unix())) // Start bf.WriteUint32(uint32(TimeWeekNext().Unix())) // End - bf.WriteInt32(s.server.erupeConfig.DevModeOptions.EarthStatusOverride) - bf.WriteInt32(s.server.erupeConfig.DevModeOptions.EarthIDOverride) - for i, m := range s.server.erupeConfig.DevModeOptions.EarthMonsterOverride { + bf.WriteInt32(s.server.erupeConfig.EarthStatus) + bf.WriteInt32(s.server.erupeConfig.EarthID) + for i, m := range s.server.erupeConfig.EarthMonsters { if _config.ErupeConfig.RealClientMode <= _config.G9 { if i == 3 { break diff --git a/server/channelserver/handlers_cast_binary.go b/server/channelserver/handlers_cast_binary.go index 71a8a6f07..51141a47f 100644 --- a/server/channelserver/handlers_cast_binary.go +++ b/server/channelserver/handlers_cast_binary.go @@ -348,7 +348,7 @@ func handleMsgSysCastBinary(s *Session, p mhfpacket.MHFPacket) { } } - if s.server.erupeConfig.DevModeOptions.QuestDebugTools == true && s.server.erupeConfig.DevMode { + if s.server.erupeConfig.DebugOptions.QuestTools { if pkt.BroadcastType == 0x03 && pkt.MessageType == 0x02 && len(pkt.RawDataPayload) > 32 { // This is only correct most of the time tmp.ReadBytes(20) diff --git a/server/channelserver/handlers_data.go b/server/channelserver/handlers_data.go index 805fa59f5..8844dbdd8 100644 --- a/server/channelserver/handlers_data.go +++ b/server/channelserver/handlers_data.go @@ -45,7 +45,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) { doAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) return } - if s.server.erupeConfig.DevModeOptions.SaveDumps.RawEnabled { + if s.server.erupeConfig.SaveDumps.RawEnabled { dumpSaveData(s, saveData, "raw-savedata") } s.logger.Info("Updating save with blob") @@ -112,11 +112,11 @@ func grpToGR(n int) uint16 { } func dumpSaveData(s *Session, data []byte, suffix string) { - if !s.server.erupeConfig.DevModeOptions.SaveDumps.Enabled { + if !s.server.erupeConfig.SaveDumps.Enabled { return } else { - dir := filepath.Join(s.server.erupeConfig.DevModeOptions.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID)) - path := filepath.Join(s.server.erupeConfig.DevModeOptions.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID), fmt.Sprintf("%d_%s.bin", s.charID, suffix)) + dir := filepath.Join(s.server.erupeConfig.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID)) + path := filepath.Join(s.server.erupeConfig.SaveDumps.OutputDir, fmt.Sprintf("%d", s.charID), fmt.Sprintf("%d_%s.bin", s.charID, suffix)) _, err := os.Stat(dir) if err != nil { if os.IsNotExist(err) { diff --git a/server/channelserver/handlers_diva.go b/server/channelserver/handlers_diva.go index 42b70f064..d7c60331a 100644 --- a/server/channelserver/handlers_diva.go +++ b/server/channelserver/handlers_diva.go @@ -70,8 +70,8 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) { } var timestamps []uint32 - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.DivaEvent >= 0 { - if s.server.erupeConfig.DevModeOptions.DivaEvent == 0 { + if s.server.erupeConfig.DebugOptions.DivaEvent >= 0 { + if s.server.erupeConfig.DebugOptions.DivaEvent == 0 { if s.server.erupeConfig.RealClientMode >= _config.Z2 { doAckBufSucceed(s, pkt.AckHandle, make([]byte, 36)) } else { @@ -79,7 +79,7 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) { } return } - timestamps = generateDivaTimestamps(s, uint32(s.server.erupeConfig.DevModeOptions.DivaEvent), true) + timestamps = generateDivaTimestamps(s, uint32(s.server.erupeConfig.DebugOptions.DivaEvent), true) } else { timestamps = generateDivaTimestamps(s, start, false) } diff --git a/server/channelserver/handlers_festa.go b/server/channelserver/handlers_festa.go index f92b8d3fc..d200240e4 100644 --- a/server/channelserver/handlers_festa.go +++ b/server/channelserver/handlers_festa.go @@ -36,7 +36,7 @@ func handleMsgMhfLoadMezfesData(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfEnumerateRanking(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfEnumerateRanking) bf := byteframe.NewByteFrame() - state := s.server.erupeConfig.DevModeOptions.TournamentEvent + state := s.server.erupeConfig.DebugOptions.TournamentEvent // Unk // Unk // Start? @@ -173,12 +173,12 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { } var timestamps []uint32 - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.FestaEvent >= 0 { - if s.server.erupeConfig.DevModeOptions.FestaEvent == 0 { + if s.server.erupeConfig.DebugOptions.FestaEvent >= 0 { + if s.server.erupeConfig.DebugOptions.FestaEvent == 0 { doAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) return } - timestamps = generateFestaTimestamps(s, uint32(s.server.erupeConfig.DevModeOptions.FestaEvent), true) + timestamps = generateFestaTimestamps(s, uint32(s.server.erupeConfig.DebugOptions.FestaEvent), true) } else { timestamps = generateFestaTimestamps(s, start, false) } diff --git a/server/channelserver/handlers_object.go b/server/channelserver/handlers_object.go index 241505c0d..41f28e5d3 100644 --- a/server/channelserver/handlers_object.go +++ b/server/channelserver/handlers_object.go @@ -42,7 +42,7 @@ func handleMsgSysDeleteObject(s *Session, p mhfpacket.MHFPacket) {} func handleMsgSysPositionObject(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysPositionObject) - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.LogInboundMessages { + if s.server.erupeConfig.DebugOptions.LogInboundMessages { fmt.Printf("[%s] with objectID [%d] move to (%f,%f,%f)\n\n", s.Name, pkt.ObjID, pkt.X, pkt.Y, pkt.Z) } s.stage.Lock() diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index 98226c777..138199ea4 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -20,7 +20,7 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysGetFile) if pkt.IsScenario { - if s.server.erupeConfig.DevModeOptions.QuestDebugTools && s.server.erupeConfig.DevMode { + if s.server.erupeConfig.DebugOptions.QuestTools { s.logger.Debug( "Scenario", zap.Uint8("CategoryID", pkt.ScenarioIdentifer.CategoryID), @@ -40,7 +40,7 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { } doAckBufSucceed(s, pkt.AckHandle, data) } else { - if s.server.erupeConfig.DevModeOptions.QuestDebugTools && s.server.erupeConfig.DevMode { + if s.server.erupeConfig.DebugOptions.QuestTools { s.logger.Debug( "Quest", zap.String("Filename", pkt.Filename), diff --git a/server/channelserver/handlers_tower.go b/server/channelserver/handlers_tower.go index 4ce0bcc9f..7f6bdb3b9 100644 --- a/server/channelserver/handlers_tower.go +++ b/server/channelserver/handlers_tower.go @@ -105,7 +105,7 @@ func handleMsgMhfGetTowerInfo(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfPostTowerInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostTowerInfo) - if s.server.erupeConfig.DevModeOptions.QuestDebugTools { + if s.server.erupeConfig.DebugOptions.QuestTools { s.logger.Debug( p.Opcode().String(), zap.Uint32("InfoType", pkt.InfoType), @@ -328,7 +328,7 @@ func handleMsgMhfGetTenrouirai(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfPostTenrouirai(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostTenrouirai) - if s.server.erupeConfig.DevModeOptions.QuestDebugTools { + if s.server.erupeConfig.DebugOptions.QuestTools { s.logger.Debug( p.Opcode().String(), zap.Uint8("Unk0", pkt.Unk0), @@ -442,7 +442,7 @@ func handleMsgMhfGetGemInfo(s *Session, p mhfpacket.MHFPacket) { func handleMsgMhfPostGemInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostGemInfo) - if s.server.erupeConfig.DevModeOptions.QuestDebugTools { + if s.server.erupeConfig.DebugOptions.QuestTools { s.logger.Debug( p.Opcode().String(), zap.Uint32("Op", pkt.Op), diff --git a/server/channelserver/sys_session.go b/server/channelserver/sys_session.go index 5034f38c2..d49e5264a 100644 --- a/server/channelserver/sys_session.go +++ b/server/channelserver/sys_session.go @@ -253,13 +253,9 @@ func ignored(opcode network.PacketID) bool { } func (s *Session) logMessage(opcode uint16, data []byte, sender string, recipient string) { - if !s.server.erupeConfig.DevMode { + if sender == "Server" && !s.server.erupeConfig.DebugOptions.LogOutboundMessages { return - } - - if sender == "Server" && !s.server.erupeConfig.DevModeOptions.LogOutboundMessages { - return - } else if sender != "Server" && !s.server.erupeConfig.DevModeOptions.LogInboundMessages { + } else if sender != "Server" && !s.server.erupeConfig.DebugOptions.LogInboundMessages { return } @@ -277,8 +273,8 @@ func (s *Session) logMessage(opcode uint16, data []byte, sender string, recipien fmt.Printf("[%s] -> [%s]\n", sender, recipient) } fmt.Printf("Opcode: %s\n", opcodePID) - if s.server.erupeConfig.DevModeOptions.LogMessageData { - if len(data) <= s.server.erupeConfig.DevModeOptions.MaxHexdumpLength { + if s.server.erupeConfig.DebugOptions.LogMessageData { + if len(data) <= s.server.erupeConfig.DebugOptions.MaxHexdumpLength { fmt.Printf("Data [%d bytes]:\n%s\n", len(data), hex.Dump(data)) } else { fmt.Printf("Data [%d bytes]: (Too long!)\n\n", len(data)) diff --git a/server/entranceserver/entrance_server.go b/server/entranceserver/entrance_server.go index 8b06be0e0..18869304b 100644 --- a/server/entranceserver/entrance_server.go +++ b/server/entranceserver/entrance_server.go @@ -111,7 +111,7 @@ func (s *Server) handleEntranceServerConnection(conn net.Conn) { return } - if s.erupeConfig.DevMode && s.erupeConfig.DevModeOptions.LogInboundMessages { + if s.erupeConfig.DebugOptions.LogInboundMessages { fmt.Printf("[Client] -> [Server]\nData [%d bytes]:\n%s\n", len(pkt), hex.Dump(pkt)) } diff --git a/server/entranceserver/make_resp.go b/server/entranceserver/make_resp.go index 4b478fa24..f7f2f433e 100644 --- a/server/entranceserver/make_resp.go +++ b/server/entranceserver/make_resp.go @@ -69,8 +69,8 @@ func encodeServerInfo(config *_config.Config, s *Server, local bool) []byte { for channelIdx, ci := range si.Channels { sid = (4096 + serverIdx*256) + (16 + channelIdx) - if _config.ErupeConfig.DevMode && _config.ErupeConfig.ProxyPort != 0 { - bf.WriteUint16(_config.ErupeConfig.ProxyPort) + if _config.ErupeConfig.DebugOptions.ProxyPort != 0 { + bf.WriteUint16(_config.ErupeConfig.DebugOptions.ProxyPort) } else { bf.WriteUint16(ci.Port) } @@ -136,7 +136,7 @@ func makeSv2Resp(config *_config.Config, s *Server, local bool) []byte { } rawServerData := encodeServerInfo(config, s, local) - if s.erupeConfig.DevMode && s.erupeConfig.DevModeOptions.LogOutboundMessages { + if s.erupeConfig.DebugOptions.LogOutboundMessages { fmt.Printf("[Server] -> [Client]\nData [%d bytes]:\n%s\n", len(rawServerData), hex.Dump(rawServerData)) } @@ -168,7 +168,7 @@ func makeUsrResp(pkt []byte, s *Server) []byte { } } - if s.erupeConfig.DevMode && s.erupeConfig.DevModeOptions.LogOutboundMessages { + if s.erupeConfig.DebugOptions.LogOutboundMessages { fmt.Printf("[Server] -> [Client]\nData [%d bytes]:\n%s\n", len(resp.Data()), hex.Dump(resp.Data())) } diff --git a/server/signserver/dbutils.go b/server/signserver/dbutils.go index 751862a49..f23d3bdcc 100644 --- a/server/signserver/dbutils.go +++ b/server/signserver/dbutils.go @@ -231,7 +231,7 @@ func (s *Server) validateLogin(user string, pass string) (uint32, RespID) { if err != nil { if err == sql.ErrNoRows { s.logger.Info("User not found", zap.String("User", user)) - if s.erupeConfig.DevMode && s.erupeConfig.DevModeOptions.AutoCreateAccount { + if s.erupeConfig.AutoCreateAccount { uid, err = s.registerDBAccount(user, pass) if err == nil { return uid, SIGN_SUCCESS diff --git a/server/signserver/dsgn_resp.go b/server/signserver/dsgn_resp.go index 25b5650c4..715299f8f 100644 --- a/server/signserver/dsgn_resp.go +++ b/server/signserver/dsgn_resp.go @@ -72,7 +72,7 @@ func (s *Session) makeSignResponse(uid uint32) []byte { bf.WriteUint32(char.ID) // Exp, HR[x] is split by 0, 1, 30, 50, 99, 299, 998, 999 - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.MaxLauncherHR { + if s.server.erupeConfig.DebugOptions.MaxLauncherHR { bf.WriteUint16(999) } else { bf.WriteUint16(char.HRP) @@ -145,11 +145,11 @@ func (s *Session) makeSignResponse(uid uint32) []byte { bf.WriteBytes(stringsupport.PaddedString(psnUser, 20, true)) } - bf.WriteUint16(s.server.erupeConfig.DevModeOptions.CapLink.Values[0]) - if s.server.erupeConfig.DevModeOptions.CapLink.Values[0] == 51728 { - bf.WriteUint16(s.server.erupeConfig.DevModeOptions.CapLink.Values[1]) - if s.server.erupeConfig.DevModeOptions.CapLink.Values[1] == 20000 || s.server.erupeConfig.DevModeOptions.CapLink.Values[1] == 20002 { - ps.Uint16(bf, s.server.erupeConfig.DevModeOptions.CapLink.Key, false) + bf.WriteUint16(s.server.erupeConfig.DebugOptions.CapLink.Values[0]) + if s.server.erupeConfig.DebugOptions.CapLink.Values[0] == 51728 { + bf.WriteUint16(s.server.erupeConfig.DebugOptions.CapLink.Values[1]) + if s.server.erupeConfig.DebugOptions.CapLink.Values[1] == 20000 || s.server.erupeConfig.DebugOptions.CapLink.Values[1] == 20002 { + ps.Uint16(bf, s.server.erupeConfig.DebugOptions.CapLink.Key, false) } } caStruct := []struct { @@ -163,19 +163,19 @@ func (s *Session) makeSignResponse(uid uint32) []byte { bf.WriteUint32(caStruct[i].Unk1) ps.Uint8(bf, caStruct[i].Unk2, false) } - bf.WriteUint16(s.server.erupeConfig.DevModeOptions.CapLink.Values[2]) - bf.WriteUint16(s.server.erupeConfig.DevModeOptions.CapLink.Values[3]) - bf.WriteUint16(s.server.erupeConfig.DevModeOptions.CapLink.Values[4]) - if s.server.erupeConfig.DevModeOptions.CapLink.Values[2] == 51729 && s.server.erupeConfig.DevModeOptions.CapLink.Values[3] == 1 && s.server.erupeConfig.DevModeOptions.CapLink.Values[4] == 20000 { - ps.Uint16(bf, fmt.Sprintf(`%s:%d`, s.server.erupeConfig.DevModeOptions.CapLink.Host, s.server.erupeConfig.DevModeOptions.CapLink.Port), false) + bf.WriteUint16(s.server.erupeConfig.DebugOptions.CapLink.Values[2]) + bf.WriteUint16(s.server.erupeConfig.DebugOptions.CapLink.Values[3]) + bf.WriteUint16(s.server.erupeConfig.DebugOptions.CapLink.Values[4]) + if s.server.erupeConfig.DebugOptions.CapLink.Values[2] == 51729 && s.server.erupeConfig.DebugOptions.CapLink.Values[3] == 1 && s.server.erupeConfig.DebugOptions.CapLink.Values[4] == 20000 { + ps.Uint16(bf, fmt.Sprintf(`%s:%d`, s.server.erupeConfig.DebugOptions.CapLink.Host, s.server.erupeConfig.DebugOptions.CapLink.Port), false) } bf.WriteUint32(uint32(s.server.getReturnExpiry(uid).Unix())) bf.WriteUint32(0) tickets := []uint32{ - s.server.erupeConfig.GameplayOptions.MezfesSoloTickets, - s.server.erupeConfig.GameplayOptions.MezfesGroupTickets, + s.server.erupeConfig.GameplayOptions.MezFesSoloTickets, + s.server.erupeConfig.GameplayOptions.MezFesGroupTickets, } stalls := []uint8{ 10, 3, 6, 9, 4, 8, 5, 7, diff --git a/server/signserver/session.go b/server/signserver/session.go index 5806f1108..164ab70e2 100644 --- a/server/signserver/session.go +++ b/server/signserver/session.go @@ -37,7 +37,7 @@ type Session struct { func (s *Session) work() { pkt, err := s.cryptConn.ReadPacket() - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.LogInboundMessages { + if s.server.erupeConfig.DebugOptions.LogInboundMessages { fmt.Printf("\n[Client] -> [Server]\nData [%d bytes]:\n%s\n", len(pkt), hex.Dump(pkt)) } @@ -78,7 +78,7 @@ func (s *Session) handlePacket(pkt []byte) error { } default: s.logger.Warn("Unknown request", zap.String("reqType", reqType)) - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.LogInboundMessages { + if s.server.erupeConfig.DebugOptions.LogInboundMessages { fmt.Printf("\n[Client] -> [Server]\nData [%d bytes]:\n%s\n", len(pkt), hex.Dump(pkt)) } } @@ -102,7 +102,7 @@ func (s *Session) authenticate(username string, password string) { default: bf.WriteUint8(uint8(resp)) } - if s.server.erupeConfig.DevMode && s.server.erupeConfig.DevModeOptions.LogOutboundMessages { + if s.server.erupeConfig.DebugOptions.LogOutboundMessages { fmt.Printf("\n[Server] -> [Client]\nData [%d bytes]:\n%s\n", len(bf.Data()), hex.Dump(bf.Data())) } _ = s.cryptConn.SendPacket(bf.Data()) diff --git a/server/signv2server/endpoints.go b/server/signv2server/endpoints.go index b6cc03515..5a0a6c8e7 100644 --- a/server/signv2server/endpoints.go +++ b/server/signv2server/endpoints.go @@ -80,7 +80,7 @@ func (s *Server) newAuthData(userID uint32, userRights uint32, userTokenID uint3 PatchServer: s.erupeConfig.SignV2.PatchServer, Notices: []string{}, } - if s.erupeConfig.DevModeOptions.MaxLauncherHR { + if s.erupeConfig.DebugOptions.MaxLauncherHR { for i := range resp.Characters { resp.Characters[i].HR = 7 } @@ -93,8 +93,8 @@ func (s *Server) newAuthData(userID uint32, userRights uint32, userTokenID uint3 ID: uint32(channelserver.TimeWeekStart().Unix()), Start: uint32(channelserver.TimeWeekStart().Add(-time.Duration(s.erupeConfig.GameplayOptions.MezFesDuration) * time.Second).Unix()), End: uint32(channelserver.TimeWeekNext().Unix()), - SoloTickets: s.erupeConfig.GameplayOptions.MezfesSoloTickets, - GroupTickets: s.erupeConfig.GameplayOptions.MezfesGroupTickets, + SoloTickets: s.erupeConfig.GameplayOptions.MezFesSoloTickets, + GroupTickets: s.erupeConfig.GameplayOptions.MezFesGroupTickets, Stalls: stalls, } if !s.erupeConfig.HideLoginNotice { @@ -226,7 +226,7 @@ func (s *Server) CreateCharacter(w http.ResponseWriter, r *http.Request) { w.WriteHeader(500) return } - if s.erupeConfig.DevModeOptions.MaxLauncherHR { + if s.erupeConfig.DebugOptions.MaxLauncherHR { character.HR = 7 } w.Header().Add("Content-Type", "application/json")