main.go aktualisiert
Some checks failed
release-tag / release-image (push) Failing after 1m19s

This commit is contained in:
2025-08-10 18:06:22 +00:00
parent 9683f9d5fe
commit 0f4aaa6e9f

45
main.go
View File

@@ -473,26 +473,49 @@ func onInteractionCreate(_ string) func(s *discordgo.Session, i *discordgo.Inter
_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{Content: "✅ Kategorie-Name aktualisiert auf: " + name, Flags: discordgo.MessageFlagsEphemeral}}) _ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{Content: "✅ Kategorie-Name aktualisiert auf: " + name, Flags: discordgo.MessageFlagsEphemeral}})
case "settimeout": case "settimeout":
if !isGuildAdmin(s, guildID, i.User, i.Member) { // Log + schneller ACK
_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{Content: "❌ Nur Administratoren dürfen das.", Flags: discordgo.MessageFlagsEphemeral}}) log.Printf("[settimeout] guild=%s user=%s", guildID, i.Member.User.ID)
if err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
Type: discordgo.InteractionResponseDeferredChannelMessageWithSource,
Data: &discordgo.InteractionResponseData{
Flags: discordgo.MessageFlagsEphemeral,
},
}); err != nil {
log.Printf("Defer failed: %v", err)
return return
} }
var minutes int64 = int64(getCfg(guildID).TimeoutMin)
// Admin-Check
if !isGuildAdmin(s, guildID, i.User, i.Member) {
_, _ = s.FollowupMessageCreate(i.AppID, i.Token, true, &discordgo.WebhookParams{
Content: "❌ Nur Administratoren dürfen das.",
})
return
}
// minutes lesen
minutes := int64(getCfg(guildID).TimeoutMin)
for _, o := range data.Options { for _, o := range data.Options {
if o.Name == "minutes" { if o.Name == "minutes" { minutes = o.IntValue() }
minutes = o.IntValue()
}
}
if minutes < 1 {
minutes = 1
} }
if minutes < 1 { minutes = 1 }
// speichern
cfgMu.Lock() cfgMu.Lock()
getCfg(guildID).TimeoutMin = int(minutes) getCfg(guildID).TimeoutMin = int(minutes)
cfgMu.Unlock() cfgMu.Unlock()
if err := saveGuildCfgs(); err != nil { if err := saveGuildCfgs(); err != nil {
log.Printf("Speichern fehlgeschlagen: %v", err) log.Printf("saveGuildCfgs failed: %v", err)
_, _ = s.FollowupMessageCreate(i.AppID, i.Token, true, &discordgo.WebhookParams{
Content: "⚠️ Timeout gesetzt, aber Speichern fehlgeschlagen. Schau die Logs.",
})
return
} }
_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{Content: fmt.Sprintf("✅ Timeout auf %d Minuten gesetzt.", minutes), Flags: discordgo.MessageFlagsEphemeral}})
// final reply
_, _ = s.FollowupMessageCreate(i.AppID, i.Token, true, &discordgo.WebhookParams{
Content: fmt.Sprintf("✅ Timeout auf %d Minuten gesetzt.", minutes),
})
case "adduser": case "adduser":
// wer ruft auf? // wer ruft auf?
requester := i.User requester := i.User