package discord import ( "fmt" "strings" "git.birbmc.com/canopeas/config" "github.com/bwmarrin/discordgo" ) func Echo(cfg *config.Config) { for _, echo := range cfg.Echoes { e := echo // Closure commands = append(commands, &command{ name: e.Name, aliases: e.Aliases, child: true, validate: func(cmd commandInit) bool { return true }, run: func(cmd commandInit) (string, error) { return e.Message, nil }, help: e.Help, }) } commands = append(commands, &command{ deleteInvocation: true, name: "echoes", validate: func(cmd commandInit) bool { return true }, run: func(cmd commandInit) (string, error) { embed := &discordgo.MessageEmbed{ Title: "Echo Commands", Fields: make([]*discordgo.MessageEmbedField, len(cfg.Echoes)), } for i, echo := range cfg.Echoes { name := echo.Name if len(echo.Aliases) > 0 { name += fmt.Sprintf(" (%s)", strings.Join(echo.Aliases, ", ")) } embed.Fields[i] = &discordgo.MessageEmbedField{ Name: name, Value: echo.Help, Inline: true, } } channel, err := cmd.session.UserChannelCreate(cmd.message.Author.ID) if err != nil { return "", err } sendEmbed(cmd.session, channel.ID, embed) return "", nil }, help: "Get all dynamic messages", }) }