now deletes deleted messages from database
This commit is contained in:
@@ -142,7 +142,7 @@ var cmd_form Command = Command{
|
||||
if formID == "" {
|
||||
formID = "template_general"
|
||||
}
|
||||
|
||||
if title == "" {
|
||||
formTitles := map[string]string{
|
||||
"template_ticket": "Make a new ticket",
|
||||
"template_url": "Add your URL",
|
||||
@@ -151,6 +151,7 @@ var cmd_form Command = Command{
|
||||
if val, ok := formTitles[formID]; ok {
|
||||
title = val
|
||||
}
|
||||
}
|
||||
|
||||
var exists bool = true
|
||||
var formManageID uuid.UUID = uuid.New()
|
||||
@@ -188,7 +189,8 @@ var cmd_form Command = Command{
|
||||
},
|
||||
ComponentInteract: func(s *discordgo.Session, i *discordgo.InteractionCreate) {
|
||||
if strings.HasPrefix(i.Interaction.MessageComponentData().CustomID, "form:") {
|
||||
jsonStringShowModal(i.Interaction, i.Interaction.MessageComponentData().CustomID, getFormType(strings.TrimPrefix(i.Interaction.MessageComponentData().CustomID, "form:")))
|
||||
var formManageID string = strings.TrimPrefix(i.Interaction.MessageComponentData().CustomID, "form:")
|
||||
jsonStringShowModal(i.Interaction, i.Interaction.MessageComponentData().CustomID, getFormType(formManageID), getFormOverwriteTitle(formManageID))
|
||||
} else if i.Interaction.MessageComponentData().CustomID == "form_demo" {
|
||||
jsonStringShowModal(i.Interaction, "form_demo", "form_demo")
|
||||
}
|
||||
|
@@ -139,6 +139,10 @@ func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
|
||||
}
|
||||
}
|
||||
|
||||
func messageDelete(s *discordgo.Session, m *discordgo.MessageDelete) { //TODO: also clear on bot start when message doesn't exist
|
||||
tryDeleteUnusedMessage(m.GuildID, m.ChannelID, m.ID)
|
||||
}
|
||||
|
||||
func guildMemberJoin(s *discordgo.Session, m *discordgo.GuildMemberAdd) {
|
||||
err := s.GuildMemberRoleAdd(m.GuildID, m.User.ID, getAutoJoinRole(m.GuildID, m.User.Bot))
|
||||
if err != nil {
|
||||
|
1
main.go
1
main.go
@@ -41,6 +41,7 @@ func main() {
|
||||
bot.AddHandler(ready)
|
||||
bot.AddHandler(interactionCreate)
|
||||
bot.AddHandler(messageCreate)
|
||||
bot.AddHandler(messageDelete)
|
||||
bot.AddHandler(guildMemberJoin)
|
||||
err = bot.Open()
|
||||
if err != nil {
|
||||
|
@@ -250,25 +250,41 @@ func getFormType(formManageID string) string {
|
||||
|
||||
func getFormResultValues(formManageID string) FormResult {
|
||||
var result FormResult
|
||||
err := db.QueryRow("SELECT overwrite_title from form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.OverwriteTitle)
|
||||
err := db.QueryRow("SELECT overwrite_title FROM form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.OverwriteTitle)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = db.QueryRow("SELECT result_channel_id from form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.ResultChannelID)
|
||||
err = db.QueryRow("SELECT result_channel_id FROM form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.ResultChannelID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = db.QueryRow("SELECT accept_channel_id from form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.AcceptChannelID)
|
||||
err = db.QueryRow("SELECT accept_channel_id FROM form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.AcceptChannelID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
err = db.QueryRow("SELECT mods_can_comment from form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.ModsCanComment)
|
||||
err = db.QueryRow("SELECT mods_can_comment FROM form_manage WHERE form_manage_id = $1", formManageID).Scan(&result.ModsCanComment)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func getFormOverwriteTitle(formManageID string) string {
|
||||
var overwriteTitle string
|
||||
err := db.QueryRow("SELECT overwrite_title FROM form_manage WHERE form_manage_id = $1", formManageID).Scan(&overwriteTitle)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
return overwriteTitle
|
||||
}
|
||||
|
||||
func removeForm(formManageID string) {
|
||||
_, err := db.Exec("DELETE FROM form_manage WHERE form_manage_id = $1", formManageID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}
|
||||
|
||||
func setAutoJoinRole(guildID string, option string, roleID string) bool {
|
||||
var role_exists bool
|
||||
var autojoinroles_exists bool
|
||||
@@ -344,3 +360,10 @@ func isAutopublishEnabled(guildID string, newsChannelID string) bool {
|
||||
}
|
||||
return enabled
|
||||
}
|
||||
|
||||
func tryDeleteUnusedMessage(guildID string, channelID string, messageID string) {
|
||||
_, err := db.Exec("DELETE FROM form_manage WHERE guild_id = $1 AND channel_id = $2 AND message_id = $3", guildID, channelID, messageID)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}
|
||||
|
5
tool.go
5
tool.go
@@ -27,7 +27,7 @@ type ModalJson struct {
|
||||
Form []ModalJsonField `json:"form"`
|
||||
}
|
||||
|
||||
func jsonStringShowModal(interaction *discordgo.Interaction, manageID string, formID string) {
|
||||
func jsonStringShowModal(interaction *discordgo.Interaction, manageID string, formID string, overwrite ...string) {
|
||||
var modal ModalJson = getModalByFormID(formID)
|
||||
var components []discordgo.MessageComponent
|
||||
for index, component := range modal.Form {
|
||||
@@ -50,6 +50,9 @@ func jsonStringShowModal(interaction *discordgo.Interaction, manageID string, fo
|
||||
},
|
||||
})
|
||||
}
|
||||
if overwrite[0] != "" {
|
||||
modal.Title = overwrite[0]
|
||||
}
|
||||
err := bot.InteractionRespond(interaction, &discordgo.InteractionResponse{
|
||||
Type: discordgo.InteractionResponseModal,
|
||||
Data: &discordgo.InteractionResponseData{
|
||||
|
Reference in New Issue
Block a user