Make sure open vetting requests get removed if a user leaves
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
52038b4765
commit
2c84e6b79c
@ -397,3 +397,31 @@ func onVettingResponse(s *discordgo.Session, i *discordgo.InteractionCreate) err
|
|||||||
|
|
||||||
return db.RemoveVettingReq(i.GuildID, i.Message.ID)
|
return db.RemoveVettingReq(i.GuildID, i.Message.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func onMemberLeave(s *discordgo.Session, gmr *discordgo.GuildMemberRemove) {
|
||||||
|
msgID, err := db.VettingReqMsgID(gmr.GuildID, gmr.Member.User.ID)
|
||||||
|
if errors.Is(err, sql.ErrNoRows) {
|
||||||
|
return
|
||||||
|
} else if err != nil {
|
||||||
|
log.Error("Error getting vetting request ID after member leave").Str("user-id", gmr.Member.User.ID).Err(err).Send()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
guild, err := db.GuildByID(gmr.GuildID)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Error getting guild").Str("guild-id", gmr.GuildID).Err(err).Send()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if guild.VettingReqChanID != "" {
|
||||||
|
err = s.ChannelMessageDelete(guild.VettingReqChanID, msgID)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Error deleting vetting request message after member leave").Str("msg-id", msgID).Err(err).Send()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.RemoveVettingReq(gmr.GuildID, msgID)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Error removing vetting request after member leave").Str("user-id", gmr.Member.User.ID).Err(err).Send()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -34,6 +34,7 @@ func Init(s *discordgo.Session) error {
|
|||||||
s.AddHandler(onMemberJoin)
|
s.AddHandler(onMemberJoin)
|
||||||
s.AddHandler(util.InteractionErrorHandler("on-vetting-req", onVettingRequest))
|
s.AddHandler(util.InteractionErrorHandler("on-vetting-req", onVettingRequest))
|
||||||
s.AddHandler(util.InteractionErrorHandler("on-vetting-resp", onVettingResponse))
|
s.AddHandler(util.InteractionErrorHandler("on-vetting-resp", onVettingResponse))
|
||||||
|
s.AddHandler(onMemberLeave)
|
||||||
|
|
||||||
commands.Register(s, onMakeVettingMsg, &discordgo.ApplicationCommand{
|
commands.Register(s, onMakeVettingMsg, &discordgo.ApplicationCommand{
|
||||||
Name: "Make Vetting Message",
|
Name: "Make Vetting Message",
|
||||||
|
Loading…
Reference in New Issue
Block a user