This commit is contained in:
45
main.go
45
main.go
@@ -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}})
|
||||
|
||||
case "settimeout":
|
||||
if !isGuildAdmin(s, guildID, i.User, i.Member) {
|
||||
_ = s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{Content: "❌ Nur Administratoren dürfen das.", Flags: discordgo.MessageFlagsEphemeral}})
|
||||
// Log + schneller ACK
|
||||
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
|
||||
}
|
||||
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 {
|
||||
if o.Name == "minutes" {
|
||||
minutes = o.IntValue()
|
||||
}
|
||||
}
|
||||
if minutes < 1 {
|
||||
minutes = 1
|
||||
if o.Name == "minutes" { minutes = o.IntValue() }
|
||||
}
|
||||
if minutes < 1 { minutes = 1 }
|
||||
|
||||
// speichern
|
||||
cfgMu.Lock()
|
||||
getCfg(guildID).TimeoutMin = int(minutes)
|
||||
cfgMu.Unlock()
|
||||
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":
|
||||
// wer ruft auf?
|
||||
requester := i.User
|
||||
|
Reference in New Issue
Block a user