From 846f8d669347d37e93bb3e3cea855c82d01bf6e6 Mon Sep 17 00:00:00 2001 From: wish Date: Wed, 28 Feb 2024 21:24:55 +1100 Subject: [PATCH] retain excess Room RP --- server/channelserver/handlers_guild.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/server/channelserver/handlers_guild.go b/server/channelserver/handlers_guild.go index 4c5ed1ab5..096419137 100644 --- a/server/channelserver/handlers_guild.go +++ b/server/channelserver/handlers_guild.go @@ -806,6 +806,15 @@ func handleDonateRP(s *Session, amount uint16, guild *Guild, _type int) []byte { if err != nil { return bf.Data() } + var resetRoom bool + if _type == 2 { + var currentRP uint16 + s.server.db.QueryRow(`SELECT room_rp FROM guilds WHERE id = $1`, guild.ID).Scan(¤tRP) + if currentRP+amount >= 30 { + amount = 30 - currentRP + resetRoom = true + } + } saveData.RP -= amount saveData.Save(s) switch _type { @@ -814,9 +823,7 @@ func handleDonateRP(s *Session, amount uint16, guild *Guild, _type int) []byte { case 1: s.server.db.Exec(`UPDATE guilds SET event_rp = event_rp + $1 WHERE id = $2`, amount, guild.ID) case 2: - var currentRP uint16 - s.server.db.QueryRow(`SELECT room_rp FROM guilds WHERE id = $1`, guild.ID).Scan(¤tRP) - if currentRP+amount >= 30 { + if resetRoom { s.server.db.Exec(`UPDATE guilds SET room_rp = 0 WHERE id = $1`, guild.ID) s.server.db.Exec(`UPDATE guilds SET room_expiry = $1 WHERE id = $2`, TimeAdjusted().Add(time.Hour*24*7), guild.ID) } else {