mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-16 00:52:40 +00:00
Coop lockout fix, holidays full list, !fx convert, lottery cleanup
- Co-op: when a run wipes or completes, clear the 99-sentinel combat lock for participants and pin combat_actions_used to maxCombatActions. Previously the lock only released on the next midnight reset, so members were stuck unable to combat for the rest of the day after their run ended. - Holidays: !holidays now prints the full list. Previously it called the same featured-only formatter as TwinBee's morning auto-post, so users saw the same truncated message twice with a misleading "Use !holidays for the full list" hint that pointed at itself. - Forex: add currency conversion. Auto-detects when the first arg is numeric (`!fx 1500 USD EUR`) and also accepts an explicit `convert` subcommand. Tolerant parsing: "to"/"into"/"in"/"=" filters, comma and k/m suffix support, and any of `1500 USD EUR`, `1500 USD/EUR`, `USD/EUR 1500` orderings. Includes parser + comma-formatter tests. - Lottery: drop 2-match prize tier. At 1/16 odds × €25 it was +EV per ticket on its own and bled the community pot (~€775/wk recently), preventing jackpot rollover from accumulating. Removed from scoring, payout loops, draw announcement, !lottery odds, and !lottery history. Match2Winners DB column kept (history rows preserved); always written as 0 going forward. - Lottery: shift week boundary so Sat/Sun return next Monday. Friday's 23:59 draw used to leave players locked at their 100-ticket cap until next Monday rolled in; now the cap resets immediately after the draw. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -37,14 +37,22 @@ type lotteryHistoryRow struct {
|
||||
|
||||
// ── Week Helpers ────────────────────────────────────────────────────────────
|
||||
|
||||
// lotteryCurrentWeekStart returns Monday of the current week as "2006-01-02".
|
||||
// lotteryCurrentWeekStart returns the Monday of the lottery week currently
|
||||
// accepting tickets. Mon–Fri returns this week's Monday; Sat–Sun returns
|
||||
// next week's Monday — the Friday 23:59 UTC draw resets the week boundary,
|
||||
// so Saturday onward, ticket purchases count toward the next draw.
|
||||
func lotteryCurrentWeekStart() string {
|
||||
now := time.Now().UTC()
|
||||
weekday := int(now.Weekday())
|
||||
if weekday == 0 {
|
||||
weekday = 7 // Sunday = 7
|
||||
wd := now.Weekday() // Sunday=0, Monday=1, ..., Saturday=6
|
||||
var monday time.Time
|
||||
switch wd {
|
||||
case time.Sunday:
|
||||
monday = now.AddDate(0, 0, 1)
|
||||
case time.Saturday:
|
||||
monday = now.AddDate(0, 0, 2)
|
||||
default:
|
||||
monday = now.AddDate(0, 0, -(int(wd) - 1))
|
||||
}
|
||||
monday := now.AddDate(0, 0, -(weekday - 1))
|
||||
return monday.Format("2006-01-02")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user