mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
feat(guild): persist weekly bonus exceptional user count
The handler was a stub that discarded pkt.NumUsers. Now it looks up the player's guild and atomically accumulates the count via a new weekly_bonus_users column on the guilds table.
This commit is contained in:
@@ -125,7 +125,13 @@ func handleMsgMhfGuildHuntdata(s *Session, p mhfpacket.MHFPacket) {
|
||||
|
||||
func handleMsgMhfAddGuildWeeklyBonusExceptionalUser(s *Session, p mhfpacket.MHFPacket) {
|
||||
pkt := p.(*mhfpacket.MsgMhfAddGuildWeeklyBonusExceptionalUser)
|
||||
// TODO: record pkt.NumUsers to DB
|
||||
// must use addition
|
||||
if s.server.guildRepo != nil {
|
||||
guild, err := s.server.guildRepo.GetByCharID(s.charID)
|
||||
if err == nil && guild != nil {
|
||||
if err := s.server.guildRepo.AddWeeklyBonusUsers(guild.ID, pkt.NumUsers); err != nil {
|
||||
s.logger.Error("Failed to add weekly bonus users", zap.Error(err))
|
||||
}
|
||||
}
|
||||
}
|
||||
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
|
||||
}
|
||||
|
||||
@@ -938,3 +938,12 @@ func (r *GuildRepository) ListInvitedCharacters(guildID uint32) ([]*ScoutedChara
|
||||
}
|
||||
return chars, nil
|
||||
}
|
||||
|
||||
// AddWeeklyBonusUsers atomically adds numUsers to the guild's weekly bonus exceptional user count.
|
||||
func (r *GuildRepository) AddWeeklyBonusUsers(guildID uint32, numUsers uint8) error {
|
||||
_, err := r.db.Exec(
|
||||
"UPDATE guilds SET weekly_bonus_users = weekly_bonus_users + $1 WHERE id = $2",
|
||||
numUsers, guildID,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user