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