now deletes deleted messages from database
This commit is contained in:
		
							
								
								
									
										20
									
								
								cmd_form.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								cmd_form.go
									
									
									
									
									
								
							| @@ -142,14 +142,15 @@ var cmd_form Command = Command{ | |||||||
| 			if formID == "" { | 			if formID == "" { | ||||||
| 				formID = "template_general" | 				formID = "template_general" | ||||||
| 			} | 			} | ||||||
|  | 			if title == "" { | ||||||
| 			formTitles := map[string]string{ | 				formTitles := map[string]string{ | ||||||
| 				"template_ticket":  "Make a new ticket", | 					"template_ticket":  "Make a new ticket", | ||||||
| 				"template_url":     "Add your URL", | 					"template_url":     "Add your URL", | ||||||
| 				"template_general": "Form", | 					"template_general": "Form", | ||||||
| 			} | 				} | ||||||
| 			if val, ok := formTitles[formID]; ok { | 				if val, ok := formTitles[formID]; ok { | ||||||
| 				title = val | 					title = val | ||||||
|  | 				} | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			var exists bool = true | 			var exists bool = true | ||||||
| @@ -188,7 +189,8 @@ var cmd_form Command = Command{ | |||||||
| 	}, | 	}, | ||||||
| 	ComponentInteract: func(s *discordgo.Session, i *discordgo.InteractionCreate) { | 	ComponentInteract: func(s *discordgo.Session, i *discordgo.InteractionCreate) { | ||||||
| 		if strings.HasPrefix(i.Interaction.MessageComponentData().CustomID, "form:") { | 		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" { | 		} else if i.Interaction.MessageComponentData().CustomID == "form_demo" { | ||||||
| 			jsonStringShowModal(i.Interaction, "form_demo", "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) { | func guildMemberJoin(s *discordgo.Session, m *discordgo.GuildMemberAdd) { | ||||||
| 	err := s.GuildMemberRoleAdd(m.GuildID, m.User.ID, getAutoJoinRole(m.GuildID, m.User.Bot)) | 	err := s.GuildMemberRoleAdd(m.GuildID, m.User.ID, getAutoJoinRole(m.GuildID, m.User.Bot)) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								main.go
									
									
									
									
									
								
							| @@ -41,6 +41,7 @@ func main() { | |||||||
| 	bot.AddHandler(ready) | 	bot.AddHandler(ready) | ||||||
| 	bot.AddHandler(interactionCreate) | 	bot.AddHandler(interactionCreate) | ||||||
| 	bot.AddHandler(messageCreate) | 	bot.AddHandler(messageCreate) | ||||||
|  | 	bot.AddHandler(messageDelete) | ||||||
| 	bot.AddHandler(guildMemberJoin) | 	bot.AddHandler(guildMemberJoin) | ||||||
| 	err = bot.Open() | 	err = bot.Open() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
| @@ -250,25 +250,41 @@ func getFormType(formManageID string) string { | |||||||
|  |  | ||||||
| func getFormResultValues(formManageID string) FormResult { | func getFormResultValues(formManageID string) FormResult { | ||||||
| 	var result 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 { | 	if err != nil { | ||||||
| 		log.Println(err) | 		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 { | 	if err != nil { | ||||||
| 		log.Println(err) | 		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 { | 	if err != nil { | ||||||
| 		log.Println(err) | 		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 { | 	if err != nil { | ||||||
| 		log.Println(err) | 		log.Println(err) | ||||||
| 	} | 	} | ||||||
| 	return result | 	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 { | func setAutoJoinRole(guildID string, option string, roleID string) bool { | ||||||
| 	var role_exists bool | 	var role_exists bool | ||||||
| 	var autojoinroles_exists bool | 	var autojoinroles_exists bool | ||||||
| @@ -344,3 +360,10 @@ func isAutopublishEnabled(guildID string, newsChannelID string) bool { | |||||||
| 	} | 	} | ||||||
| 	return enabled | 	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"` | 	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 modal ModalJson = getModalByFormID(formID) | ||||||
| 	var components []discordgo.MessageComponent | 	var components []discordgo.MessageComponent | ||||||
| 	for index, component := range modal.Form { | 	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{ | 	err := bot.InteractionRespond(interaction, &discordgo.InteractionResponse{ | ||||||
| 		Type: discordgo.InteractionResponseModal, | 		Type: discordgo.InteractionResponseModal, | ||||||
| 		Data: &discordgo.InteractionResponseData{ | 		Data: &discordgo.InteractionResponseData{ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user