grim/wasdead

Fix the help message for the help command
draft
2019-04-08, Gary Kramlich
c06bc2e462ed
Fix the help message for the help command
package discord
import (
"errors"
"strings"
"time"
"github.com/bwmarrin/discordgo"
log "github.com/sirupsen/logrus"
"bitbucket.org/TheToyz/nowdead/database"
)
type DiscordClient struct {
client *discordgo.Session
db database.Database
started time.Time
userID string
mentionString string
}
func New(token string, db database.Database) (*DiscordClient, error) {
client, err := discordgo.New("Bot " + strings.TrimSpace(token))
if err != nil {
return nil, err
}
dc := &DiscordClient{
client: client,
db: db,
started: time.Now().UTC(),
}
client.AddHandler(dc.messageHandler)
client.AddHandler(dc.presenceHandler)
return dc, nil
}
func (c *DiscordClient) Start(errChan chan error) {
err := c.client.Open()
if err != nil {
errChan <- err
return
}
c.userID = c.client.State.Ready.User.ID
c.mentionString = "<@" + c.userID + "> "
c.client.UpdateStatus(0, "Use - @"+c.client.State.Ready.User.Username+" help")
}
func (c *DiscordClient) Shutdown() error {
return c.client.Close()
}
func (c *DiscordClient) send(guild, message string) error {
channelID := c.db.GetChannel(guild)
if channelID == "" {
return errors.New("No channel set")
}
return c.sendChannel(channelID, message)
}
func (c *DiscordClient) sendChannel(channelID, message string) error {
// ignore the message that we sent
_, err := c.client.ChannelMessageSend(channelID, message)
return err
}
func (c *DiscordClient) getPresence(guildId, userId string) *discordgo.Presence {
p, err := c.client.State.Presence(guildId, userId)
if err != nil {
log.Warnf("failed to get discord presence for %d: %v", userId, err)
return nil
}
return p
}