From 0fa7f37743c94491e0f7b3dd798024131636bef5 Mon Sep 17 00:00:00 2001 From: stratic-dev Date: Tue, 15 Oct 2024 04:11:58 +0100 Subject: [PATCH] revert broadcast package refactor in prep for session interface refactor --- server/channelserver/handlers.go | 81 ++++++------ server/channelserver/handlers_achievement.go | 7 +- server/channelserver/handlers_bbs.go | 7 +- server/channelserver/handlers_cafe.go | 41 +++--- server/channelserver/handlers_campaign.go | 11 +- server/channelserver/handlers_caravan.go | 13 +- server/channelserver/handlers_character.go | 3 +- server/channelserver/handlers_clients.go | 9 +- server/channelserver/handlers_data.go | 21 ++-- server/channelserver/handlers_distitem.go | 11 +- server/channelserver/handlers_diva.go | 33 +++-- server/channelserver/handlers_event.go | 13 +- server/channelserver/handlers_festa.go | 47 ++++--- server/channelserver/handlers_guild.go | 117 +++++++++--------- .../channelserver/handlers_guild_adventure.go | 13 +- .../channelserver/handlers_guild_alliance.go | 21 ++-- server/channelserver/handlers_guild_scout.go | 51 ++++---- .../channelserver/handlers_guild_tresure.go | 19 ++- server/channelserver/handlers_house.go | 41 +++--- server/channelserver/handlers_kouryou.go | 7 +- server/channelserver/handlers_mail.go | 23 ++-- server/channelserver/handlers_mercenary.go | 35 +++--- server/channelserver/handlers_object.go | 3 +- server/channelserver/handlers_plate.go | 29 +++-- server/channelserver/handlers_quest.go | 19 ++- server/channelserver/handlers_register.go | 9 +- server/channelserver/handlers_rengoku.go | 17 ++- server/channelserver/handlers_reserve.go | 5 +- server/channelserver/handlers_reward.go | 9 +- server/channelserver/handlers_seibattle.go | 17 ++- server/channelserver/handlers_semaphore.go | 11 +- server/channelserver/handlers_shop_gacha.go | 59 +++++---- server/channelserver/handlers_stage.go | 39 +++--- server/channelserver/handlers_tactics.go | 15 ++- server/channelserver/handlers_tournament.go | 7 +- server/channelserver/handlers_tower.go | 21 ++-- server/channelserver/handlers_users.go | 7 +- server/channelserver/sys_session.go | 48 +++++++ utils/broadcast/ack_helpers.go | 59 --------- 39 files changed, 475 insertions(+), 523 deletions(-) delete mode 100644 utils/broadcast/ack_helpers.go diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index 0c99d7e96..009d203d1 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -3,7 +3,6 @@ package channelserver import ( "encoding/binary" "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/gametime" "erupe-ce/utils/mhfcourse" @@ -31,7 +30,7 @@ func stubEnumerateNoResults(s *Session, ackHandle uint32) { enumBf := byteframe.NewByteFrame() enumBf.WriteUint32(0) // Entry count (count for quests, rankings, events, etc.) - broadcast.DoAckBufSucceed(s, ackHandle, enumBf.Data()) + s.DoAckBufSucceed(ackHandle, enumBf.Data()) } func updateRights(s *Session) { @@ -82,7 +81,7 @@ func handleMsgSysTerminalLog(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(pkt.LogID + 1) // LogID to use for requests after this. - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, resp.Data()) } func handleMsgSysLogin(s *Session, p mhfpacket.MHFPacket) { @@ -129,7 +128,7 @@ func handleMsgSysLogin(s *Session, p mhfpacket.MHFPacket) { panic(err) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) updateRights(s) @@ -236,7 +235,7 @@ func handleMsgSysSetStatus(s *Session, p mhfpacket.MHFPacket) {} func handleMsgSysPing(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysPing) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgSysTime(s *Session, p mhfpacket.MHFPacket) { @@ -267,7 +266,7 @@ func handleMsgSysIssueLogkey(s *Session, p mhfpacket.MHFPacket) { // Issue it. resp := byteframe.NewByteFrame() resp.WriteBytes(logKey) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgSysRecordLog(s *Session, p mhfpacket.MHFPacket) { @@ -289,7 +288,7 @@ func handleMsgSysRecordLog(s *Session, p mhfpacket.MHFPacket) { } // remove a client returning to town from reserved slots to make sure the stage is hidden from board delete(s.stage.reservedClientSlots, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgSysEcho(s *Session, p mhfpacket.MHFPacket) {} @@ -314,12 +313,12 @@ func handleMsgSysLockGlobalSema(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint8(0) ps.Uint16(bf, pkt.ServerChannelIDString, false) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgSysUnlockGlobalSema(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysUnlockGlobalSema) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgSysUpdateRight(s *Session, p mhfpacket.MHFPacket) {} @@ -331,7 +330,7 @@ func handleMsgSysAuthTerminal(s *Session, p mhfpacket.MHFPacket) {} func handleMsgSysRightsReload(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysRightsReload) updateRights(s) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) { @@ -580,7 +579,7 @@ func handleMsgMhfTransitMessage(s *Session, p mhfpacket.MHFPacket) { } resp.Seek(0, io.SeekStart) resp.WriteUint16(count) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgCaExchangeItem(s *Session, p mhfpacket.MHFPacket) {} @@ -590,7 +589,7 @@ func handleMsgMhfServerCommand(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfAnnounce(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAnnounce) s.Server.BroadcastRaviente(pkt.IPAddress, pkt.Port, pkt.StageID, pkt.Data.ReadUint8()) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfSetLoginwindow(s *Session, p mhfpacket.MHFPacket) {} @@ -613,7 +612,7 @@ func handleMsgMhfGetCaUniqueID(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfTransferItem(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfTransferItem) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfEnumeratePrice(s *Session, p mhfpacket.MHFPacket) { @@ -778,7 +777,7 @@ func handleMsgMhfEnumeratePrice(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(gz.Unk3) bf.WriteUint8(gz.Unk4) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfEnumerateOrder(s *Session, p mhfpacket.MHFPacket) { @@ -812,7 +811,7 @@ func handleMsgMhfEnumerateUnionItem(s *Session, p mhfpacket.MHFPacket) { items := userGetItems(s) bf := byteframe.NewByteFrame() bf.WriteBytes(mhfitem.SerializeWarehouseItems(items)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUpdateUnionItem(s *Session, p mhfpacket.MHFPacket) { @@ -823,7 +822,7 @@ func handleMsgMhfUpdateUnionItem(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE users u SET item_box=$1 WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2)`, mhfitem.SerializeWarehouseItems(newStacks), s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetCogInfo(s *Session, p mhfpacket.MHFPacket) {} @@ -857,7 +856,7 @@ func handleMsgMhfCheckWeeklyStamp(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(0) bf.WriteUint16(0) bf.WriteUint32(uint32(gametime.TimeWeekStart().Unix())) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfExchangeWeeklyStamp(s *Session, p mhfpacket.MHFPacket) { @@ -887,7 +886,7 @@ func handleMsgMhfExchangeWeeklyStamp(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(tktStack.Item.ItemID) bf.WriteUint16(tktStack.Quantity) bf.WriteUint32(uint32(gametime.TimeWeekStart().Unix())) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func getGoocooData(s *Session, cid uint32) [][]byte { @@ -919,7 +918,7 @@ func handleMsgMhfEnumerateGuacot(s *Session, p mhfpacket.MHFPacket) { for _, goocoo := range goocoos { bf.WriteBytes(goocoo) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUpdateGuacot(s *Session, p mhfpacket.MHFPacket) { @@ -946,7 +945,7 @@ func handleMsgMhfUpdateGuacot(s *Session, p mhfpacket.MHFPacket) { dumpSaveData(s, bf.Data(), fmt.Sprintf("goocoo-%d", goocoo.Index)) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type Scenario struct { @@ -971,7 +970,7 @@ func handleMsgMhfInfoScenarioCounter(s *Session, p mhfpacket.MHFPacket) { if err != nil { scenarioData.Close() s.Logger.Error("Failed to get scenario counter info from db", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } for scenarioData.Next() { @@ -1000,7 +999,7 @@ func handleMsgMhfInfoScenarioCounter(s *Session, p mhfpacket.MHFPacket) { } bf.WriteUint8(scenario.CategoryID) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetEtcPoints(s *Session, p mhfpacket.MHFPacket) { @@ -1022,7 +1021,7 @@ func handleMsgMhfGetEtcPoints(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(bonusQuests) resp.WriteUint32(dailyQuests) resp.WriteUint32(promoPoints) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfUpdateEtcPoint(s *Session, p mhfpacket.MHFPacket) { @@ -1050,7 +1049,7 @@ func handleMsgMhfUpdateEtcPoint(s *Session, p mhfpacket.MHFPacket) { database.Exec(fmt.Sprintf(`UPDATE characters SET %s = %s + $1 WHERE id = $2`, column, column), pkt.Delta, s.CharID) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfStampcardStamp(s *Session, p mhfpacket.MHFPacket) { @@ -1111,14 +1110,14 @@ func handleMsgMhfStampcardStamp(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(rewardUnk) bf.WriteUint16(reward.Item.ItemID) bf.WriteUint16(reward.Quantity) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfStampcardPrize(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfUnreserveSrg(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfUnreserveSrg) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfKickExportForce(s *Session, p mhfpacket.MHFPacket) {} @@ -1141,7 +1140,7 @@ func handleMsgMhfGetEarthStatus(s *Session, p mhfpacket.MHFPacket) { } bf.WriteInt32(m) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfRegistSpabiTime(s *Session, p mhfpacket.MHFPacket) {} @@ -1180,7 +1179,7 @@ func handleMsgMhfGetEarthValue(s *Session, p mhfpacket.MHFPacket) { } data = append(data, bf) } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfDebugPostValue(s *Session, p mhfpacket.MHFPacket) {} @@ -1191,7 +1190,7 @@ func handleMsgMhfGetRandFromTable(s *Session, p mhfpacket.MHFPacket) { for i := uint16(0); i < pkt.Results; i++ { bf.WriteUint32(0) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetSenyuDailyCount(s *Session, p mhfpacket.MHFPacket) { @@ -1199,7 +1198,7 @@ func handleMsgMhfGetSenyuDailyCount(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint16(0) bf.WriteUint16(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type SeibattleTimetable struct { @@ -1337,12 +1336,12 @@ func handleMsgMhfGetSeibattle(s *Session, p mhfpacket.MHFPacket) { data = append(data, bf) } } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfPostSeibattle(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostSeibattle) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetDailyMissionMaster(s *Session, p mhfpacket.MHFPacket) {} @@ -1375,7 +1374,7 @@ func handleMsgMhfGetEquipSkinHist(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load skin_hist", zap.Error(err)) data = make([]byte, size) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfUpdateEquipSkinHist(s *Session, p mhfpacket.MHFPacket) { @@ -1389,7 +1388,7 @@ func handleMsgMhfUpdateEquipSkinHist(s *Session, p mhfpacket.MHFPacket) { err = database.QueryRow("SELECT COALESCE(skin_hist, $2) FROM characters WHERE id = $1", s.CharID, make([]byte, size)).Scan(&data) if err != nil { s.Logger.Error("Failed to get skin_hist", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } @@ -1401,14 +1400,14 @@ func handleMsgMhfUpdateEquipSkinHist(s *Session, p mhfpacket.MHFPacket) { data[startByte+byteInd] |= bits.Reverse8(1 << uint(bitInByte)) dumpSaveData(s, data, "skinhist") database.Exec("UPDATE characters SET skin_hist=$1 WHERE id=$2", data, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetUdShopCoin(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdShopCoin) bf := byteframe.NewByteFrame() bf.WriteUint32(0) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUseUdShopCoin(s *Session, p mhfpacket.MHFPacket) {} @@ -1426,7 +1425,7 @@ func handleMsgMhfGetEnhancedMinidata(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load minidata") data = make([]byte, 1) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSetEnhancedMinidata(s *Session, p mhfpacket.MHFPacket) { @@ -1440,7 +1439,7 @@ func handleMsgMhfSetEnhancedMinidata(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to save minidata", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetLobbyCrowd(s *Session, p mhfpacket.MHFPacket) { @@ -1450,7 +1449,7 @@ func handleMsgMhfGetLobbyCrowd(s *Session, p mhfpacket.MHFPacket) { // It can be worried about later if we ever get to the point where there are // full servers to actually need to migrate people from and empty ones to pkt := p.(*mhfpacket.MsgMhfGetLobbyCrowd) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 0x320)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 0x320)) } type TrendWeapon struct { @@ -1490,7 +1489,7 @@ func handleMsgMhfGetTrendWeapon(s *Session, p mhfpacket.MHFPacket) { } bf.Seek(0, 0) bf.WriteUint8(x) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUpdateUseTrendWeaponLog(s *Session, p mhfpacket.MHFPacket) { @@ -1501,5 +1500,5 @@ func handleMsgMhfUpdateUseTrendWeaponLog(s *Session, p mhfpacket.MHFPacket) { } database.Exec(`INSERT INTO trend_weapons (weapon_id, weapon_type, count) VALUES ($1, $2, 1) ON CONFLICT (weapon_id) DO UPDATE SET count = trend_weapons.count+1`, pkt.WeaponID, pkt.WeaponType) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_achievement.go b/server/channelserver/handlers_achievement.go index 44512dfd2..502c909bc 100644 --- a/server/channelserver/handlers_achievement.go +++ b/server/channelserver/handlers_achievement.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "fmt" @@ -106,7 +105,7 @@ func handleMsgMhfGetAchievement(s *Session, p mhfpacket.MHFPacket) { &scores[17], &scores[18], &scores[19], &scores[20], &scores[21], &scores[22], &scores[23], &scores[24], &scores[25], &scores[26], &scores[27], &scores[28], &scores[29], &scores[30], &scores[31], &scores[32]) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 20)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 20)) return } @@ -142,12 +141,12 @@ func handleMsgMhfGetAchievement(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(points) resp.WriteUint32(points) resp.WriteUint32(points) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfSetCaAchievementHist(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSetCaAchievementHist) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfResetAchievement(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_bbs.go b/server/channelserver/handlers_bbs.go index e3bb9044d..0ff1e4f99 100644 --- a/server/channelserver/handlers_bbs.go +++ b/server/channelserver/handlers_bbs.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/stringsupport" "erupe-ce/utils/token" @@ -20,7 +19,7 @@ func handleMsgMhfGetBbsUserStatus(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(0) bf.WriteUint32(0) bf.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } // Checks the status of Bultin Board Server to see if authenticated @@ -31,7 +30,7 @@ func handleMsgMhfGetBbsSnsStatus(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(401) //unk http status? bf.WriteUint32(401) //unk http status? bf.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } // Tells the game client what host port and gives the bultin board article a token @@ -50,6 +49,6 @@ func handleMsgMhfApplyBbsArticle(s *Session, p mhfpacket.MHFPacket) { if config.GetConfig().Screenshots.Enabled && config.GetConfig().Discord.Enabled { s.Server.DiscordScreenShotSend(pkt.Name, pkt.Title, pkt.Description, articleToken) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_cafe.go b/server/channelserver/handlers_cafe.go index ef2a3943d..d0bb34642 100644 --- a/server/channelserver/handlers_cafe.go +++ b/server/channelserver/handlers_cafe.go @@ -1,7 +1,6 @@ package channelserver import ( - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -30,7 +29,7 @@ func handleMsgMhfAcquireCafeItem(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(netcafePoints) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfUpdateCafepoint(s *Session, p mhfpacket.MHFPacket) { @@ -46,7 +45,7 @@ func handleMsgMhfUpdateCafepoint(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(netcafePoints) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfCheckDailyCafepoint(s *Session, p mhfpacket.MHFPacket) { @@ -83,7 +82,7 @@ func handleMsgMhfCheckDailyCafepoint(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(bondBonus) bf.WriteUint32(bonusQuests) bf.WriteUint32(dailyQuests) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetCafeDuration(s *Session, p mhfpacket.MHFPacket) { @@ -118,7 +117,7 @@ func handleMsgMhfGetCafeDuration(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(0) ps.Uint16(bf, fmt.Sprintf(s.Server.i18n.cafe.reset, int(cafeReset.Month()), cafeReset.Day()), true) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type CafeBonus struct { @@ -148,7 +147,7 @@ func handleMsgMhfGetCafeDurationBonusInfo(s *Session, p mhfpacket.MHFPacket) { FROM cafebonus cb ORDER BY id ASC;`, s.CharID) if err != nil { s.Logger.Error("Error getting cafebonus", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) } else { for rows.Next() { count++ @@ -168,7 +167,7 @@ func handleMsgMhfGetCafeDurationBonusInfo(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(uint32(gametime.TimeAdjusted().Unix())) resp.WriteUint32(count) resp.WriteBytes(bf.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } } @@ -194,7 +193,7 @@ func handleMsgMhfReceiveCafeDurationBonus(s *Session, p mhfpacket.MHFPacket) { WHERE ch.id = $1 ) >= time_req`, s.CharID, gametime.TimeAdjusted().Unix()-s.sessionStart) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } else { for rows.Next() { cafeBonus := &CafeBonus{} @@ -210,7 +209,7 @@ func handleMsgMhfReceiveCafeDurationBonus(s *Session, p mhfpacket.MHFPacket) { } bf.Seek(0, io.SeekStart) bf.WriteUint32(count) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } } @@ -232,7 +231,7 @@ func handleMsgMhfPostCafeDurationBonusReceived(s *Session, p mhfpacket.MHFPacket } database.Exec("INSERT INTO public.cafe_accepted VALUES ($1, $2)", cbID, s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func addPointNetcafe(s *Session, p int) error { @@ -264,17 +263,17 @@ func handleMsgMhfStartBoostTime(s *Session, p mhfpacket.MHFPacket) { boostLimit := gametime.TimeAdjusted().Add(time.Duration(config.GetConfig().GameplayOptions.BoostTimeDuration) * time.Second) if config.GetConfig().GameplayOptions.DisableBoostTime { bf.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) return } database.Exec("UPDATE characters SET boost_time=$1 WHERE id=$2", boostLimit, s.CharID) bf.WriteUint32(uint32(boostLimit.Unix())) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetBoostTime(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetBoostTime) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{}) } func handleMsgMhfGetBoostTimeLimit(s *Session, p mhfpacket.MHFPacket) { @@ -291,8 +290,8 @@ func handleMsgMhfGetBoostTimeLimit(s *Session, p mhfpacket.MHFPacket) { } else { bf.WriteUint32(uint32(boostLimit.Unix())) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetBoostRight(s *Session, p mhfpacket.MHFPacket) { @@ -304,27 +303,27 @@ func handleMsgMhfGetBoostRight(s *Session, p mhfpacket.MHFPacket) { } err = database.QueryRow("SELECT boost_time FROM characters WHERE id=$1", s.CharID).Scan(&boostLimit) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } if boostLimit.After(gametime.TimeAdjusted()) { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x02}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x02}) } } func handleMsgMhfPostBoostTimeQuestReturn(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostBoostTimeQuestReturn) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfPostBoostTime(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostBoostTime) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfPostBoostTimeLimit(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostBoostTimeLimit) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_campaign.go b/server/channelserver/handlers_campaign.go index 4118401fe..344ef82a9 100644 --- a/server/channelserver/handlers_campaign.go +++ b/server/channelserver/handlers_campaign.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ps "erupe-ce/utils/pascalstring" "erupe-ce/utils/stringsupport" @@ -130,7 +129,7 @@ func handleMsgMhfEnumerateCampaign(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(link.CategoryID) bf.WriteUint32(link.CampaignID) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfStateCampaign(s *Session, p mhfpacket.MHFPacket) { @@ -138,14 +137,14 @@ func handleMsgMhfStateCampaign(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint16(1) bf.WriteUint16(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfApplyCampaign(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfApplyCampaign) bf := byteframe.NewByteFrame() bf.WriteUint32(1) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfEnumerateItem(s *Session, p mhfpacket.MHFPacket) { @@ -168,10 +167,10 @@ func handleMsgMhfEnumerateItem(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(item.Unk4) bf.WriteUint32(item.Unk5) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfAcquireItem(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAcquireItem) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_caravan.go b/server/channelserver/handlers_caravan.go index 63d83385b..2b4bbd91f 100644 --- a/server/channelserver/handlers_caravan.go +++ b/server/channelserver/handlers_caravan.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/stringsupport" "time" @@ -68,7 +67,7 @@ func handleMsgMhfGetRyoudama(s *Session, p mhfpacket.MHFPacket) { data = append(data, bf) } } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfPostRyoudama(s *Session, p mhfpacket.MHFPacket) {} @@ -76,12 +75,12 @@ func handleMsgMhfPostRyoudama(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfGetTinyBin(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetTinyBin) // requested after conquest quests - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{}) } func handleMsgMhfPostTinyBin(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostTinyBin) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfCaravanMyScore(s *Session, p mhfpacket.MHFPacket) { @@ -93,7 +92,7 @@ func handleMsgMhfCaravanMyScore(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(0) bf.WriteInt32(0) */ - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfCaravanRanking(s *Session, p mhfpacket.MHFPacket) { @@ -109,7 +108,7 @@ func handleMsgMhfCaravanRanking(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(1) bf.WriteBytes(stringsupport.PaddedString("Test", 14, true)) */ - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfCaravanMyRank(s *Session, p mhfpacket.MHFPacket) { @@ -120,5 +119,5 @@ func handleMsgMhfCaravanMyRank(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(0) bf.WriteInt32(0) */ - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } diff --git a/server/channelserver/handlers_character.go b/server/channelserver/handlers_character.go index 30b81b97a..9adb349d9 100644 --- a/server/channelserver/handlers_character.go +++ b/server/channelserver/handlers_character.go @@ -5,7 +5,6 @@ import ( "errors" "erupe-ce/config" "erupe-ce/utils/bfutil" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/stringsupport" "fmt" @@ -261,5 +260,5 @@ func (save *CharacterSaveData) updateStructWithSaveData() { func handleMsgMhfSexChanger(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSexChanger) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_clients.go b/server/channelserver/handlers_clients.go index dccb8d4a1..3fd051ef1 100644 --- a/server/channelserver/handlers_clients.go +++ b/server/channelserver/handlers_clients.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/stringsupport" @@ -19,7 +18,7 @@ func handleMsgSysEnumerateClient(s *Session, p mhfpacket.MHFPacket) { if !ok { s.Server.stagesLock.RUnlock() s.Logger.Warn("Can't enumerate clients for stage that doesn't exist!", zap.String("stageID", pkt.StageID)) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } s.Server.stagesLock.RUnlock() @@ -55,7 +54,7 @@ func handleMsgSysEnumerateClient(s *Session, p mhfpacket.MHFPacket) { } stage.RUnlock() - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) s.Logger.Debug("MsgSysEnumerateClient Done!") } @@ -86,7 +85,7 @@ func handleMsgMhfListMember(s *Session, p mhfpacket.MHFPacket) { } resp.Seek(0, 0) resp.WriteUint32(count) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfOprMember(s *Session, p mhfpacket.MHFPacket) { @@ -119,7 +118,7 @@ func handleMsgMhfOprMember(s *Session, p mhfpacket.MHFPacket) { } } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfShutClient(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_data.go b/server/channelserver/handlers_data.go index 069582330..ded49b852 100644 --- a/server/channelserver/handlers_data.go +++ b/server/channelserver/handlers_data.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/gametime" "erupe-ce/utils/mhfmon" @@ -39,7 +38,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) { diff, err := nullcomp.Decompress(pkt.RawDataPayload) if err != nil { s.Logger.Error("Failed to decompress diff", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } // Perform diff. @@ -51,7 +50,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) { saveData, err := nullcomp.Decompress(pkt.RawDataPayload) if err != nil { s.Logger.Error("Failed to decompress savedata from packet", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } if config.GetConfig().SaveDumps.RawEnabled { @@ -82,7 +81,7 @@ func handleMsgMhfSavedata(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to update character name in db", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func grpToGR(n int) uint16 { @@ -154,7 +153,7 @@ func handleMsgMhfLoaddata(s *Session, p mhfpacket.MHFPacket) { } if _, err := os.Stat(filepath.Join(config.GetConfig().BinPath, "save_override.bin")); err == nil { data, _ := os.ReadFile(filepath.Join(config.GetConfig().BinPath, "save_override.bin")) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) return } @@ -165,7 +164,7 @@ func handleMsgMhfLoaddata(s *Session, p mhfpacket.MHFPacket) { s.rawConn.Close() // Terminate the connection return } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) decompSaveData, err := nullcomp.Decompress(data) if err != nil { @@ -191,7 +190,7 @@ func handleMsgMhfSaveScenarioData(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to update scenario data in db", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfLoadScenarioData(s *Session, p mhfpacket.MHFPacket) { @@ -209,7 +208,7 @@ func handleMsgMhfLoadScenarioData(s *Session, p mhfpacket.MHFPacket) { } else { bf.WriteBytes(scenarioData) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } var paperGiftData = map[uint32][]PaperGift{ @@ -1546,7 +1545,7 @@ func handleMsgMhfGetPaperData(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(gift.Unk3) data = append(data, bf) } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } else if pkt.Unk2 == 0 { bf := byteframe.NewByteFrame() bf.WriteUint16(uint16(len(paperMissions.Timetables))) @@ -1564,7 +1563,7 @@ func handleMsgMhfGetPaperData(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(mdata.Reward2ID) bf.WriteUint8(mdata.Reward2Quantity) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } else { for _, pdata := range paperData { bf := byteframe.NewByteFrame() @@ -1577,7 +1576,7 @@ func handleMsgMhfGetPaperData(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt16(pdata.Unk6) data = append(data, bf) } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } } diff --git a/server/channelserver/handlers_distitem.go b/server/channelserver/handlers_distitem.go index 2cc727d93..3bfcfe74e 100644 --- a/server/channelserver/handlers_distitem.go +++ b/server/channelserver/handlers_distitem.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" ps "erupe-ce/utils/pascalstring" @@ -123,7 +122,7 @@ func handleMsgMhfEnumerateDistItem(s *Session, p mhfpacket.MHFPacket) { } } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type DistributionItem struct { @@ -167,7 +166,7 @@ func handleMsgMhfApplyDistItem(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(item.ID) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfAcquireDistItem(s *Session, p mhfpacket.MHFPacket) { @@ -200,7 +199,7 @@ func handleMsgMhfAcquireDistItem(s *Session, p mhfpacket.MHFPacket) { } } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetDistDescription(s *Session, p mhfpacket.MHFPacket) { @@ -213,11 +212,11 @@ func handleMsgMhfGetDistDescription(s *Session, p mhfpacket.MHFPacket) { err = database.QueryRow("SELECT description FROM distribution WHERE id = $1", pkt.DistributionID).Scan(&desc) if err != nil { s.Logger.Error("Error parsing item distribution description", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } bf := byteframe.NewByteFrame() ps.Uint16(bf, desc, true) ps.Uint16(bf, "", false) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_diva.go b/server/channelserver/handlers_diva.go index b719c079f..139e769f7 100644 --- a/server/channelserver/handlers_diva.go +++ b/server/channelserver/handlers_diva.go @@ -3,7 +3,6 @@ package channelserver import ( "encoding/hex" config "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/gametime" "erupe-ce/utils/stringsupport" @@ -88,9 +87,9 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) { if config.GetConfig().DebugOptions.DivaOverride >= 0 { if config.GetConfig().DebugOptions.DivaOverride == 0 { if config.GetConfig().ClientID >= config.Z2 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 36)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 36)) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 32)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 32)) } return } @@ -111,7 +110,7 @@ func handleMsgMhfGetUdSchedule(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(0x02) // Unk 00000010 bf.WriteUint16(0x02) // Unk 00000010 - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetUdInfo(s *Session, p mhfpacket.MHFPacket) { @@ -131,45 +130,45 @@ func handleMsgMhfGetUdInfo(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(uint32(udInfo.EndTime.Unix())) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfGetKijuInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetKijuInfo) // Temporary canned response data, _ := hex.DecodeString("04965C959782CC8B468EEC00000000000000000000000000000000000000000000815C82A082E782B582DC82A982BA82CC82AB82B682E3815C0A965C959782C682CD96D282E98E7682A281420A95B782AD8ED282C997458B4382F0975E82A682E98142000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001018BAD8C8282CC8B468EEC00000000000000000000000000000000000000000000815C82AB82E582A482B082AB82CC82AB82B682E3815C0A8BAD8C8282C682CD8BAD82A290BA904681420A95B782AD8ED282CC97CD82F08CA482AC909F82DC82B78142200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003138C8B8F5782CC8B468EEC00000000000000000000000000000000000000000000815C82AF82C182B582E382A482CC82AB82B682E3815C0A8C8B8F5782C682CD8A6D8CC582BD82E9904D978A81420A8F5782DF82E982D982C782C98EEB906C82BD82BF82CC90B8905F97CD82C682C882E9814200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041189CC8CEC82CC8B468EEC00000000000000000000000000000000000000000000815C82A482BD82DC82E082E882CC82AB82B682E3815C0A89CC8CEC82C682CD89CC955082CC8CEC82E881420A8F5782DF82E982D982C782C98EEB906C82BD82BF82CC8E7882A682C682C882E9814220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000212") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSetKiju(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSetKiju) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfAddUdPoint(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAddUdPoint) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetUdMyPoint(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdMyPoint) // Temporary canned response data, _ := hex.DecodeString("00040000013C000000FA000000000000000000040000007E0000003C02000000000000000000000000000000000000000000000000000002000004CC00000438000000000000000000000000000000000000000000000000000000020000026E00000230000000000000000000020000007D0000007D000000000000000000000000000000000000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdTotalPointInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTotalPointInfo) // Temporary canned response data, _ := hex.DecodeString("00000000000007A12000000000000F424000000000001E848000000000002DC6C000000000003D090000000000004C4B4000000000005B8D8000000000006ACFC000000000007A1200000000000089544000000000009896800000000000E4E1C00000000001312D0000000000017D78400000000001C9C3800000000002160EC00000000002625A000000000002AEA5400000000002FAF0800000000003473BC0000000000393870000000000042C1D800000000004C4B40000000000055D4A800000000005F5E10000000000008954400000000001C9C3800000000003473BC00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001020300000000000000000000000000000000000000000000000000000000000000000000000000000000101F1420") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdSelectedColorInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdSelectedColorInfo) // Unk - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x01, 0x01, 0x01, 0x02, 0x03, 0x02, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x01, 0x01, 0x01, 0x02, 0x03, 0x02, 0x00, 0x00}) } func handleMsgMhfGetUdMonsterPoint(s *Session, p mhfpacket.MHFPacket) { @@ -301,36 +300,36 @@ func handleMsgMhfGetUdMonsterPoint(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint16(mp.Points) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfGetUdDailyPresentList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdDailyPresentList) // Temporary canned response data, _ := hex.DecodeString("0100001600000A5397DF00000000000000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdNormaPresentList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdNormaPresentList) // Temporary canned response data, _ := hex.DecodeString("0100001600000A5397DF00000000000000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfAcquireUdItem(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAcquireUdItem) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetUdRanking(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdRanking) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetUdMyRanking(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdMyRanking) // Temporary canned response data, _ := hex.DecodeString("00000515000005150000CEB4000003CE000003CE0000CEB44D49444E494748542D414E47454C0000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } diff --git a/server/channelserver/handlers_event.go b/server/channelserver/handlers_event.go index 08e376f9b..ac2e59c51 100644 --- a/server/channelserver/handlers_event.go +++ b/server/channelserver/handlers_event.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/gametime" "erupe-ce/utils/token" @@ -48,7 +47,7 @@ func handleMsgMhfEnumerateEvent(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type activeFeature struct { @@ -89,7 +88,7 @@ func handleMsgMhfGetWeeklySchedule(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(feature.ActiveFeatures) bf.WriteUint16(0) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func generateFeatureWeapons(count int) activeFeature { @@ -147,7 +146,7 @@ func handleMsgMhfGetKeepLoginBoostStatus(s *Session, p mhfpacket.MHFPacket) { rows, err := database.Queryx("SELECT week_req, expiration, reset FROM login_boost WHERE char_id=$1 ORDER BY week_req", s.CharID) if err != nil || config.GetConfig().GameplayOptions.DisableLoginBoost { rows.Close() - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 35)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 35)) return } for rows.Next() { @@ -200,7 +199,7 @@ func handleMsgMhfGetKeepLoginBoostStatus(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUseKeepLoginBoost(s *Session, p mhfpacket.MHFPacket) { @@ -222,12 +221,12 @@ func handleMsgMhfUseKeepLoginBoost(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE login_boost SET expiration=$1, reset=$2 WHERE char_id=$3 AND week_req=$4`, expiration, gametime.TimeWeekNext(), s.CharID, pkt.BoostWeekUsed) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetRestrictionEvent(s *Session, p mhfpacket.MHFPacket) {} func handleMsgMhfSetRestrictionEvent(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSetRestrictionEvent) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_festa.go b/server/channelserver/handlers_festa.go index ec0e7177b..dff217704 100644 --- a/server/channelserver/handlers_festa.go +++ b/server/channelserver/handlers_festa.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -21,7 +20,7 @@ func handleMsgMhfSaveMezfesData(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE characters SET mezfes=$1 WHERE id=$2`, pkt.RawDataPayload, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfLoadMezfesData(s *Session, p mhfpacket.MHFPacket) { @@ -42,7 +41,7 @@ func handleMsgMhfLoadMezfesData(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(0) bf.WriteUint32(0) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfEnumerateRanking(s *Session, p mhfpacket.MHFPacket) { @@ -75,7 +74,7 @@ func handleMsgMhfEnumerateRanking(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(uint32(gametime.TimeAdjusted().Unix())) // TS Current Time bf.WriteUint8(3) bf.WriteBytes(make([]byte, 4)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) return } bf.WriteUint32(uint32(gametime.TimeAdjusted().Unix())) // TS Current Time @@ -101,7 +100,7 @@ func handleMsgMhfEnumerateRanking(s *Session, p mhfpacket.MHFPacket) { psUint16 desc */ - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func cleanupFesta(s *Session) { @@ -199,7 +198,7 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { var timestamps []uint32 if config.GetConfig().DebugOptions.FestaOverride >= 0 { if config.GetConfig().DebugOptions.FestaOverride == 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } timestamps = generateFestaTimestamps(s, uint32(config.GetConfig().DebugOptions.FestaOverride), true) @@ -208,7 +207,7 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { } if timestamps[0] > uint32(gametime.TimeAdjusted().Unix()) { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } @@ -373,7 +372,7 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) { if config.GetConfig().ClientID >= config.G52 { ps.Uint16(bf, "", false) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } // state festa (U)ser @@ -389,7 +388,7 @@ func handleMsgMhfStateFestaU(s *Session, p mhfpacket.MHFPacket) { applicant, _ = guild.HasApplicationForCharID(s, s.CharID) } if err != nil || guild == nil || applicant { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } var souls, exists uint32 @@ -404,7 +403,7 @@ func handleMsgMhfStateFestaU(s *Session, p mhfpacket.MHFPacket) { bf.WriteBool(false) bf.WriteBool(true) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } // state festa (G)uild @@ -422,7 +421,7 @@ func handleMsgMhfStateFestaG(s *Session, p mhfpacket.MHFPacket) { resp.WriteInt32(-1) resp.WriteInt32(0) resp.WriteInt32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) return } resp.WriteUint32(guild.Souls) @@ -430,19 +429,19 @@ func handleMsgMhfStateFestaG(s *Session, p mhfpacket.MHFPacket) { resp.WriteInt32(1) // unk, rank? resp.WriteInt32(1) // unk resp.WriteInt32(1) // unk - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfEnumerateFestaMember(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfEnumerateFestaMember) guild, err := GetGuildInfoByCharacterId(s, s.CharID) if err != nil || guild == nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } members, err := GetGuildMembers(s, guild.ID, false) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } sort.Slice(members, func(i, j int) bool { @@ -466,7 +465,7 @@ func handleMsgMhfEnumerateFestaMember(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(member.Souls) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfVoteFesta(s *Session, p mhfpacket.MHFPacket) { @@ -476,7 +475,7 @@ func handleMsgMhfVoteFesta(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE guild_characters SET trial_vote=$1 WHERE character_id=$2`, pkt.TrialID, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfEntryFesta(s *Session, p mhfpacket.MHFPacket) { @@ -487,7 +486,7 @@ func handleMsgMhfEntryFesta(s *Session, p mhfpacket.MHFPacket) { } guild, err := GetGuildInfoByCharacterId(s, s.CharID) if err != nil || guild == nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } team := uint32(token.RNG.Intn(2)) @@ -499,7 +498,7 @@ func handleMsgMhfEntryFesta(s *Session, p mhfpacket.MHFPacket) { } bf := byteframe.NewByteFrame() bf.WriteUint32(team) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfChargeFesta(s *Session, p mhfpacket.MHFPacket) { @@ -516,7 +515,7 @@ func handleMsgMhfChargeFesta(s *Session, p mhfpacket.MHFPacket) { _, _ = tx.Exec(`INSERT INTO festa_submissions VALUES ($1, $2, $3, $4, now())`, s.CharID, pkt.GuildID, i, pkt.Souls[i]) } _ = tx.Commit() - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfAcquireFesta(s *Session, p mhfpacket.MHFPacket) { @@ -526,7 +525,7 @@ func handleMsgMhfAcquireFesta(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("INSERT INTO public.festa_prizes_accepted VALUES (0, $1)", s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfAcquireFestaPersonalPrize(s *Session, p mhfpacket.MHFPacket) { @@ -536,7 +535,7 @@ func handleMsgMhfAcquireFestaPersonalPrize(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("INSERT INTO public.festa_prizes_accepted VALUES ($1, $2)", pkt.PrizeID, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfAcquireFestaIntermediatePrize(s *Session, p mhfpacket.MHFPacket) { @@ -546,7 +545,7 @@ func handleMsgMhfAcquireFestaIntermediatePrize(s *Session, p mhfpacket.MHFPacket s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("INSERT INTO public.festa_prizes_accepted VALUES ($1, $2)", pkt.PrizeID, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type Prize struct { @@ -585,7 +584,7 @@ func handleMsgMhfEnumerateFestaPersonalPrize(s *Session, p mhfpacket.MHFPacket) bf := byteframe.NewByteFrame() bf.WriteUint32(count) bf.WriteBytes(prizeData.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfEnumerateFestaIntermediatePrize(s *Session, p mhfpacket.MHFPacket) { @@ -615,5 +614,5 @@ func handleMsgMhfEnumerateFestaIntermediatePrize(s *Session, p mhfpacket.MHFPack bf := byteframe.NewByteFrame() bf.WriteUint32(count) bf.WriteBytes(prizeData.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_guild.go b/server/channelserver/handlers_guild.go index 19e8595fd..fa8477d15 100644 --- a/server/channelserver/handlers_guild.go +++ b/server/channelserver/handlers_guild.go @@ -6,7 +6,6 @@ import ( "encoding/json" "errors" "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/gametime" "erupe-ce/utils/mhfitem" @@ -684,7 +683,7 @@ func HandleMsgMhfCreateGuild(s *Session, p mhfpacket.MHFPacket) { // style message, it's better than nothing for now. bf.WriteUint32(0x01010101) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleFail(pkt.AckHandle, bf.Data()) return } @@ -692,7 +691,7 @@ func HandleMsgMhfCreateGuild(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(uint32(guildId)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfOperateGuild(s *Session, p mhfpacket.MHFPacket) { @@ -701,7 +700,7 @@ func HandleMsgMhfOperateGuild(s *Session, p mhfpacket.MHFPacket) { guild, err := GetGuildInfoByID(s, pkt.GuildID) characterGuildInfo, err := GetCharacterGuildData(s, s.CharID) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } database, err := db.GetDB() @@ -780,14 +779,14 @@ func HandleMsgMhfOperateGuild(s *Session, p mhfpacket.MHFPacket) { handleAvoidLeadershipUpdate(s, pkt, false) case mhfpacket.OperateGuildUpdateComment: if !characterGuildInfo.IsLeader && !characterGuildInfo.IsSubLeader() { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } guild.Comment = stringsupport.SJISToUTF8(pkt.Data2.ReadNullTerminatedBytes()) guild.Save(s) case mhfpacket.OperateGuildUpdateMotto: if !characterGuildInfo.IsLeader && !characterGuildInfo.IsSubLeader() { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } _ = pkt.Data1.ReadUint16() @@ -827,9 +826,9 @@ func HandleMsgMhfOperateGuild(s *Session, p mhfpacket.MHFPacket) { } if len(bf.Data()) > 0 { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } else { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } } @@ -903,7 +902,7 @@ func handleAvoidLeadershipUpdate(s *Session, pkt *mhfpacket.MsgMhfOperateGuild, characterGuildData, err := GetCharacterGuildData(s, s.CharID) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } @@ -912,11 +911,11 @@ func handleAvoidLeadershipUpdate(s *Session, pkt *mhfpacket.MsgMhfOperateGuild, err = characterGuildData.Save(s) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) { @@ -925,14 +924,14 @@ func HandleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) { guild, err := GetGuildInfoByCharacterId(s, pkt.CharID) if err != nil || guild == nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } actorCharacter, err := GetCharacterGuildData(s, s.CharID) if err != nil || (!actorCharacter.IsSubLeader() && guild.LeaderCharID != s.CharID) { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } @@ -963,12 +962,12 @@ func HandleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) { IsSystemMessage: true, } default: - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) s.Logger.Warn(fmt.Sprintf("unhandled operateGuildMember action '%d'", pkt.Action)) } if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } else { mail.Send(s, nil) for _, channel := range s.Server.Channels { @@ -978,7 +977,7 @@ func HandleMsgMhfOperateGuildMember(s *Session, p mhfpacket.MHFPacket) { } } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } } @@ -1013,7 +1012,7 @@ func HandleMsgMhfInfoGuild(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(0) // Count resp.WriteUint8(0) // Unk, read if count == 0. - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) return } @@ -1221,9 +1220,9 @@ func HandleMsgMhfInfoGuild(s *Session, p mhfpacket.MHFPacket) { } bf.WriteUint8(0) // Unk - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 5)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 5)) } } @@ -1430,7 +1429,7 @@ func HandleMsgMhfEnumerateGuild(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfArrangeGuildMember(s *Session, p mhfpacket.MHFPacket) { @@ -1465,7 +1464,7 @@ func HandleMsgMhfArrangeGuildMember(s *Session, p mhfpacket.MHFPacket) { return } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) { @@ -1483,7 +1482,7 @@ func HandleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) { if guild != nil { isApplicant, _ := guild.HasApplicationForCharID(s, s.CharID) if isApplicant { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 2)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 2)) return } } @@ -1494,10 +1493,10 @@ func HandleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Warn("failed to retrieve guild sending no result message") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 2)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 2)) return } else if guild == nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 2)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 2)) return } @@ -1586,7 +1585,7 @@ func HandleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(member.RPYesterday) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGetGuildManageRight(s *Session, p mhfpacket.MHFPacket) { @@ -1597,7 +1596,7 @@ func HandleMsgMhfGetGuildManageRight(s *Session, p mhfpacket.MHFPacket) { guild, err = GetGuildInfoByID(s, s.prevGuildID) s.prevGuildID = 0 if guild == nil || err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } } @@ -1610,12 +1609,12 @@ func HandleMsgMhfGetGuildManageRight(s *Session, p mhfpacket.MHFPacket) { bf.WriteBool(member.Recruiter) bf.WriteBytes(make([]byte, 3)) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGetUdGuildMapInfo(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdGuildMapInfo) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfGetGuildTargetMemberNum(s *Session, p mhfpacket.MHFPacket) { @@ -1631,7 +1630,7 @@ func HandleMsgMhfGetGuildTargetMemberNum(s *Session, p mhfpacket.MHFPacket) { } if err != nil || guild == nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x02}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x02}) return } @@ -1640,7 +1639,7 @@ func HandleMsgMhfGetGuildTargetMemberNum(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(0x0) bf.WriteUint16(guild.MemberCount - 1) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func guildGetItems(s *Session, guildID uint32) []mhfitem.MHFItemStack { @@ -1667,7 +1666,7 @@ func HandleMsgMhfEnumerateGuildItem(s *Session, p mhfpacket.MHFPacket) { items := guildGetItems(s, pkt.GuildID) bf := byteframe.NewByteFrame() bf.WriteBytes(mhfitem.SerializeWarehouseItems(items)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfUpdateGuildItem(s *Session, p mhfpacket.MHFPacket) { @@ -1678,7 +1677,7 @@ func HandleMsgMhfUpdateGuildItem(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE guilds SET item_box=$1 WHERE id=$2`, mhfitem.SerializeWarehouseItems(newStacks), pkt.GuildID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfUpdateGuildIcon(s *Session, p mhfpacket.MHFPacket) { @@ -1702,7 +1701,7 @@ func HandleMsgMhfUpdateGuildIcon(s *Session, p mhfpacket.MHFPacket) { zap.Uint32("guildID", guild.ID), zap.Uint32("charID", s.CharID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } @@ -1730,11 +1729,11 @@ func HandleMsgMhfUpdateGuildIcon(s *Session, p mhfpacket.MHFPacket) { err = guild.Save(s) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfReadGuildcard(s *Session, p mhfpacket.MHFPacket) { @@ -1750,7 +1749,7 @@ func HandleMsgMhfReadGuildcard(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(0) resp.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } type GuildMission struct { @@ -1797,29 +1796,29 @@ func HandleMsgMhfGetGuildMissionList(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(mission.RewardLevel) bf.WriteUint32(uint32(gametime.TimeAdjusted().Unix())) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGetGuildMissionRecord(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGuildMissionRecord) // No guild mission records = 0x190 empty bytes - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 0x190)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 0x190)) } func HandleMsgMhfAddGuildMissionCount(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAddGuildMissionCount) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfSetGuildMissionTarget(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfSetGuildMissionTarget) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfCancelGuildMissionTarget(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfCancelGuildMissionTarget) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type GuildMeal struct { @@ -1839,7 +1838,7 @@ func HandleMsgMhfLoadGuildCooking(s *Session, p mhfpacket.MHFPacket) { data, err := database.Queryx("SELECT id, meal_id, level, created_at FROM guild_meals WHERE guild_id = $1", guild.ID) if err != nil { s.Logger.Error("Failed to get guild meals from db", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 2)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 2)) return } var meals []GuildMeal @@ -1861,7 +1860,7 @@ func HandleMsgMhfLoadGuildCooking(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(meal.Level) bf.WriteUint32(uint32(meal.CreatedAt.Unix())) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfRegistGuildCooking(s *Session, p mhfpacket.MHFPacket) { @@ -1883,14 +1882,14 @@ func HandleMsgMhfRegistGuildCooking(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(uint32(pkt.MealID)) bf.WriteUint32(uint32(pkt.Success)) bf.WriteUint32(uint32(startTime.Unix())) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGetGuildWeeklyBonusMaster(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGuildWeeklyBonusMaster) // Values taken from brand new guild capture - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 40)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 40)) } func HandleMsgMhfGetGuildWeeklyBonusActiveCount(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGuildWeeklyBonusActiveCount) @@ -1898,7 +1897,7 @@ func HandleMsgMhfGetGuildWeeklyBonusActiveCount(s *Session, p mhfpacket.MHFPacke bf.WriteUint8(60) // Active count bf.WriteUint8(60) // Current active count bf.WriteUint8(0) // New active count - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGuildHuntdata(s *Session, p mhfpacket.MHFPacket) { @@ -1956,7 +1955,7 @@ func HandleMsgMhfGuildHuntdata(s *Session, p mhfpacket.MHFPacket) { bf.WriteBool(false) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type MessageBoardPost struct { @@ -1982,7 +1981,7 @@ func HandleMsgMhfEnumerateGuildMessageBoard(s *Session, p mhfpacket.MHFPacket) { msgs, err := database.Queryx("SELECT id, stamp_id, title, body, author_id, created_at, liked_by FROM guild_posts WHERE guild_id = $1 AND post_type = $2 ORDER BY created_at DESC", guild.ID, int(pkt.BoardType)) if err != nil { s.Logger.Error("Failed to get guild messages from db", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } database.Exec("UPDATE characters SET guild_post_checked = now() WHERE id = $1", s.CharID) @@ -2008,7 +2007,7 @@ func HandleMsgMhfEnumerateGuildMessageBoard(s *Session, p mhfpacket.MHFPacket) { data := byteframe.NewByteFrame() data.WriteUint32(postCount) data.WriteBytes(bf.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data.Data()) + s.DoAckBufSucceed(pkt.AckHandle, data.Data()) } func HandleMsgMhfUpdateGuildMessageBoard(s *Session, p mhfpacket.MHFPacket) { @@ -2023,7 +2022,7 @@ func HandleMsgMhfUpdateGuildMessageBoard(s *Session, p mhfpacket.MHFPacket) { applicant, _ = guild.HasApplicationForCharID(s, s.CharID) } if err != nil || guild == nil || applicant { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } switch pkt.MessageOp { @@ -2057,17 +2056,17 @@ func HandleMsgMhfUpdateGuildMessageBoard(s *Session, p mhfpacket.MHFPacket) { if err == nil { database.QueryRow("SELECT COUNT(*) FROM guild_posts WHERE guild_id = $1 AND (EXTRACT(epoch FROM created_at)::int) > $2", guild.ID, timeChecked.Unix()).Scan(&newPosts) if newPosts > 0 { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) return } } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfEntryRookieGuild(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfEntryRookieGuild) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfUpdateForceGuildRank(s *Session, p mhfpacket.MHFPacket) {} @@ -2076,12 +2075,12 @@ func HandleMsgMhfAddGuildWeeklyBonusExceptionalUser(s *Session, p mhfpacket.MHFP pkt := p.(*mhfpacket.MsgMhfAddGuildWeeklyBonusExceptionalUser) // TODO: record pkt.NumUsers to DB // must use addition - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func HandleMsgMhfGenerateUdGuildMap(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGenerateUdGuildMap) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfUpdateGuild(s *Session, p mhfpacket.MHFPacket) {} @@ -2093,19 +2092,19 @@ func HandleMsgMhfSetGuildManageRight(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("UPDATE guild_characters SET recruiter=$1 WHERE character_id=$2", pkt.Allowed, pkt.CharID) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfCheckMonthlyItem(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfCheckMonthlyItem) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) // TODO: Implement month-by-month tracker, 0 = Not claimed, 1 = Claimed // Also handles HLC and EXC items, IDs = 064D, 076B } func HandleMsgMhfAcquireMonthlyItem(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAcquireMonthlyItem) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfEnumerateInvGuild(s *Session, p mhfpacket.MHFPacket) { @@ -2115,7 +2114,7 @@ func HandleMsgMhfEnumerateInvGuild(s *Session, p mhfpacket.MHFPacket) { func HandleMsgMhfOperationInvGuild(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfOperationInvGuild) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfUpdateGuildcard(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_guild_adventure.go b/server/channelserver/handlers_guild_adventure.go index b4a0912e0..edbcb41ea 100644 --- a/server/channelserver/handlers_guild_adventure.go +++ b/server/channelserver/handlers_guild_adventure.go @@ -5,7 +5,6 @@ import ( "time" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -33,7 +32,7 @@ func HandleMsgMhfLoadGuildAdventure(s *Session, p mhfpacket.MHFPacket) { data, err := database.Queryx("SELECT id, destination, charge, depart, return, collected_by FROM guild_adventures WHERE guild_id = $1", guild.ID) if err != nil { s.Logger.Error("Failed to get guild adventures from db", zap.Error(err)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } temp := byteframe.NewByteFrame() @@ -55,7 +54,7 @@ func HandleMsgMhfLoadGuildAdventure(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint8(uint8(count)) bf.WriteBytes(temp.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfRegistGuildAdventure(s *Session, p mhfpacket.MHFPacket) { @@ -69,7 +68,7 @@ func HandleMsgMhfRegistGuildAdventure(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to register guild adventure", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfAcquireGuildAdventure(s *Session, p mhfpacket.MHFPacket) { @@ -89,7 +88,7 @@ func HandleMsgMhfAcquireGuildAdventure(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to collect adventure in db", zap.Error(err)) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfChargeGuildAdventure(s *Session, p mhfpacket.MHFPacket) { @@ -102,7 +101,7 @@ func HandleMsgMhfChargeGuildAdventure(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to charge guild adventure", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfRegistGuildAdventureDiva(s *Session, p mhfpacket.MHFPacket) { @@ -116,5 +115,5 @@ func HandleMsgMhfRegistGuildAdventureDiva(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to register guild adventure", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_guild_alliance.go b/server/channelserver/handlers_guild_alliance.go index 8476d6c5d..c0a3ee1f4 100644 --- a/server/channelserver/handlers_guild_alliance.go +++ b/server/channelserver/handlers_guild_alliance.go @@ -1,7 +1,6 @@ package channelserver import ( - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" ps "erupe-ce/utils/pascalstring" @@ -122,7 +121,7 @@ func HandleMsgMhfCreateJoint(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to create guild alliance in db", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x01, 0x01, 0x01, 0x01}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x01, 0x01, 0x01, 0x01}) } func HandleMsgMhfOperateJoint(s *Session, p mhfpacket.MHFPacket) { @@ -147,14 +146,14 @@ func HandleMsgMhfOperateJoint(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to disband alliance", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } else { s.Logger.Warn( "Non-owner of alliance attempted disband", zap.Uint32("CharID", s.CharID), zap.Uint32("AllyID", alliance.ID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } case mhfpacket.OPERATE_JOINT_LEAVE: if guild.LeaderCharID == s.CharID { @@ -166,13 +165,13 @@ func HandleMsgMhfOperateJoint(s *Session, p mhfpacket.MHFPacket) { database.Exec(`UPDATE guild_alliances SET sub2_id = NULL WHERE id = $1`, alliance.ID) } // TODO: Handle deleting Alliance applications - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } else { s.Logger.Warn( "Non-owner of guild attempted alliance leave", zap.Uint32("CharID", s.CharID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } case mhfpacket.OPERATE_JOINT_KICK: if alliance.ParentGuild.LeaderCharID == s.CharID { @@ -184,17 +183,17 @@ func HandleMsgMhfOperateJoint(s *Session, p mhfpacket.MHFPacket) { } else { database.Exec(`UPDATE guild_alliances SET sub2_id = NULL WHERE id = $1`, alliance.ID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } else { s.Logger.Warn( "Non-owner of alliance attempted kick", zap.Uint32("CharID", s.CharID), zap.Uint32("AllyID", alliance.ID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } default: - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) panic(fmt.Sprintf("Unhandled operate joint action '%d'", pkt.Action)) } } @@ -204,7 +203,7 @@ func HandleMsgMhfInfoJoint(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() alliance, err := GetAllianceData(s, pkt.AllianceID) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } else { bf.WriteUint32(alliance.ID) bf.WriteUint32(uint32(alliance.CreatedAt.Unix())) @@ -242,6 +241,6 @@ func HandleMsgMhfInfoJoint(s *Session, p mhfpacket.MHFPacket) { ps.Uint16(bf, alliance.SubGuild2.Name, true) ps.Uint16(bf, alliance.SubGuild2.LeaderName, true) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } } diff --git a/server/channelserver/handlers_guild_scout.go b/server/channelserver/handlers_guild_scout.go index 8c09e515c..b079b220d 100644 --- a/server/channelserver/handlers_guild_scout.go +++ b/server/channelserver/handlers_guild_scout.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -19,31 +18,31 @@ func HandleMsgMhfPostGuildScout(s *Session, p mhfpacket.MHFPacket) { actorCharGuildData, err := GetCharacterGuildData(s, s.CharID) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) panic(err) } if actorCharGuildData == nil || !actorCharGuildData.CanRecruit() { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) return } guildInfo, err := GetGuildInfoByID(s, actorCharGuildData.GuildID) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) panic(err) } hasApplication, err := guildInfo.HasApplicationForCharID(s, pkt.CharID) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) panic(err) } if hasApplication { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x04}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x04}) return } database, err := db.GetDB() @@ -60,7 +59,7 @@ func HandleMsgMhfPostGuildScout(s *Session, p mhfpacket.MHFPacket) { if err != nil { rollbackTransaction(s, transaction) - broadcast.DoAckBufFail(s, pkt.AckHandle, nil) + s.DoAckBufFail(pkt.AckHandle, nil) panic(err) } @@ -79,18 +78,18 @@ func HandleMsgMhfPostGuildScout(s *Session, p mhfpacket.MHFPacket) { if err != nil { rollbackTransaction(s, transaction) - broadcast.DoAckBufFail(s, pkt.AckHandle, nil) + s.DoAckBufFail(pkt.AckHandle, nil) return } err = transaction.Commit() if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, nil) + s.DoAckBufFail(pkt.AckHandle, nil) panic(err) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func HandleMsgMhfCancelGuildScout(s *Session, p mhfpacket.MHFPacket) { @@ -103,25 +102,25 @@ func HandleMsgMhfCancelGuildScout(s *Session, p mhfpacket.MHFPacket) { } if guildCharData == nil || !guildCharData.CanRecruit() { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) return } guild, err := GetGuildInfoByID(s, guildCharData.GuildID) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) return } err = guild.CancelInvitation(s, pkt.InvitationID) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) return } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfAnswerGuildScout(s *Session, p mhfpacket.MHFPacket) { @@ -144,7 +143,7 @@ func HandleMsgMhfAnswerGuildScout(s *Session, p mhfpacket.MHFPacket) { ) bf.WriteUint32(7) bf.WriteUint32(guild.ID) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) return } @@ -183,11 +182,11 @@ func HandleMsgMhfAnswerGuildScout(s *Session, p mhfpacket.MHFPacket) { if err != nil { bf.WriteUint32(7) bf.WriteUint32(guild.ID) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } else { bf.WriteUint32(0) bf.WriteUint32(guild.ID) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) for _, m := range mail { m.Send(s, nil) } @@ -200,12 +199,12 @@ func HandleMsgMhfGetGuildScoutList(s *Session, p mhfpacket.MHFPacket) { guildInfo, err := GetGuildInfoByCharacterId(s, s.CharID) if guildInfo == nil && s.prevGuildID == 0 { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } else { guildInfo, err = GetGuildInfoByID(s, s.prevGuildID) if guildInfo == nil || err != nil { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } } @@ -222,7 +221,7 @@ func HandleMsgMhfGetGuildScoutList(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("failed to retrieve scouted characters", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } @@ -245,7 +244,7 @@ func HandleMsgMhfGetGuildScoutList(s *Session, p mhfpacket.MHFPacket) { err = rows.Scan(&charID, &charName, &HR, &GR, &actorID) if err != nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, nil) + s.DoAckSimpleFail(pkt.AckHandle, nil) continue } @@ -270,7 +269,7 @@ func HandleMsgMhfGetGuildScoutList(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(count) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfGetRejectGuildScout(s *Session, p mhfpacket.MHFPacket) { @@ -291,7 +290,7 @@ func HandleMsgMhfGetRejectGuildScout(s *Session, p mhfpacket.MHFPacket) { zap.Error(err), zap.Uint32("charID", s.CharID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, nil) + s.DoAckSimpleFail(pkt.AckHandle, nil) return } @@ -301,7 +300,7 @@ func HandleMsgMhfGetRejectGuildScout(s *Session, p mhfpacket.MHFPacket) { response = 0x01 } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, response}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, response}) } func HandleMsgMhfSetRejectGuildScout(s *Session, p mhfpacket.MHFPacket) { @@ -318,9 +317,9 @@ func HandleMsgMhfSetRejectGuildScout(s *Session, p mhfpacket.MHFPacket) { zap.Error(err), zap.Uint32("charID", s.CharID), ) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, nil) + s.DoAckSimpleFail(pkt.AckHandle, nil) return } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, nil) + s.DoAckSimpleSucceed(pkt.AckHandle, nil) } diff --git a/server/channelserver/handlers_guild_tresure.go b/server/channelserver/handlers_guild_tresure.go index 96eb4ffb4..228fa046b 100644 --- a/server/channelserver/handlers_guild_tresure.go +++ b/server/channelserver/handlers_guild_tresure.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -29,7 +28,7 @@ func HandleMsgMhfEnumerateGuildTresure(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfEnumerateGuildTresure) guild, err := GetGuildInfoByCharacterId(s, s.CharID) if err != nil || guild == nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } var hunts []TreasureHunt @@ -57,7 +56,7 @@ func HandleMsgMhfEnumerateGuildTresure(s *Session, p mhfpacket.MHFPacket) { `, s.CharID, guild.ID) if err != nil { rows.Close() - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } else { for rows.Next() { @@ -84,7 +83,7 @@ func HandleMsgMhfEnumerateGuildTresure(s *Session, p mhfpacket.MHFPacket) { bf.WriteBool(h.Claimed) bf.WriteBytes(h.HuntData) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfRegistGuildTresure(s *Session, p mhfpacket.MHFPacket) { @@ -93,7 +92,7 @@ func HandleMsgMhfRegistGuildTresure(s *Session, p mhfpacket.MHFPacket) { huntData := byteframe.NewByteFrame() guild, err := GetGuildInfoByCharacterId(s, s.CharID) if err != nil || guild == nil { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } guildCats := getGuildAirouList(s) @@ -122,7 +121,7 @@ func HandleMsgMhfRegistGuildTresure(s *Session, p mhfpacket.MHFPacket) { } database.Exec(`INSERT INTO guild_hunts (guild_id, host_id, destination, level, hunt_data, cats_used) VALUES ($1, $2, $3, $4, $5, $6) `, guild.ID, s.CharID, destination, level, huntData.Data(), catsUsed) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfAcquireGuildTresure(s *Session, p mhfpacket.MHFPacket) { @@ -132,7 +131,7 @@ func HandleMsgMhfAcquireGuildTresure(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE guild_hunts SET acquired=true WHERE id=$1`, pkt.HuntID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func HandleMsgMhfOperateGuildTresureReport(s *Session, p mhfpacket.MHFPacket) { @@ -150,7 +149,7 @@ func HandleMsgMhfOperateGuildTresureReport(s *Session, p mhfpacket.MHFPacket) { case 2: // Claim treasure database.Exec(`INSERT INTO guild_hunts_claimed VALUES ($1, $2)`, pkt.HuntID, s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type TreasureSouvenir struct { @@ -168,10 +167,10 @@ func HandleMsgMhfGetGuildTresureSouvenir(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(souvenir.Destination) bf.WriteUint32(souvenir.Quantity) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func HandleMsgMhfAcquireGuildTresureSouvenir(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfAcquireGuildTresureSouvenir) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_house.go b/server/channelserver/handlers_house.go index 99858fcfd..7350d3338 100644 --- a/server/channelserver/handlers_house.go +++ b/server/channelserver/handlers_house.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/mhfitem" @@ -49,7 +48,7 @@ func handleMsgMhfUpdateInterior(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec(`UPDATE user_binary SET house_furniture=$1 WHERE id=$2`, pkt.InteriorData, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type HouseData struct { @@ -139,7 +138,7 @@ func handleMsgMhfEnumerateHouse(s *Session, p mhfpacket.MHFPacket) { } bf.Seek(0, 0) bf.WriteUint16(uint16(len(houses))) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUpdateHouse(s *Session, p mhfpacket.MHFPacket) { @@ -154,7 +153,7 @@ func handleMsgMhfUpdateHouse(s *Session, p mhfpacket.MHFPacket) { // 04 = open guild // 05 = open friends+guild database.Exec(`UPDATE user_binary SET house_state=$1, house_password=$2 WHERE id=$3`, pkt.State, pkt.Password, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfLoadHouse(s *Session, p mhfpacket.MHFPacket) { @@ -172,7 +171,7 @@ func handleMsgMhfLoadHouse(s *Session, p mhfpacket.MHFPacket) { if pkt.Destination != 9 && len(pkt.Password) > 0 && pkt.CheckPass { if pkt.Password != password { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } } @@ -208,7 +207,7 @@ func handleMsgMhfLoadHouse(s *Session, p mhfpacket.MHFPacket) { } if !allowed { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } } @@ -244,9 +243,9 @@ func handleMsgMhfLoadHouse(s *Session, p mhfpacket.MHFPacket) { } } if len(bf.Data()) == 0 { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } } @@ -259,9 +258,9 @@ func handleMsgMhfGetMyhouseInfo(s *Session, p mhfpacket.MHFPacket) { var data []byte database.QueryRow(`SELECT mission FROM user_binary WHERE id=$1`, s.CharID).Scan(&data) if len(data) > 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 9)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 9)) } } @@ -272,7 +271,7 @@ func handleMsgMhfUpdateMyhouseInfo(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("UPDATE user_binary SET mission=$1 WHERE id=$2", pkt.Data, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfLoadDecoMyset(s *Session, p mhfpacket.MHFPacket) { @@ -293,7 +292,7 @@ func handleMsgMhfLoadDecoMyset(s *Session, p mhfpacket.MHFPacket) { data = []byte{0x00, 0x00} } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) { @@ -306,7 +305,7 @@ func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) { err = database.QueryRow("SELECT decomyset FROM characters WHERE id = $1", s.CharID).Scan(&temp) if err != nil { s.Logger.Error("Failed to load decomyset", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } @@ -350,7 +349,7 @@ func handleMsgMhfSaveDecoMyset(s *Session, p mhfpacket.MHFPacket) { dumpSaveData(s, bf.Data(), "decomyset") database.Exec("UPDATE characters SET decomyset=$1 WHERE id=$2", bf.Data(), s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type Title struct { @@ -371,7 +370,7 @@ func handleMsgMhfEnumerateTitle(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(0) // Unk rows, err := database.Queryx("SELECT id, unlocked_at, updated_at FROM titles WHERE char_id=$1", s.CharID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) return } for rows.Next() { @@ -388,7 +387,7 @@ func handleMsgMhfEnumerateTitle(s *Session, p mhfpacket.MHFPacket) { } bf.Seek(0, io.SeekStart) bf.WriteUint16(count) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfAcquireTitle(s *Session, p mhfpacket.MHFPacket) { @@ -406,7 +405,7 @@ func handleMsgMhfAcquireTitle(s *Session, p mhfpacket.MHFPacket) { database.Exec(`UPDATE titles SET updated_at=now() WHERE id=$1 AND char_id=$2`, title, s.CharID) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfResetTitle(s *Session, p mhfpacket.MHFPacket) {} @@ -484,7 +483,7 @@ func handleMsgMhfOperateWarehouse(s *Session, p mhfpacket.MHFPacket) { // 2 = Rename // 3 = Get usage limit // 4 = Get gift box names (doesn't do anything?) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func addWarehouseItem(s *Session, item mhfitem.MHFItemStack) { @@ -560,9 +559,9 @@ func handleMsgMhfEnumerateWarehouse(s *Session, p mhfpacket.MHFPacket) { bf.WriteBytes(mhfitem.SerializeWarehouseEquipment(equipment)) } if bf.Index() > 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) } } @@ -601,5 +600,5 @@ func handleMsgMhfUpdateWarehouse(s *Session, p mhfpacket.MHFPacket) { } database.Exec(fmt.Sprintf(`UPDATE warehouse SET equip%d=$1 WHERE character_id=$2`, pkt.BoxIndex), mhfitem.SerializeWarehouseEquipment(fEquip), s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_kouryou.go b/server/channelserver/handlers_kouryou.go index 0caf8b87a..c7dea83a0 100644 --- a/server/channelserver/handlers_kouryou.go +++ b/server/channelserver/handlers_kouryou.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "fmt" @@ -24,7 +23,7 @@ func handleMsgMhfAddKouryouPoint(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(uint32(points)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfGetKouryouPoint(s *Session, p mhfpacket.MHFPacket) { @@ -40,7 +39,7 @@ func handleMsgMhfGetKouryouPoint(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(uint32(points)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfExchangeKouryouPoint(s *Session, p mhfpacket.MHFPacket) { @@ -57,5 +56,5 @@ func handleMsgMhfExchangeKouryouPoint(s *Session, p mhfpacket.MHFPacket) { } resp := byteframe.NewByteFrame() resp.WriteUint32(uint32(points)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } diff --git a/server/channelserver/handlers_mail.go b/server/channelserver/handlers_mail.go index 191f38ec5..d4846503d 100644 --- a/server/channelserver/handlers_mail.go +++ b/server/channelserver/handlers_mail.go @@ -2,7 +2,6 @@ package channelserver import ( "database/sql" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "erupe-ce/utils/stringsupport" "fmt" @@ -231,13 +230,13 @@ func handleMsgMhfReadMail(s *Session, p mhfpacket.MHFPacket) { } mailId := s.mailList[pkt.AccIndex] if mailId == 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0}) return } mail, err := GetMailByID(s, mailId) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0}) return } @@ -245,7 +244,7 @@ func handleMsgMhfReadMail(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() body := stringsupport.UTF8ToSJIS(mail.Body) bf.WriteNullTerminatedBytes(body) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfListMail(s *Session, p mhfpacket.MHFPacket) { @@ -253,7 +252,7 @@ func handleMsgMhfListMail(s *Session, p mhfpacket.MHFPacket) { mail, err := GetMailListForCharacter(s, s.CharID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0}) return } @@ -314,7 +313,7 @@ func handleMsgMhfListMail(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, msg.Data()) + s.DoAckBufSucceed(pkt.AckHandle, msg.Data()) } func handleMsgMhfOprtMail(s *Session, p mhfpacket.MHFPacket) { @@ -325,7 +324,7 @@ func handleMsgMhfOprtMail(s *Session, p mhfpacket.MHFPacket) { } mail, err := GetMailByID(s, s.mailList[pkt.AccIndex]) if err != nil { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } @@ -339,7 +338,7 @@ func handleMsgMhfOprtMail(s *Session, p mhfpacket.MHFPacket) { case mhfpacket.OperateMailAcquireItem: database.Exec(`UPDATE mail SET attached_item_received = TRUE WHERE id = $1`, mail.ID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfSendMail(s *Session, p mhfpacket.MHFPacket) { @@ -357,20 +356,20 @@ func handleMsgMhfSendMail(s *Session, p mhfpacket.MHFPacket) { g, err := GetGuildInfoByCharacterId(s, s.CharID) if err != nil { s.Logger.Error("Failed to get guild info for mail") - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } gm, err := GetGuildMembers(s, g.ID, false) if err != nil { s.Logger.Error("Failed to get guild members for mail") - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } for i := 0; i < len(gm); i++ { _, err := database.Exec(query, s.CharID, gm[i].CharID, pkt.Subject, pkt.Body, 0, 0, false) if err != nil { s.Logger.Error("Failed to send mail") - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } } @@ -380,5 +379,5 @@ func handleMsgMhfSendMail(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to send mail") } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_mercenary.go b/server/channelserver/handlers_mercenary.go index 80e300ec1..9e2bdeef6 100644 --- a/server/channelserver/handlers_mercenary.go +++ b/server/channelserver/handlers_mercenary.go @@ -6,7 +6,6 @@ import ( "erupe-ce/server/channelserver/compression/deltacomp" "erupe-ce/server/channelserver/compression/nullcomp" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -30,7 +29,7 @@ func handleMsgMhfLoadPartner(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load partner", zap.Error(err)) data = make([]byte, 9) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) { @@ -44,7 +43,7 @@ func handleMsgMhfSavePartner(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to save partner", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfLoadLegendDispatch(s *Session, p mhfpacket.MHFPacket) { @@ -63,7 +62,7 @@ func handleMsgMhfLoadLegendDispatch(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(dispatch.Unk) bf.WriteUint32(dispatch.Timestamp) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) { @@ -82,7 +81,7 @@ func handleMsgMhfLoadHunterNavi(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load hunternavi", zap.Error(err)) data = make([]byte, naviLength) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) { @@ -125,7 +124,7 @@ func handleMsgMhfSaveHunterNavi(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to save hunternavi", zap.Error(err)) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) { @@ -136,9 +135,9 @@ func handleMsgMhfMercenaryHuntdata(s *Session, p mhfpacket.MHFPacket) { // struct Hunt // uint32 HuntID // uint32 MonID - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 0)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 0)) } } @@ -152,7 +151,7 @@ func handleMsgMhfEnumerateMercenaryLog(s *Session, p mhfpacket.MHFPacket) { // []byte Name (len 18) // uint8 Unk // uint8 Unk - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfCreateMercenary(s *Session, p mhfpacket.MHFPacket) { @@ -166,7 +165,7 @@ func handleMsgMhfCreateMercenary(s *Session, p mhfpacket.MHFPacket) { _ = database.QueryRow("SELECT nextval('rasta_id_seq')").Scan(&nextID) database.Exec("UPDATE characters SET rasta_id=$1 WHERE id=$2", nextID, s.CharID) bf.WriteUint32(nextID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfSaveMercenary(s *Session, p mhfpacket.MHFPacket) { @@ -181,7 +180,7 @@ func handleMsgMhfSaveMercenary(s *Session, p mhfpacket.MHFPacket) { database.Exec("UPDATE characters SET savemercenary=$1, rasta_id=$2 WHERE id=$3", pkt.MercData, temp.ReadUint32(), s.CharID) } database.Exec("UPDATE characters SET gcp=$1, pact_id=$2 WHERE id=$3", pkt.GCP, pkt.PactMercID, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfReadMercenaryW(s *Session, p mhfpacket.MHFPacket) { @@ -243,7 +242,7 @@ func handleMsgMhfReadMercenaryW(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(gcp) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfReadMercenaryM(s *Session, p mhfpacket.MHFPacket) { @@ -260,7 +259,7 @@ func handleMsgMhfReadMercenaryM(s *Session, p mhfpacket.MHFPacket) { } else { resp.WriteBytes(data) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfContractMercenary(s *Session, p mhfpacket.MHFPacket) { @@ -277,7 +276,7 @@ func handleMsgMhfContractMercenary(s *Session, p mhfpacket.MHFPacket) { case 2: // Cancel loan database.Exec("UPDATE characters SET pact_id=0 WHERE id=$1", pkt.CID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) { @@ -292,7 +291,7 @@ func handleMsgMhfLoadOtomoAirou(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load otomoairou", zap.Error(err)) data = make([]byte, 10) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSaveOtomoAirou(s *Session, p mhfpacket.MHFPacket) { @@ -305,7 +304,7 @@ func handleMsgMhfSaveOtomoAirou(s *Session, p mhfpacket.MHFPacket) { decomp, err := nullcomp.Decompress(pkt.RawDataPayload[1:]) if err != nil { s.Logger.Error("Failed to decompress airou", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } bf := byteframe.NewByteFrameFromBytes(decomp) @@ -340,7 +339,7 @@ func handleMsgMhfSaveOtomoAirou(s *Session, p mhfpacket.MHFPacket) { comp = append([]byte{0x01}, comp...) database.Exec("UPDATE characters SET otomoairou=$1 WHERE id=$2", comp, s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfEnumerateAiroulist(s *Session, p mhfpacket.MHFPacket) { @@ -359,7 +358,7 @@ func handleMsgMhfEnumerateAiroulist(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint16(cat.WeaponID) resp.WriteUint32(0) // 32 bit unix timestamp, either time at which the cat stops being fatigued or the time at which it started } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } type Airou struct { diff --git a/server/channelserver/handlers_object.go b/server/channelserver/handlers_object.go index b94aaa0b5..b7fd6523e 100644 --- a/server/channelserver/handlers_object.go +++ b/server/channelserver/handlers_object.go @@ -5,7 +5,6 @@ import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ) @@ -26,7 +25,7 @@ func handleMsgSysCreateObject(s *Session, p mhfpacket.MHFPacket) { // Response to our requesting client. resp := byteframe.NewByteFrame() resp.WriteUint32(newObj.id) // New local obj handle. - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, resp.Data()) // Duplicate the object creation to all sessions in the same stage. dupObjUpdate := &mhfpacket.MsgSysDuplicateObject{ ObjID: newObj.id, diff --git a/server/channelserver/handlers_plate.go b/server/channelserver/handlers_plate.go index f91a494c0..2ec217b63 100644 --- a/server/channelserver/handlers_plate.go +++ b/server/channelserver/handlers_plate.go @@ -4,7 +4,6 @@ import ( "erupe-ce/network/mhfpacket" "erupe-ce/server/channelserver/compression/deltacomp" "erupe-ce/server/channelserver/compression/nullcomp" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" "fmt" @@ -22,7 +21,7 @@ func handleMsgMhfLoadPlateData(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to load platedata", zap.Error(err)) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { @@ -38,7 +37,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { err := database.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.CharID).Scan(&data) if err != nil { s.Logger.Error("Failed to load platedata", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } @@ -48,7 +47,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { data, err = nullcomp.Decompress(data) if err != nil { s.Logger.Error("Failed to decompress platedata", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } } else { @@ -61,14 +60,14 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)) if err != nil { s.Logger.Error("Failed to diff and compress platedata", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } _, err = database.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", saveOutput, s.CharID) if err != nil { s.Logger.Error("Failed to save platedata", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } @@ -82,7 +81,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfLoadPlateBox(s *Session, p mhfpacket.MHFPacket) { @@ -96,7 +95,7 @@ func handleMsgMhfLoadPlateBox(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to load platebox", zap.Error(err)) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { @@ -112,7 +111,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { err := database.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.CharID).Scan(&data) if err != nil { s.Logger.Error("Failed to load platebox", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } @@ -123,7 +122,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { data, err = nullcomp.Decompress(data) if err != nil { s.Logger.Error("Failed to decompress platebox", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } } else { @@ -136,14 +135,14 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { saveOutput, err := nullcomp.Compress(deltacomp.ApplyDataDiff(pkt.RawDataPayload, data)) if err != nil { s.Logger.Error("Failed to diff and compress platebox", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } _, err = database.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", saveOutput, s.CharID) if err != nil { s.Logger.Error("Failed to save platebox", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) return } @@ -156,7 +155,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to save platebox", zap.Error(err)) } } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfLoadPlateMyset(s *Session, p mhfpacket.MHFPacket) { @@ -171,7 +170,7 @@ func handleMsgMhfLoadPlateMyset(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load platemyset", zap.Error(err)) data = make([]byte, 1920) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) { @@ -186,5 +185,5 @@ func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error("Failed to save platemyset", zap.Error(err)) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index 2a4142c4d..a154de27c 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -3,7 +3,6 @@ package channelserver import ( "database/sql" "encoding/binary" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/decryption" @@ -111,10 +110,10 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error(fmt.Sprintf("Failed to open file: %s/scenarios/%s.bin", config.GetConfig().BinPath, filename)) // This will crash the game. - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) return } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } else { if config.GetConfig().DebugOptions.QuestTools { s.Logger.Debug( @@ -131,13 +130,13 @@ func handleMsgSysGetFile(s *Session, p mhfpacket.MHFPacket) { if err != nil { s.Logger.Error(fmt.Sprintf("Failed to open file: %s/quests/%s.bin", config.GetConfig().BinPath, pkt.Filename)) // This will crash the game. - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) return } if config.GetConfig().ClientID <= config.Z1 && config.GetConfig().DebugOptions.AutoQuestBackport { data = BackportQuest(decryption.UnpackSimple(data)) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } } @@ -177,9 +176,9 @@ func handleMsgMhfLoadFavoriteQuest(s *Session, p mhfpacket.MHFPacket) { } err = database.QueryRow("SELECT savefavoritequest FROM characters WHERE id = $1", s.CharID).Scan(&data) if err == nil && len(data) > 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) } } @@ -191,7 +190,7 @@ func handleMsgMhfSaveFavoriteQuest(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("UPDATE characters SET savefavoritequest=$1 WHERE id=$2", pkt.Data, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func loadQuestFile(s *Session, questId int) []byte { @@ -657,7 +656,7 @@ func handleMsgMhfEnumerateQuest(s *Session, p mhfpacket.MHFPacket) { bf.Seek(0, io.SeekStart) bf.WriteUint16(returnedCount) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func getTuneValueRange(start uint16, value uint16) []tuneValue { @@ -695,5 +694,5 @@ func handleMsgMhfGetUdBonusQuestInfo(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint8(q.Unk6) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } diff --git a/server/channelserver/handlers_register.go b/server/channelserver/handlers_register.go index 708a6fb0d..94c060ab3 100644 --- a/server/channelserver/handlers_register.go +++ b/server/channelserver/handlers_register.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "strings" ) @@ -13,13 +12,13 @@ func handleMsgMhfRegisterEvent(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() // Some kind of check if there's already a session if pkt.Unk1 && s.Server.getRaviSemaphore() == nil { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } bf.WriteUint8(uint8(pkt.WorldID)) bf.WriteUint8(uint8(pkt.LandID)) bf.WriteUint16(s.Server.raviente.id) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfReleaseEvent(s *Session, p mhfpacket.MHFPacket) { @@ -87,7 +86,7 @@ func handleMsgSysOperateRegister(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(_new) } s.Server.raviente.Unlock() - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) if config.GetConfig().GameplayOptions.LowLatencyRaviente { s.notifyRavi() @@ -109,7 +108,7 @@ func handleMsgSysLoadRegister(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(s.Server.raviente.register[i]) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func (s *Session) notifyRavi() { diff --git a/server/channelserver/handlers_rengoku.go b/server/channelserver/handlers_rengoku.go index 879c1822d..35681ee1c 100644 --- a/server/channelserver/handlers_rengoku.go +++ b/server/channelserver/handlers_rengoku.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/config" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" ps "erupe-ce/utils/pascalstring" "fmt" @@ -29,7 +28,7 @@ func handleMsgMhfSaveRengokuData(s *Session, p mhfpacket.MHFPacket) { _, err = database.Exec("UPDATE characters SET rengokudata=$1 WHERE id=$2", pkt.RawDataPayload, s.CharID) if err != nil { s.Logger.Error("Failed to save rengokudata", zap.Error(err)) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) return } bf := byteframe.NewByteFrameFromBytes(pkt.RawDataPayload) @@ -45,7 +44,7 @@ func handleMsgMhfSaveRengokuData(s *Session, p mhfpacket.MHFPacket) { database.Exec("INSERT INTO rengoku_score (character_id) VALUES ($1)", s.CharID) } database.Exec("UPDATE rengoku_score SET max_stages_mp=$1, max_points_mp=$2, max_stages_sp=$3, max_points_sp=$4 WHERE character_id=$5", maxStageMp, maxScoreMp, maxStageSp, maxScoreSp, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfLoadRengokuData(s *Session, p mhfpacket.MHFPacket) { @@ -60,7 +59,7 @@ func handleMsgMhfLoadRengokuData(s *Session, p mhfpacket.MHFPacket) { s.Logger.Error("Failed to load rengokudata", zap.Error(err)) } if len(data) > 0 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } else { resp := byteframe.NewByteFrame() resp.WriteUint32(0) @@ -98,7 +97,7 @@ func handleMsgMhfLoadRengokuData(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(0) resp.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } } @@ -109,7 +108,7 @@ func handleMsgMhfGetRengokuBinary(s *Session, p mhfpacket.MHFPacket) { if err != nil { panic(err) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } const rengokuScoreQuery = `, c.name FROM rengoku_score rs @@ -132,7 +131,7 @@ func handleMsgMhfEnumerateRengokuRanking(s *Session, p mhfpacket.MHFPacket) { if pkt.Leaderboard == 2 || pkt.Leaderboard == 3 || pkt.Leaderboard == 6 || pkt.Leaderboard == 7 { if guild == nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 11)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 11)) return } } @@ -191,7 +190,7 @@ func handleMsgMhfEnumerateRengokuRanking(s *Session, p mhfpacket.MHFPacket) { } bf.WriteUint8(uint8(i) - 1) bf.WriteBytes(scoreData.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetRengokuRankingRank(s *Session, p mhfpacket.MHFPacket) { @@ -200,5 +199,5 @@ func handleMsgMhfGetRengokuRankingRank(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint32(0) // Max stage overall MP rank bf.WriteUint32(0) // Max RdP overall MP rank - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_reserve.go b/server/channelserver/handlers_reserve.go index 950d731f0..2ab13d858 100644 --- a/server/channelserver/handlers_reserve.go +++ b/server/channelserver/handlers_reserve.go @@ -2,21 +2,20 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" ) func handleMsgSysReserve188(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysReserve188) // Left as raw bytes because I couldn't easily find the request or resp parser function in the binary. - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgSysReserve18B(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysReserve18B) // Left as raw bytes because I couldn't easily find the request or resp parser function in the binary. - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x3C}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x3C}) } func handleMsgSysReserve55(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_reward.go b/server/channelserver/handlers_reward.go index 3a3214483..ccb28ea9b 100644 --- a/server/channelserver/handlers_reward.go +++ b/server/channelserver/handlers_reward.go @@ -4,7 +4,6 @@ import ( "encoding/hex" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ) @@ -13,21 +12,21 @@ func handleMsgMhfGetAdditionalBeatReward(s *Session, p mhfpacket.MHFPacket) { // Actual response in packet captures are all just giant batches of null bytes // I'm assuming this is because it used to be tied to an actual event and // they never bothered killing off the packet when they made it static - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 0x104)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 0x104)) } func handleMsgMhfGetUdRankingRewardList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdRankingRewardList) // Temporary canned response data, _ := hex.DecodeString("0100001600000A5397DF00000000000000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetRewardSong(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetRewardSong) // Temporary canned response data, _ := hex.DecodeString("0100001600000A5397DF00000000000000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfUseRewardSong(s *Session, p mhfpacket.MHFPacket) {} @@ -40,7 +39,7 @@ func handleMsgMhfAcquireMonthlyReward(s *Session, p mhfpacket.MHFPacket) { resp := byteframe.NewByteFrame() resp.WriteUint32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfAcceptReadReward(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_seibattle.go b/server/channelserver/handlers_seibattle.go index ba0eb9686..76cd92e55 100644 --- a/server/channelserver/handlers_seibattle.go +++ b/server/channelserver/handlers_seibattle.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ) @@ -13,7 +12,7 @@ func handleMsgMhfGetBreakSeibatuLevelReward(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(0) bf.WriteInt32(0) bf.WriteInt32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } type WeeklySeibatuRankingReward struct { @@ -41,7 +40,7 @@ func handleMsgMhfGetWeeklySeibatuRankingReward(s *Session, p mhfpacket.MHFPacket bf.WriteInt32(reward.Unk5) data = append(data, bf) } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfGetFixedSeibatuRankingTable(s *Session, p mhfpacket.MHFPacket) { @@ -50,7 +49,7 @@ func handleMsgMhfGetFixedSeibatuRankingTable(s *Session, p mhfpacket.MHFPacket) bf.WriteInt32(0) bf.WriteInt32(0) bf.WriteBytes(make([]byte, 32)) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfReadBeatLevel(s *Session, p mhfpacket.MHFPacket) { @@ -66,7 +65,7 @@ func handleMsgMhfReadBeatLevel(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(1) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfReadLastWeekBeatRanking(s *Session, p mhfpacket.MHFPacket) { @@ -76,13 +75,13 @@ func handleMsgMhfReadLastWeekBeatRanking(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(0) bf.WriteInt32(0) bf.WriteInt32(0) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfUpdateBeatLevel(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfUpdateBeatLevel) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfReadBeatLevelAllRanking(s *Session, p mhfpacket.MHFPacket) { @@ -97,11 +96,11 @@ func handleMsgMhfReadBeatLevelAllRanking(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(0) bf.WriteBytes(make([]byte, 32)) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfReadBeatLevelMyRanking(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfReadBeatLevelMyRanking) bf := byteframe.NewByteFrame() - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_semaphore.go b/server/channelserver/handlers_semaphore.go index 5ccac815b..35cba2625 100644 --- a/server/channelserver/handlers_semaphore.go +++ b/server/channelserver/handlers_semaphore.go @@ -1,7 +1,6 @@ package channelserver import ( - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "strconv" "strings" @@ -23,7 +22,7 @@ func removeSessionFromSemaphore(s *Session) { func handleMsgSysCreateSemaphore(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysCreateSemaphore) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x03, 0x00, 0x0d}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x03, 0x00, 0x0d}) } func destructEmptySemaphores(s *Session) { @@ -108,7 +107,7 @@ func handleMsgSysCreateAcquireSemaphore(s *Session, p mhfpacket.MHFPacket) { } else { bf.WriteUint32(0) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgSysAcquireSemaphore(s *Session, p mhfpacket.MHFPacket) { @@ -117,9 +116,9 @@ func handleMsgSysAcquireSemaphore(s *Session, p mhfpacket.MHFPacket) { sema.host = s bf := byteframe.NewByteFrame() bf.WriteUint32(sema.id) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } else { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } } @@ -135,5 +134,5 @@ func handleMsgSysCheckSemaphore(s *Session, p mhfpacket.MHFPacket) { resp = []byte{0x00, 0x00, 0x00, 0x01} } s.Server.semaphoreLock.Unlock() - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, resp) + s.DoAckSimpleSucceed(pkt.AckHandle, resp) } diff --git a/server/channelserver/handlers_shop_gacha.go b/server/channelserver/handlers_shop_gacha.go index e67f5a41f..7878715fd 100644 --- a/server/channelserver/handlers_shop_gacha.go +++ b/server/channelserver/handlers_shop_gacha.go @@ -3,7 +3,6 @@ package channelserver import ( "erupe-ce/config" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/gametime" @@ -135,13 +134,13 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) { case 1: // Running gachas // Fundamentally, gacha works completely differently, just hide it for now. if config.GetConfig().ClientID <= config.G7 { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } rows, err := database.Queryx("SELECT id, min_gr, min_hr, name, url_banner, url_feature, url_thumbnail, wide, recommended, gacha_type, hidden FROM gacha_shop") if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } bf := byteframe.NewByteFrame() @@ -181,7 +180,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) { bf.WriteBool(g.Hidden) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) case 2: // Actual gacha bf := byteframe.NewByteFrame() bf.WriteUint32(pkt.ShopID) @@ -189,7 +188,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) { database.QueryRow(`SELECT gacha_type FROM gacha_shop WHERE id = $1`, pkt.ShopID).Scan(&gachaType) rows, err := database.Queryx(`SELECT entry_type, id, item_type, item_number, item_quantity, weight, rarity, rolls, daily_limit, frontier_points, COALESCE(name, '') AS name FROM gacha_entries WHERE gacha_id = $1 ORDER BY weight DESC`, pkt.ShopID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 4)) return } var divisor float64 @@ -246,7 +245,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(gi.Quantity) } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) case 3: // Hunting Festival Exchange fallthrough case 4: // N Points, 0-6 @@ -268,7 +267,7 @@ func handleMsgMhfEnumerateShop(s *Session, p mhfpacket.MHFPacket) { items = items[:pkt.Limit] } writeShopItems(bf, items) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } } @@ -292,14 +291,14 @@ func handleMsgMhfAcquireExchangeShop(s *Session, p mhfpacket.MHFPacket) { WHERE EXCLUDED.character_id=$1 AND EXCLUDED.shop_item_id=$2 `, s.CharID, itemHash, buyCount) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetGachaPlayHistory(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetGachaPlayHistory) bf := byteframe.NewByteFrame() bf.WriteUint8(1) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetGachaPoint(s *Session, p mhfpacket.MHFPacket) { @@ -314,7 +313,7 @@ func handleMsgMhfGetGachaPoint(s *Session, p mhfpacket.MHFPacket) { resp.WriteUint32(gp) resp.WriteUint32(gt) resp.WriteUint32(fp) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } func handleMsgMhfUseGachaPoint(s *Session, p mhfpacket.MHFPacket) { @@ -329,7 +328,7 @@ func handleMsgMhfUseGachaPoint(s *Session, p mhfpacket.MHFPacket) { if pkt.PremiumCoins > 0 { database.Exec(`UPDATE users u SET gacha_premium=gacha_premium-$1 WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2)`, pkt.PremiumCoins, s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func spendGachaCoin(s *Session, quantity uint16) { @@ -472,9 +471,9 @@ func handleMsgMhfReceiveGachaItem(s *Session, p mhfpacket.MHFPacket) { resp := byteframe.NewByteFrame() resp.WriteUint8(36) resp.WriteBytes(data[1:181]) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, resp.Data()) + s.DoAckBufSucceed(pkt.AckHandle, resp.Data()) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } if !pkt.Freeze { @@ -502,13 +501,13 @@ func handleMsgMhfPlayNormalGacha(s *Session, p mhfpacket.MHFPacket) { } err, rolls := transactGacha(s, pkt.GachaID, pkt.RollType) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } rows, err := database.Queryx(`SELECT id, weight, rarity FROM gacha_entries WHERE gacha_id = $1 AND entry_type = 100 ORDER BY weight DESC`, pkt.GachaID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } for rows.Next() { @@ -541,7 +540,7 @@ func handleMsgMhfPlayNormalGacha(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint8(uint8(len(rewards))) bf.WriteBytes(temp.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) addGachaItem(s, rewards) } @@ -554,7 +553,7 @@ func handleMsgMhfPlayStepupGacha(s *Session, p mhfpacket.MHFPacket) { var reward GachaItem err, rolls := transactGacha(s, pkt.GachaID, pkt.RollType) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } database, err := db.GetDB() @@ -567,7 +566,7 @@ func handleMsgMhfPlayStepupGacha(s *Session, p mhfpacket.MHFPacket) { rows, err := database.Queryx(`SELECT id, weight, rarity FROM gacha_entries WHERE gacha_id = $1 AND entry_type = 100 ORDER BY weight DESC`, pkt.GachaID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } for rows.Next() { @@ -608,7 +607,7 @@ func handleMsgMhfPlayStepupGacha(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint8(0) } bf.WriteBytes(temp.Data()) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) addGachaItem(s, rewards) addGachaItem(s, guaranteedItems) } @@ -631,7 +630,7 @@ func handleMsgMhfGetStepupStatus(s *Session, p mhfpacket.MHFPacket) { bf := byteframe.NewByteFrame() bf.WriteUint8(step) bf.WriteUint32(uint32(gametime.TimeAdjusted().Unix())) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetBoxGachaInfo(s *Session, p mhfpacket.MHFPacket) { @@ -642,7 +641,7 @@ func handleMsgMhfGetBoxGachaInfo(s *Session, p mhfpacket.MHFPacket) { } entries, err := database.Queryx(`SELECT entry_id FROM gacha_box WHERE gacha_id = $1 AND character_id = $2`, pkt.GachaID, s.CharID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } var entryIDs []uint32 @@ -657,7 +656,7 @@ func handleMsgMhfGetBoxGachaInfo(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(entryIDs[i]) bf.WriteBool(true) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfPlayBoxGacha(s *Session, p mhfpacket.MHFPacket) { @@ -669,7 +668,7 @@ func handleMsgMhfPlayBoxGacha(s *Session, p mhfpacket.MHFPacket) { var reward GachaItem err, rolls := transactGacha(s, pkt.GachaID, pkt.RollType) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } database, err := db.GetDB() @@ -678,7 +677,7 @@ func handleMsgMhfPlayBoxGacha(s *Session, p mhfpacket.MHFPacket) { } rows, err := database.Queryx(`SELECT id, weight, rarity FROM gacha_entries WHERE gacha_id = $1 AND entry_type = 100 ORDER BY weight DESC`, pkt.GachaID) if err != nil { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, make([]byte, 1)) + s.DoAckBufSucceed(pkt.AckHandle, make([]byte, 1)) return } for rows.Next() { @@ -708,7 +707,7 @@ func handleMsgMhfPlayBoxGacha(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(r.Quantity) bf.WriteUint8(0) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) addGachaItem(s, rewards) } @@ -719,7 +718,7 @@ func handleMsgMhfResetBoxGachaInfo(s *Session, p mhfpacket.MHFPacket) { s.Logger.Fatal(fmt.Sprintf("Failed to get database instance: %s", err)) } database.Exec("DELETE FROM gacha_box WHERE gacha_id = $1 AND character_id = $2", pkt.GachaID, s.CharID) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfExchangeFpoint2Item(s *Session, p mhfpacket.MHFPacket) { @@ -735,7 +734,7 @@ func handleMsgMhfExchangeFpoint2Item(s *Session, p mhfpacket.MHFPacket) { database.QueryRow("UPDATE users u SET frontier_points=frontier_points::int - $1 WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2) RETURNING frontier_points", cost, s.CharID).Scan(&balance) bf := byteframe.NewByteFrame() bf.WriteUint32(balance) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfExchangeItem2Fpoint(s *Session, p mhfpacket.MHFPacket) { @@ -751,7 +750,7 @@ func handleMsgMhfExchangeItem2Fpoint(s *Session, p mhfpacket.MHFPacket) { database.QueryRow("UPDATE users u SET frontier_points=COALESCE(frontier_points::int + $1, $1) WHERE u.id=(SELECT c.user_id FROM characters c WHERE c.id=$2) RETURNING frontier_points", cost, s.CharID).Scan(&balance) bf := byteframe.NewByteFrame() bf.WriteUint32(balance) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } type FPointExchange struct { @@ -805,12 +804,12 @@ func handleMsgMhfGetFpointExchangeList(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(e.FPoints) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfPlayFreeGacha(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPlayFreeGacha) bf := byteframe.NewByteFrame() bf.WriteUint32(1) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_stage.go b/server/channelserver/handlers_stage.go index 6b550d415..1dc5a610a 100644 --- a/server/channelserver/handlers_stage.go +++ b/server/channelserver/handlers_stage.go @@ -6,7 +6,6 @@ import ( "time" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ps "erupe-ce/utils/pascalstring" @@ -18,13 +17,13 @@ func handleMsgSysCreateStage(s *Session, p mhfpacket.MHFPacket) { s.Server.Lock() defer s.Server.Unlock() if _, exists := s.Server.stages[pkt.StageID]; exists { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleFail(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } else { stage := NewStage(pkt.StageID) stage.host = s stage.maxPlayers = uint16(pkt.PlayerCount) s.Server.stages[stage.id] = stage - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00}) } } @@ -64,7 +63,7 @@ func doStageTransfer(s *Session, ackHandle uint32, stageID string) { s.QueueSendMHF(&mhfpacket.MsgSysCleanupObject{}) // Confirm the stage entry. - broadcast.DoAckSimpleSucceed(s, ackHandle, []byte{0x00, 0x00, 0x00, 0x00}) + s.DoAckSimpleSucceed(ackHandle, []byte{0x00, 0x00, 0x00, 0x00}) var temp mhfpacket.MHFPacket @@ -154,7 +153,7 @@ func handleMsgSysEnterStage(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysEnterStage) if isStageFull(s, pkt.StageID) { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckSimpleFail(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) return } @@ -184,7 +183,7 @@ func handleMsgSysBackStage(s *Session, p mhfpacket.MHFPacket) { if isStageFull(s, backStage) { s.stageMoveStack.Push(backStage) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckSimpleFail(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) return } @@ -203,7 +202,7 @@ func handleMsgSysMoveStage(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgSysMoveStage) if isStageFull(s, pkt.StageID) { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) + s.DoAckSimpleFail(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x01}) return } @@ -219,7 +218,7 @@ func handleMsgSysLockStage(s *Session, p mhfpacket.MHFPacket) { stage.locked = true stage.Unlock() } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgSysUnlockStage(s *Session, p mhfpacket.MHFPacket) { @@ -252,15 +251,15 @@ func handleMsgSysReserveStage(s *Session, p mhfpacket.MHFPacket) { case 17: // 0x11 stage.reservedClientSlots[s.CharID] = true } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } else if uint16(len(stage.reservedClientSlots)) < stage.maxPlayers { if stage.locked { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } if len(stage.password) > 0 { if stage.password != s.stagePass { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) return } } @@ -269,13 +268,13 @@ func handleMsgSysReserveStage(s *Session, p mhfpacket.MHFPacket) { s.Lock() s.reservationStage = stage s.Unlock() - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } else { - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } } else { s.Logger.Error("Failed to get stage", zap.String("StageID", pkt.StageID)) - broadcast.DoAckSimpleFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleFail(pkt.AckHandle, make([]byte, 4)) } } @@ -329,15 +328,15 @@ func handleMsgSysGetStageBinary(s *Session, p mhfpacket.MHFPacket) { if stage, exists := s.Server.stages[pkt.StageID]; exists { stage.Lock() if binaryData, exists := stage.rawBinaryData[stageBinaryKey{pkt.BinaryType0, pkt.BinaryType1}]; exists { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, binaryData) + s.DoAckBufSucceed(pkt.AckHandle, binaryData) } else if pkt.BinaryType1 == 4 { // Unknown binary type that is supposedly generated server side // Temporary response - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{}) } else { s.Logger.Warn("Failed to get stage binary", zap.Uint8("BinaryType0", pkt.BinaryType0), zap.Uint8("pkt.BinaryType1", pkt.BinaryType1)) s.Logger.Warn("Sending blank stage binary") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{}) } stage.Unlock() } else { @@ -351,7 +350,7 @@ func handleMsgSysWaitStageBinary(s *Session, p mhfpacket.MHFPacket) { if stage, exists := s.Server.stages[pkt.StageID]; exists { if pkt.BinaryType0 == 1 && pkt.BinaryType1 == 12 { // This might contain the hunter count, or max player count? - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) return } for { @@ -361,7 +360,7 @@ func handleMsgSysWaitStageBinary(s *Session, p mhfpacket.MHFPacket) { stage.Unlock() s.Logger.Debug("MsgSysWaitStageBinary after lock and get stage") if gotBinary { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, stageBinary) + s.DoAckBufSucceed(pkt.AckHandle, stageBinary) break } else { s.Logger.Debug("Waiting stage binary", zap.Uint8("BinaryType0", pkt.BinaryType0), zap.Uint8("pkt.BinaryType1", pkt.BinaryType1)) @@ -421,5 +420,5 @@ func handleMsgSysEnumerateStage(s *Session, p mhfpacket.MHFPacket) { bf.Seek(0, 0) bf.WriteUint16(joinable) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_tactics.go b/server/channelserver/handlers_tactics.go index 70a2bb3e6..86c30ec2a 100644 --- a/server/channelserver/handlers_tactics.go +++ b/server/channelserver/handlers_tactics.go @@ -3,7 +3,6 @@ package channelserver import ( "encoding/hex" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" ) @@ -12,7 +11,7 @@ func handleMsgMhfGetUdTacticsPoint(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsPoint) // Temporary canned response data, _ := hex.DecodeString("000000A08F0BE2DAE30BE30AE2EAE2E9E2E8E2F5E2F3E2F2E2F1E2BB") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfAddUdTacticsPoint(s *Session, p mhfpacket.MHFPacket) { @@ -25,40 +24,40 @@ func handleMsgMhfGetUdTacticsRewardList(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsRewardList) // Temporary canned response data, _ := hex.DecodeString("000094000000010732DD00010000000000010732DD00010100000000C8071F2800050100000000C80705C000050000000001901A000001F40000000001901A000001F40100000002580705C00005000000000258071F2800050100000003201A000003E80100000003201A000003E80000000003E81A000004B00100000003E81A000004B00000000004B01A000005DC0100000004B01A000005DC0000000005781A000008FC0100000005781A000008FC0000000006401A000009C40000000006401A000009C40100000007081A00000BB80100000007081A00000BB80000000007D00725FA00010000000007D01A00000CE40000000007D00725FC00010100000007D00725FB00010100000007D00725FA00010100000007D01A00000CE40100000007D00725FC00010000000007D00725FB0001000000000BB80705C00005000000000BB8071F280005010000000FA01A00000DAC000000000FA01A00000DAC0100000013880705C00005000000001388071F2800050100000017700725FE00010100000017700725FD00010100000017700725FF00010100000017700725FD00010000000017700725FE00010000000017700725FF0001000000001B581A00000E74000000001B581A00000E74010000001F400727D00005010000001F400727D000050000000023281A00000FA00000000023281A00000FA00100000027100736EF000100000000271007369600010100000027100736EF00010100000027100736EF0001000000002EE00727D10005010000002EE00727D100050000000036B01D000000010100000036B01D00000001000000003A980737DB0001010000003A980736EF00010000000046500725E600010100000046500725E60001000000004E200738C90001010000004E200736EF00010000000055F01A000010680100000055F01A000010680000000061A80736EF00010000000061A80739A600010100000065900727D200050000000065900727D20005010000007530073A0600010100000075300736EF00010000000075300736EF00010000000075300736EF00010100000084D01D000000020000000084D01D00000002010000009C400727D30005010000009C400727D3000500000000B3B01A0000119400000000B3B01A0000119401000000C3500727D4000500000000C3500727D4000501000000D2F01D0000000300000000D2F01D0000000301000000EA600736EF000100000000EA600736EF000101000000F6181A0000125C00000000F6181A0000125C0100000111700727D500050000000111700727D500050100000119400727D600050100000119400727D600050000000121101D000000040000000121101D000000040100000130B01A000013880000000130B01A000013880100000140500727D700050000000140500727D700050100000148201D000000050000000148201D00000005010000014FF01A000014B4000000014FF01A000014B4010000015F900736EF0001000000015F900736EF00010100000167600729EA00050000000167600729EA0005010000016F301D00000006010000016F301D00000006000000017ED00729EB0005000000017ED00729EB0005010000018E701A0000157C010000018E701A0000157C0000000196401D000000070000000196401D00000007010000019E100729EC0005000000019E100729EC000501000001ADB00727CD000100000001ADB00727CD000101000001BD501D0000000800000001BD501D0000000801000001CCF01A0000164401000001CCF01A0000164400000001E4601D0000000901000001E4601D0000000900000001EC300727CC000101000001EC300727CC0001000000020B701D0000000A000000020B701D0000000A010000023A501A0000170C010000023A501A0000170C0000000249F00736EF00010100000249F00736EF00010000000271001A000017D40100000271001A000017D400000002A7B01A0000189C01000002A7B01A0000189C00000002BF200736EF000100000002BF200736EF000101000002D6901A0000196401000002D6901A00001964000000030D400727CB0001000000030D400727CB00010100000343F01A00001A2C0100000343F01A00001A2C0000000372D0072CB0000F0000000372D0072CB0000F01000003A9801A00001BBC00000003A9801A00001BBC01000003F7A01A000003E800010003F7A01A000003E80101000445C01A000003E80101000445C01A000003E80001005E000000020704020005010000000002070402000500000000000307040200140000000000030704020014010000000005071D200003010000000005071D20000300000000000607040200140100000000060704020014000000000008071D210003010000000008071D21000300000000000A070402001401000000000A070402001400000000000C0722EC000501000000000C0722ED000500000000000C0722F2000500000000000C0722EC000500000000000C0722EF000500000000000C0722ED000501000000000C0722F2000501000000000C0722EF000501000000000D1A000003E801000000000D1A000003E800000000000F07357C000501000000000F07357D000501000000000F07357C000500000000000F07357D00050000000000111A000007D00000000000111A000007D00100000000141C00000001000000000014071D2200030000000000141C00000001010000000014071D22000301000000001607357D000701000000001607357C00070000000000160704020028000000000016070402002801000000001607357C000701000000001607357D0007000000000018071D270003000000000018071D27000301000000001A1A00000BB800000000001A1A00000BB801000000001C07357D000701000000001C070402002801000000001C07357D000700000000001C07357C000700000000001C070402002800000000001C07357C000701000000001E070402003C01000000001E070402003C000000000020071D26000301000000002007357C000700000000002007357D000700000000002007357C000701000000002007357D0007010000000020071D260003000000000023071D280003010000000023071D28000300000000002A070402003C00000000002A070402003C01000000002C0725EE000100000000002C0725EE000101000000002E070402005001000000002E07357D000A01000000002E070402005000000000002E07357C000A00000000002E07357D000A00000000002E07357C000A0100000000300725ED00010000000000300725ED0001010000000032071D200003010000000032071D200003000000000034072C7B0001000000000034072C7B0001010000000037071D210003000000000037071D21000301000000003C0722F1000A00000000003C0722F1000A01000000004107040200500000000000410704020050010000000046071D220003010000000046071D22000300000000004B071D27000301000000004B071D2700030000000000500722F1000F0100000000500722F1000F0000000000550704020050010000000055070402005000000000005A071D26000301000000005A071D26000300000000005F071D28000300000000005F071D2800030100000000641A0000C3500100000000641A0000C3500000002607000E00C8000000010000000307000F0032000000010000000307001000320000000100000003070011003200000001000000030700120032000000010000000307000E0096000000040000000A07000F0028000000040000000A0700100028000000040000000A0700110028000000040000000A0700120028000000040000000A07000E00640000000B0000001907000F001E0000000B00000019070010001E0000000B00000019070011001E0000000B00000019070012001E0000000B0000001907000E00320000001A0000002807000F00140000001A0000002807001000140000001A0000002807001100140000001A0000002807001200140000001A0000002807000E001E000000290000004607000F000A0000002900000046070010000A000000290000004607001100010000002900000046070012000A000000290000004607000E0019000000470000006407000F0008000000470000006407001000080000004700000064070011000100000047000000640700120008000000470000006407000E000F000000650000009607000F0006000000650000009607001000010000006500000096070011000600000065000000960700120006000000650000009607000E000500000097000001F407000F000500000097000001F4070010000500000097000001F4") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdTacticsFollower(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsFollower) - broadcast.DoAckBufSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) + s.DoAckBufSucceed(pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}) } func handleMsgMhfGetUdTacticsBonusQuest(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsBonusQuest) // Temporary canned response data, _ := hex.DecodeString("14E2F55DCBFE505DCC1A7003E8E2C55DCC6ED05DCC8AF00258E2CE5DCCDF505DCCFB700279E3075DCD4FD05DCD6BF0041AE2F15DCDC0505DCDDC700258E2C45DCE30D05DCE4CF00258E2F55DCEA1505DCEBD7003E8E2C25DCF11D05DCF2DF00258E2CE5DCF82505DCF9E700279E3075DCFF2D05DD00EF0041AE2CE5DD063505DD07F700279E2F35DD0D3D05DD0EFF0028AE2C35DD144505DD160700258E2F05DD1B4D05DD1D0F00258E2CE5DD225505DD241700279E2F55DD295D05DD2B1F003E8E2F25DD306505DD3227002EEE2CA5DD376D05DD392F00258E3075DD3E7505DD40370041AE2F55DD457D05DD473F003E82027313220686F757273273A3A696E74657276616C29202B2027313220686F757273273A3A696E74657276616C2047524F5550204259206D6170204F52444552204259206D61703B2000C7312B000032") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdTacticsFirstQuestBonus(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsFirstQuestBonus) // Temporary canned response data, _ := hex.DecodeString("0500000005DC01000007D002000009C40300000BB80400001194") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfGetUdTacticsRemainingPoint(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsRemainingPoint) bf := byteframe.NewByteFrame() bf.WriteUint32(0) // Points until Special Guild Hall earned - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfGetUdTacticsRanking(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetUdTacticsRanking) // Temporary canned response data, _ := hex.DecodeString("00000515000005150000CEB4000003CE000003CE0000CEB44D49444E494748542D414E47454C0000000000000000000000") - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } func handleMsgMhfSetUdTacticsFollower(s *Session, p mhfpacket.MHFPacket) {} diff --git a/server/channelserver/handlers_tournament.go b/server/channelserver/handlers_tournament.go index bef48c956..f2de92d2c 100644 --- a/server/channelserver/handlers_tournament.go +++ b/server/channelserver/handlers_tournament.go @@ -2,7 +2,6 @@ package channelserver import ( "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/gametime" ps "erupe-ce/utils/pascalstring" @@ -104,12 +103,12 @@ func handleMsgMhfInfoTournament(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } func handleMsgMhfEntryTournament(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfEntryTournament) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } type TournamentReward struct { @@ -128,5 +127,5 @@ func handleMsgMhfAcquireTournament(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint16(reward.Unk1) bf.WriteUint16(reward.Unk2) } - broadcast.DoAckBufSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckBufSucceed(pkt.AckHandle, bf.Data()) } diff --git a/server/channelserver/handlers_tower.go b/server/channelserver/handlers_tower.go index c7d705cc9..7aa7d6fdf 100644 --- a/server/channelserver/handlers_tower.go +++ b/server/channelserver/handlers_tower.go @@ -9,7 +9,6 @@ import ( "go.uber.org/zap" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/byteframe" "erupe-ce/utils/db" "erupe-ce/utils/stringsupport" @@ -118,7 +117,7 @@ func handleMsgMhfGetTowerInfo(s *Session, p mhfpacket.MHFPacket) { data = append(data, bf) } } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfPostTowerInfo(s *Session, p mhfpacket.MHFPacket) { @@ -152,7 +151,7 @@ func handleMsgMhfPostTowerInfo(s *Session, p mhfpacket.MHFPacket) { // This might give too much TSP? No idea what the rate is supposed to be database.Exec(`UPDATE tower SET tr=$1, trp=COALESCE(trp, 0)+$2, tsp=COALESCE(tsp, 0)+$3, block1=COALESCE(block1, 0)+$4 WHERE char_id=$5`, pkt.TR, pkt.TRP, pkt.Cost, pkt.Block1, s.CharID) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } // Default missions @@ -347,7 +346,7 @@ func handleMsgMhfGetTenrouirai(s *Session, p mhfpacket.MHFPacket) { } } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfPostTenrouirai(s *Session, p mhfpacket.MHFPacket) { @@ -397,9 +396,9 @@ func handleMsgMhfPostTenrouirai(s *Session, p mhfpacket.MHFPacket) { bf.WriteUint32(0) } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, bf.Data()) + s.DoAckSimpleSucceed(pkt.AckHandle, bf.Data()) } else { - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } } @@ -419,7 +418,7 @@ func handleMsgMhfPresentBox(s *Session, p mhfpacket.MHFPacket) { bf.WriteInt32(0) bf.WriteInt32(0) */ - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } type GemInfo struct { @@ -467,7 +466,7 @@ func handleMsgMhfGetGemInfo(s *Session, p mhfpacket.MHFPacket) { data = append(data, bf) } } - broadcast.DoAckEarthSucceed(s, pkt.AckHandle, data) + s.DoAckEarthSucceed(pkt.AckHandle, data) } func handleMsgMhfPostGemInfo(s *Session, p mhfpacket.MHFPacket) { @@ -498,15 +497,15 @@ func handleMsgMhfPostGemInfo(s *Session, p mhfpacket.MHFPacket) { case 2: // Transfer gem // no way im doing this for now } - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfGetNotice(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfGetNotice) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } func handleMsgMhfPostNotice(s *Session, p mhfpacket.MHFPacket) { pkt := p.(*mhfpacket.MsgMhfPostNotice) - broadcast.DoAckSimpleSucceed(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckSimpleSucceed(pkt.AckHandle, make([]byte, 4)) } diff --git a/server/channelserver/handlers_users.go b/server/channelserver/handlers_users.go index 1f75fb05c..a69eac5e8 100644 --- a/server/channelserver/handlers_users.go +++ b/server/channelserver/handlers_users.go @@ -4,7 +4,6 @@ import ( "fmt" "erupe-ce/network/mhfpacket" - "erupe-ce/utils/broadcast" "erupe-ce/utils/db" ) @@ -52,12 +51,12 @@ func handleMsgSysGetUserBinary(s *Session, p mhfpacket.MHFPacket) { if !ok { err = database.QueryRow(fmt.Sprintf("SELECT type%d FROM user_binary WHERE id=$1", pkt.BinaryType), pkt.CharID).Scan(&data) if err != nil { - broadcast.DoAckBufFail(s, pkt.AckHandle, make([]byte, 4)) + s.DoAckBufFail(pkt.AckHandle, make([]byte, 4)) } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } } else { - broadcast.DoAckBufSucceed(s, pkt.AckHandle, data) + s.DoAckBufSucceed(pkt.AckHandle, data) } } diff --git a/server/channelserver/sys_session.go b/server/channelserver/sys_session.go index 1d984f665..9d675788a 100644 --- a/server/channelserver/sys_session.go +++ b/server/channelserver/sys_session.go @@ -317,3 +317,51 @@ func (s *Session) isOp() bool { } return false } + +func (s *Session) DoAckEarthSucceed(ackHandle uint32, data []*byteframe.ByteFrame) { + bf := byteframe.NewByteFrame() + bf.WriteUint32(uint32(config.GetConfig().EarthID)) + bf.WriteUint32(0) + bf.WriteUint32(0) + bf.WriteUint32(uint32(len(data))) + for i := range data { + bf.WriteBytes(data[i].Data()) + } + s.DoAckBufSucceed(ackHandle, bf.Data()) +} + +func (s *Session) DoAckBufSucceed(ackHandle uint32, data []byte) { + s.QueueSendMHF(&mhfpacket.MsgSysAck{ + AckHandle: ackHandle, + IsBufferResponse: true, + ErrorCode: 0, + AckData: data, + }) +} + +func (s *Session) DoAckBufFail(ackHandle uint32, data []byte) { + s.QueueSendMHF(&mhfpacket.MsgSysAck{ + AckHandle: ackHandle, + IsBufferResponse: true, + ErrorCode: 1, + AckData: data, + }) +} + +func (s *Session) DoAckSimpleSucceed(ackHandle uint32, data []byte) { + s.QueueSendMHF(&mhfpacket.MsgSysAck{ + AckHandle: ackHandle, + IsBufferResponse: false, + ErrorCode: 0, + AckData: data, + }) +} + +func (s *Session) DoAckSimpleFail(ackHandle uint32, data []byte) { + s.QueueSendMHF(&mhfpacket.MsgSysAck{ + AckHandle: ackHandle, + IsBufferResponse: false, + ErrorCode: 1, + AckData: data, + }) +} diff --git a/utils/broadcast/ack_helpers.go b/utils/broadcast/ack_helpers.go deleted file mode 100644 index 6cc771c6b..000000000 --- a/utils/broadcast/ack_helpers.go +++ /dev/null @@ -1,59 +0,0 @@ -package broadcast - -import ( - "erupe-ce/config" - "erupe-ce/network/mhfpacket" - "erupe-ce/utils/byteframe" -) - -type AckSession interface { - QueueSendMHF(packet mhfpacket.MHFPacket) -} - -func DoAckEarthSucceed(s AckSession, ackHandle uint32, data []*byteframe.ByteFrame) { - bf := byteframe.NewByteFrame() - bf.WriteUint32(uint32(config.GetConfig().EarthID)) - bf.WriteUint32(0) - bf.WriteUint32(0) - bf.WriteUint32(uint32(len(data))) - for i := range data { - bf.WriteBytes(data[i].Data()) - } - DoAckBufSucceed(s, ackHandle, bf.Data()) -} - -func DoAckBufSucceed(s AckSession, ackHandle uint32, data []byte) { - s.QueueSendMHF(&mhfpacket.MsgSysAck{ - AckHandle: ackHandle, - IsBufferResponse: true, - ErrorCode: 0, - AckData: data, - }) -} - -func DoAckBufFail(s AckSession, ackHandle uint32, data []byte) { - s.QueueSendMHF(&mhfpacket.MsgSysAck{ - AckHandle: ackHandle, - IsBufferResponse: true, - ErrorCode: 1, - AckData: data, - }) -} - -func DoAckSimpleSucceed(s AckSession, ackHandle uint32, data []byte) { - s.QueueSendMHF(&mhfpacket.MsgSysAck{ - AckHandle: ackHandle, - IsBufferResponse: false, - ErrorCode: 0, - AckData: data, - }) -} - -func DoAckSimpleFail(s AckSession, ackHandle uint32, data []byte) { - s.QueueSendMHF(&mhfpacket.MsgSysAck{ - AckHandle: ackHandle, - IsBufferResponse: false, - ErrorCode: 1, - AckData: data, - }) -}