mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-16 00:52:40 +00:00
Add version system, tax tracking, lottery winner DMs, fmtEuro, audit fixes
- Version system: per-plugin versions via Versioned interface, crash_log and version_history DB tables, !version command, crash stats in !botinfo - Tax tracking: tax_ledger table, trackTaxPaid across all communityTax and communityPotAdd sites, tax paid display in !stats and !superstatsexplusalpha - Lottery: DM winners with winning ticket details and matched numbers bolded - fmtEuro: generic currency formatter with thousand separators across all economy display paths - Audit fixes: streak_decayed column for Streak Survivor achievement, combat_narrative empty-phase guard, crafting success rate integer division, RecordCrash nil-DB guard Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -179,7 +179,8 @@ func NewBlackjackPlugin(client *mautrix.Client, euro *EuroPlugin) *BlackjackPlug
|
||||
}
|
||||
}
|
||||
|
||||
func (p *BlackjackPlugin) Name() string { return "blackjack" }
|
||||
func (p *BlackjackPlugin) Name() string { return "blackjack" }
|
||||
func (p *BlackjackPlugin) Version() string { return "1.1.0" }
|
||||
|
||||
func (p *BlackjackPlugin) Commands() []CommandDef {
|
||||
return []CommandDef{
|
||||
@@ -727,8 +728,10 @@ func (p *BlackjackPlugin) collectResolveRound(roomID id.RoomID, table *bjTable)
|
||||
|
||||
case playerBJ:
|
||||
result = "Blackjack!"
|
||||
payout = pl.Bet + math.Floor(pl.Bet*1.5) // Return bet + 1.5x (rounded down)
|
||||
p.euro.Credit(pl.UserID, payout, "blackjack_win")
|
||||
payout = pl.Bet + math.Floor(pl.Bet*1.5)
|
||||
net, _ := communityTax(pl.UserID, payout, 0.05)
|
||||
p.euro.Credit(pl.UserID, net, "blackjack_win")
|
||||
payout = net
|
||||
|
||||
case dealerBJ:
|
||||
result = "Dealer Blackjack"
|
||||
@@ -737,12 +740,16 @@ func (p *BlackjackPlugin) collectResolveRound(roomID id.RoomID, table *bjTable)
|
||||
case dealerBust:
|
||||
result = "Win (dealer bust)!"
|
||||
payout = pl.Bet * 2
|
||||
p.euro.Credit(pl.UserID, payout, "blackjack_win")
|
||||
net, _ := communityTax(pl.UserID, payout, 0.05)
|
||||
p.euro.Credit(pl.UserID, net, "blackjack_win")
|
||||
payout = net
|
||||
|
||||
case playerValue > dealerValue:
|
||||
result = fmt.Sprintf("Win! %d vs %d", playerValue, dealerValue)
|
||||
payout = pl.Bet * 2
|
||||
p.euro.Credit(pl.UserID, payout, "blackjack_win")
|
||||
net, _ := communityTax(pl.UserID, payout, 0.05)
|
||||
p.euro.Credit(pl.UserID, net, "blackjack_win")
|
||||
payout = net
|
||||
|
||||
case playerValue == dealerValue:
|
||||
result = "Push"
|
||||
|
||||
Reference in New Issue
Block a user