Files
cyclingbot/bot/handlers_challenge.go
Blake Ridgway ba1770b493 first commit
2026-04-11 14:06:59 -05:00

49 lines
1.7 KiB
Go

package bot
import (
"context"
"fmt"
"github.com/bwmarrin/discordgo"
)
func (b *Bot) handleResetChallenge(ctx context.Context, s *discordgo.Session, i *discordgo.InteractionCreate) {
if !b.isAdmin(i) {
respondEphemeral(s, i, "You need the **Manage Server** permission to use this command.")
return
}
name, _ := optString(i.ApplicationCommandData().Options, "name")
if err := b.db.ResetChallenge(ctx, i.GuildID, name); err != nil {
respondEphemeral(s, i, "Error resetting challenge.")
return
}
_ = b.db.DeleteSetting(ctx, i.GuildID, "challenge_goal_km")
respond(s, i, "🔄 Challenge reset! Previous totals have been archived. Start logging your rides!")
}
func (b *Bot) handleSetChallengeName(ctx context.Context, s *discordgo.Session, i *discordgo.InteractionCreate) {
if !b.isAdmin(i) {
respondEphemeral(s, i, "You need the **Manage Server** permission to use this command.")
return
}
name := i.ApplicationCommandData().Options[0].StringValue()
if err := b.db.SetSetting(ctx, i.GuildID, "challenge_name", name); err != nil {
respondEphemeral(s, i, "Error saving challenge name.")
return
}
respondEphemeral(s, i, fmt.Sprintf("✅ Challenge name set to **%s**.", name))
}
func (b *Bot) handleSetGoal(ctx context.Context, s *discordgo.Session, i *discordgo.InteractionCreate) {
if !b.isAdmin(i) {
respondEphemeral(s, i, "You need the **Manage Server** permission to use this command.")
return
}
km := i.ApplicationCommandData().Options[0].FloatValue()
if err := b.db.SetSetting(ctx, i.GuildID, "challenge_goal_km", fmt.Sprintf("%.2f", km)); err != nil {
respondEphemeral(s, i, "Error saving goal.")
return
}
respond(s, i, fmt.Sprintf("🎯 Goal set to **%.1f km**! Let's ride!", km))
}