--- a/discord/commands.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/commands.go Sat May 11 22:39:35 2019 -0500
@@ -97,7 +97,7 @@
- g.client.sendChannelEmbed(g.msg.ChannelID, embed)
+ g.client.sendEmbedChannel(g.msg.ChannelID, embed) @@ -137,7 +137,7 @@
- return g.client.sendPresenceChannel(g.msg.ChannelID, presence)
+ return g.client.sendEmbedChannel(g.msg.ChannelID, presenceEmbed(presence)) --- a/discord/discord.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/discord.go Sat May 11 22:39:35 2019 -0500
@@ -1,6 +1,7 @@
@@ -18,6 +19,10 @@
+ ErrAnnouncementChannelNotSet = errors.New("no announcement channel set") func New(token string) (*DiscordClient, error) {
client, err := discordgo.New("Bot " + strings.TrimSpace(token))
@@ -57,6 +62,10 @@
+ if guild.Channel == "" { + return ErrAnnouncementChannelNotSet return c.sendChannel(guild.Channel, message)
@@ -67,7 +76,20 @@
-func (c *DiscordClient) sendChannelEmbed(channelID string, embed *discordgo.MessageEmbed) error {
+func (c *DiscordClient) sendEmbed(guildId string, embed *discordgo.MessageEmbed) error { + guild, err := database.LoadGuild(guildId) + if guild.Channel == "" { + return ErrAnnouncementChannelNotSet + return c.sendEmbedChannel(guild.Channel, embed) +func (c *DiscordClient) sendEmbedChannel(channelID string, embed *discordgo.MessageEmbed) error { _, err := c.client.ChannelMessageSendEmbed(
--- a/discord/presence.go Sat May 11 21:54:24 2019 -0500
+++ b/discord/presence.go Sat May 11 22:39:35 2019 -0500
@@ -1,7 +1,6 @@
"github.com/bwmarrin/discordgo"
@@ -38,41 +37,18 @@
+ if err := c.sendEmbed(p.GuildID, presenceEmbed(presence)); err != nil { + log.Warnf("failed to send presence to guild %s: %v, %v", p.GuildID, err, presence) + // only save after we've successful send the message guild.History[presence.UserID] = presence.StreamID
log.Warnf("failed to save stream update for %s: %v", presence.UserID, err)
- if err := c.sendPresence(p.GuildID, presence); err != nil {
- log.Warnf("failed to send presence to guild %s: %v, %v", p.GuildID, err, presence)
-func (c *DiscordClient) sendPresence(guildID string, presence presence.Presence) error {
- guild, err := database.LoadGuild(guildID)
- return errors.New("Guild does not exist")
- if guild.Channel == "" {
- return errors.New("No channel set")
- return c.sendPresenceChannel(guild.Channel, presence)
-func (c *DiscordClient) sendPresenceChannel(channelID string, presence presence.Presence) error {
- _, err := c.client.ChannelMessageSendEmbed(
- presenceEmbed(presence),
func presenceEmbed(presence presence.Presence) *discordgo.MessageEmbed {