diff --git a/command/ask.go b/command/ask.go index b791a38..40a5ad9 100644 --- a/command/ask.go +++ b/command/ask.go @@ -28,7 +28,7 @@ func Ask(ctx context.Context, data cmdroute.CommandData) *api.InteractionRespons } if err := data.Options.Unmarshal(&options); err != nil { - lib.CancelCooldown(data.Event.User.ID.String(), "ask") + lib.CancelCooldown(data.Event.Member.User.ID.String(), "ask") return lib.ErrorResponse(err) } @@ -36,7 +36,7 @@ func Ask(ctx context.Context, data cmdroute.CommandData) *api.InteractionRespons if err != nil { fmt.Printf("ChatCompletion error: %v\n", err) - lib.CancelCooldown(data.Event.User.ID.String(), "ask") + lib.CancelCooldown(data.Event.Member.User.ID.String(), "ask") return &api.InteractionResponseData{ Content: option.NewNullableString("ChatCompletion Error!"), AllowedMentions: &api.AllowedMentions{}, diff --git a/command/pic.go b/command/pic.go index 16179cb..df4c42b 100644 --- a/command/pic.go +++ b/command/pic.go @@ -27,7 +27,7 @@ func Pic(ctx context.Context, data cmdroute.CommandData) *api.InteractionRespons } if err := data.Options.Unmarshal(&options); err != nil { - lib.CancelCooldown(data.Event.User.ID.String(), "pic") + lib.CancelCooldown(data.Event.Member.User.ID.String(), "pic") return lib.ErrorResponse(err) } @@ -40,7 +40,7 @@ func Pic(ctx context.Context, data cmdroute.CommandData) *api.InteractionRespons imageFile, err := lib.OpenAIImageGeneration(options.Prompt, filename) if err != nil { - lib.CancelCooldown(data.Event.User.ID.String(), "pic") + lib.CancelCooldown(data.Event.Member.User.ID.String(), "pic") return lib.ErrorResponse(err) } diff --git a/lib/cooldowns.go b/lib/cooldowns.go index 70184b8..6e1164b 100644 --- a/lib/cooldowns.go +++ b/lib/cooldowns.go @@ -60,8 +60,13 @@ func (m *CooldownManager) IsOnCooldown(userID string, key string) (bool, time.Du func CancelCooldown(userID string, key string) { manager := GetInstance() + + // Handle non-existent keys gracefully + if _, exists := manager.cooldowns[userID+":"+key]; !exists { + return + } + manager.mu.Lock() defer manager.mu.Unlock() - delete(manager.cooldowns, userID+":"+key) } diff --git a/lib/openai.go b/lib/openai.go index 864333b..5a16196 100644 --- a/lib/openai.go +++ b/lib/openai.go @@ -37,8 +37,7 @@ func OpenAITextGeneration(prompt string) (string, error) { if err != nil { fmt.Printf("Ask command error: %v\n", err) - return "", errors.New("there was an error generating the response based on this prompt... please reach out to @himbothyswaggins to fix this issue") - + return "", errors.New("https://fly.storage.tigris.dev/atridad/himbot/no.gif") } return resp.Choices[0].Message.Content, nil @@ -64,7 +63,7 @@ func OpenAIImageGeneration(prompt string, filename string) (*bytes.Buffer, error if err != nil { fmt.Printf("Pic command error: %v\n", err) - return nil, errors.New("there was an error generating the image based on this prompt... please reach out to @himbothyswaggins to fix this issue") + return nil, errors.New("https://fly.storage.tigris.dev/atridad/himbot/hornypolice.gif") } imgUrl := imageResponse.Data[0].URL