From 872a0b37855e391b909ee37618b64de0a2a9ac86 Mon Sep 17 00:00:00 2001 From: wish Date: Thu, 4 Aug 2022 03:04:42 +1000 Subject: [PATCH] treasure expiration and prevent overflow --- server/channelserver/handlers_guild_tresure.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/channelserver/handlers_guild_tresure.go b/server/channelserver/handlers_guild_tresure.go index 92d27f7e9..c5e2fa0dc 100644 --- a/server/channelserver/handlers_guild_tresure.go +++ b/server/channelserver/handlers_guild_tresure.go @@ -27,7 +27,7 @@ func handleMsgMhfEnumerateGuildTresure(s *Session, p mhfpacket.MHFPacket) { } bf := byteframe.NewByteFrame() hunts := 0 - rows, _ := s.server.db.Queryx("SELECT id, host_id, destination, level, return, acquired, claimed, hunters, treasure, hunt_data FROM guild_hunts WHERE guild_id=$1", guild.ID) + rows, _ := s.server.db.Queryx("SELECT id, host_id, destination, level, return, acquired, claimed, hunters, treasure, hunt_data FROM guild_hunts WHERE guild_id=$1 AND $2 < return+604800", guild.ID, Time_Current_Adjusted().Unix()) for rows.Next() { hunt := &TreasureHunt{} err = rows.StructScan(&hunt) @@ -51,6 +51,9 @@ func handleMsgMhfEnumerateGuildTresure(s *Session, p mhfpacket.MHFPacket) { bf.WriteBytes(hunt.HuntData) break } else if pkt.MaxHunts == 30 && hunt.Acquired && hunt.Level == 2 { + if hunts == 30 { + break + } hunts++ bf.WriteUint32(hunt.HuntID) bf.WriteUint32(hunt.Destination)