mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
feat(channelserver): add daily noon resets for gacha stepup and guild RP
Gacha stepup progress now resets when queried after the most recent noon boundary, using a new created_at column on gacha_stepup. Guild member rp_today rolls into rp_yesterday lazily when members are enumerated after noon, using a new rp_reset_at column on guilds. Both follow the established lazy-reset pattern from the cafe handler.
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
package channelserver
|
||||
|
||||
import (
|
||||
"sort"
|
||||
"time"
|
||||
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/common/mhfitem"
|
||||
_config "erupe-ce/config"
|
||||
"sort"
|
||||
|
||||
ps "erupe-ce/common/pascalstring"
|
||||
"erupe-ce/network/mhfpacket"
|
||||
@@ -105,6 +107,17 @@ func handleMsgMhfEnumerateGuildMember(s *Session, p mhfpacket.MHFPacket) {
|
||||
return
|
||||
}
|
||||
|
||||
// Lazy daily RP rollover: move rp_today → rp_yesterday at noon
|
||||
midday := TimeMidnight().Add(12 * time.Hour)
|
||||
if TimeAdjusted().Before(midday) {
|
||||
midday = midday.Add(-24 * time.Hour)
|
||||
}
|
||||
if guild.RPResetAt.Before(midday) {
|
||||
if err := s.server.guildRepo.RolloverDailyRP(guild.ID, midday); err != nil {
|
||||
s.logger.Error("Failed to rollover guild daily RP", zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
guildMembers, err := s.server.guildRepo.GetMembers(guild.ID, false)
|
||||
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user