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