package main import ( "fmt" "github.com/bwmarrin/discordgo" ) func MessageHandler(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Author.ID == s.State.User.ID { return } switch m.Content { case "test": var serverListString string for i, server := range ServerList { serverListString = serverListString + fmt.Sprintf("\n %d) ", i+1) + server.Name } s.ChannelMessageSendEmbed(m.ChannelID, &discordgo.MessageEmbed{ Title: "Servers", Fields: []*discordgo.MessageEmbedField{ { Value: serverListString, }, }, Type: discordgo.EmbedTypeArticle, }) case "!test": s.ChannelMessageSendEmbed(m.ChannelID, &discordgo.MessageEmbed{ Title: "Servers", Fields: []*discordgo.MessageEmbedField{ { Value: "test", }, }, Type: discordgo.EmbedTypeArticle, }) } } func CommandHandler(s *discordgo.Session, i *discordgo.InteractionCreate) { data := i.ApplicationCommandData() switch data.Name { case "init": AddServer(i.GuildID, s) case "test1": err := s.InteractionRespond( i.Interaction, &discordgo.InteractionResponse{ Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{}, }, ) if err != nil { // Handle the error } case "read_back": err := s.InteractionRespond( i.Interaction, &discordgo.InteractionResponse{ Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{ Content: data.Options[0].Value.(string), }, }, ) if err != nil { // Handle the error } case "delete": deleteMessages(data, s, i) } }