package modules import "github.com/bwmarrin/discordgo" type embed struct { *discordgo.MessageEmbed } func newEmbed() *embed { return &embed{&discordgo.MessageEmbed{}} } func initNewEmbed(title, description string, colour int) *embed { return newEmbed().SetTitle(title).SetDescription(description).SetColour(colour) } func initNewErrorEmbed(description string) *embed { e := newEmbed() e.Color = 0xE00000 e.Title = "发生错误!An error has occurred!" e.Description = description return e } func (e *embed) SetTitle(title string) *embed { e.Title = title return e } func (e *embed) SetColour(colour int) *embed { e.Color = colour return e } func (e *embed) SetDescription(description string) *embed { e.Description = description return e } func (e *embed) AddField(name, value string) *embed { e.Fields = append(e.Fields, &discordgo.MessageEmbedField{ Name: name, Value: value, }) return e } func (e *embed) AddInlineField(name, value string) *embed { e.Fields = append(e.Fields, &discordgo.MessageEmbedField{ Name: name, Value: value, Inline: true, }) return e } func (e *embed) Build() *discordgo.MessageEmbed { return e.MessageEmbed } func (e *embed) Send(s *discordgo.Session, channelID string) { s.ChannelMessageSendEmbed(channelID, e.Build()) } func (e *embed) SendPM(s *discordgo.Session, userID string) { channel, err := s.UserChannelCreate(userID) if err != nil { auditError(s, "", err) return } e.Send(s, channel.ID) }