mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 08:32:41 +00:00
Add !adv alias, hospital insurance billing, wordle/UNO earnings tracking, streak death protection
- Add !adv shorthand for !adventure commands and DM replies - Hospital bill now shows insurance deduction and amount due - Refactor hospital nudge from per-goroutine sleep to shared ticker - Dead players' streaks are frozen; grace period on revival day - Track wordle earnings in wordle_stats, show in !stats and superstats - Show UNO net earnings and trivia accuracy % in superstats - Disable sentiment/profanity emoji reactions (classification still logs) - Add URL_PREVIEW_IGNORE_USERS env var to skip bot users - Add DISABLE_WOTD_POST env var, remove unused wotd.Prefetch() - README updates for all of the above Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -308,11 +308,23 @@ func (p *AdventurePlugin) midnightReset() error {
|
||||
|
||||
dmsSent := 0
|
||||
for _, char := range chars {
|
||||
// Dead players freeze their streak — death is involuntary, don't punish it.
|
||||
if !char.Alive {
|
||||
continue
|
||||
}
|
||||
|
||||
if !char.ActionTakenToday {
|
||||
// If the player was recently dead (revived today but couldn't act
|
||||
// in time), preserve their streak instead of resetting it.
|
||||
// We detect this by checking if LastActionDate was yesterday —
|
||||
// they were active, then died, and couldn't act on revival day.
|
||||
recentlyDead := char.LastActionDate == today ||
|
||||
char.LastActionDate == time.Now().UTC().Add(-24*time.Hour).Format("2006-01-02")
|
||||
if recentlyDead {
|
||||
// Grace period — don't shame, don't reset
|
||||
continue
|
||||
}
|
||||
|
||||
// Jitter between DMs to avoid Matrix rate limits
|
||||
if dmsSent > 0 {
|
||||
time.Sleep(time.Duration(1000+rand.IntN(2000)) * time.Millisecond)
|
||||
|
||||
Reference in New Issue
Block a user