From a36bee635f3b05b5f45570283acfba8bb679f42f Mon Sep 17 00:00:00 2001 From: Sean Hinchee Date: Tue, 23 Jan 2018 18:25:41 -0600 Subject: [PATCH] fixing crashes; removed personal messages for later fix; update API compliance --- DiscordState/session.go | 9 +++++---- DiscordState/state.go | 4 ++-- DiscordState/struct.go | 4 ++-- commands.go | 6 ++++-- events.go | 8 ++++---- helper.go | 8 +++++--- menu.go | 15 +++++++++------ 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/DiscordState/session.go b/DiscordState/session.go index c685c0f7a1eec68e8028dec1813a21de14495c5c..538ecb1b6de7cf396af5576f80995b8aaf8e5441 100644 --- a/DiscordState/session.go +++ b/DiscordState/session.go @@ -4,7 +4,7 @@ package DiscordState import ( "fmt" - "bitbucket.org/henesy/disco/DiscordGo" + "github.com/bwmarrin/discordgo" ) //!----- Session -----!// @@ -32,12 +32,13 @@ func (Session *Session) Start() error { dg.Open() //Retrieve GuildID's from current User - UserGuilds, err := dg.UserGuilds() + //need index of Guilds[] rather than UserGuilds[] (maybe) + Guilds, err := dg.UserGuilds(0, "", "") if err != nil { return err } - Session.Guilds = UserGuilds + Session.Guilds = Guilds Session.DiscordGo = dg @@ -116,7 +117,7 @@ func (Session *Session) NewState(GuildID string, MessageAmount int) (*State, err //Update updates the session, this reloads the Guild list func (Session *Session) Update() error { - UserGuilds, err := Session.DiscordGo.UserGuilds() + UserGuilds, err := Session.DiscordGo.UserGuilds(0, "", "") if err != nil { return err } diff --git a/DiscordState/state.go b/DiscordState/state.go index 0343cc0448a4e85a0ca383a4a980fe4501d3241e..e571727fa30105d7d679dc8c37f4620d0f0067b0 100644 --- a/DiscordState/state.go +++ b/DiscordState/state.go @@ -1,6 +1,6 @@ package DiscordState -import "bitbucket.org/henesy/disco/DiscordGo" +import "github.com/bwmarrin/discordgo" //SetChannel sets the channel of the current State func (State *State) SetChannel(ID string) { @@ -56,7 +56,7 @@ func (State *State) DelMessage(Message *discordgo.Message) { //RetrieveMessages retrieves last N Messages and puts it in state func (State *State) RetrieveMessages(Amount int) error { - Messages, err := State.Session.DiscordGo.ChannelMessages(State.Channel.ID, Amount, "", "") + Messages, err := State.Session.DiscordGo.ChannelMessages(State.Channel.ID, Amount, "", "", "") if err != nil { return err } diff --git a/DiscordState/struct.go b/DiscordState/struct.go index 6d9a376e9652986dae4c434332e00ba73ca8a5e7..e84e9f78413cc231705903fad8eb600b8fcf87cc 100644 --- a/DiscordState/struct.go +++ b/DiscordState/struct.go @@ -1,6 +1,6 @@ package DiscordState -import "bitbucket.org/henesy/disco/DiscordGo" +import "github.com/bwmarrin/discordgo" //State is the current state of the attached client type State struct { @@ -22,5 +22,5 @@ type Session struct { User *discordgo.User Password string DiscordGo *discordgo.Session - Guilds []*discordgo.Guild + Guilds []*discordgo.UserGuild } diff --git a/commands.go b/commands.go index 84bb0f07be17478f8b4a49eb0ef2646adb512e27..210c7c4eb66a473ccd6e5cf287dababb59986141 100644 --- a/commands.go +++ b/commands.go @@ -76,14 +76,16 @@ func SelectChannel() { //SelectPrivate a private channel func SelectPrivate() { State.Enabled = false - SelectPrivateMenu() + /* FIXME -- PM's broken + SelectPrivateMenu()*/ State.Enabled = true } //SelectDeletePrivate a private channel func SelectDeletePrivate() { State.Enabled = false - SelectDeletePrivateMenu() + /* FIXME -- PM's broken + SelectDeletePrivateMenu()*/ State.Enabled = true if State.Channel != nil { ShowContent() diff --git a/events.go b/events.go index b720e4ae4526aa536514d53fd20c8daf99a2e6a0..0f075457eb13036a6c24ba7de4b505b070c614ff 100644 --- a/events.go +++ b/events.go @@ -3,14 +3,14 @@ package main import ( "strings" - "bitbucket.org/henesy/disco/DiscordGo" + "github.com/bwmarrin/discordgo" ) -func removeReaction(s *discordgo.Session, r *discordgo.ReactionRemove) { +func removeReaction(s *discordgo.Session, r *discordgo.MessageReactionRemove) { } -func newReaction(s *discordgo.Session, m *discordgo.ReactionAdd) { +func newReaction(s *discordgo.Session, m *discordgo.MessageReactionAdd) { } // This function will be called (due to AddHandler above) every time a new @@ -34,7 +34,7 @@ func newMessage(s *discordgo.Session, m *discordgo.MessageCreate) { Messages := ReceivingMessageParser(m.Message) for _, Msg := range Messages { - MessagePrint(m.Timestamp, m.Author.Username, Msg) + MessagePrint(string(m.Timestamp), m.Author.Username, Msg) //log.Printf("> %s > %s\n", UserName(m.Author.Username), Msg) } } diff --git a/helper.go b/helper.go index 176c2bd8f004f16eba7395fa299851c98bc826e9..d4223a9ccea9fb2840996848c9554fcf1d94bdc0 100644 --- a/helper.go +++ b/helper.go @@ -7,7 +7,7 @@ import ( "strings" "time" "fmt" - "bitbucket.org/henesy/disco/DiscordGo" + "github.com/bwmarrin/discordgo" "bufio" ) @@ -26,11 +26,13 @@ func Msg(MsgType, format string, a ...interface{}) { //Header simply prints a header containing state/session information func Header() { Msg(InfoMsg, "Welcome, %s!\n\n", State.Session.User.Username) + /* FIXME -- PM's won't work if State.Channel.IsPrivate { Msg(InfoMsg, "Channel: %s\n", State.Channel.Recipient.Username) } else { + */ Msg(InfoMsg, "Guild: %s, Channel: %s\n", State.Guild.Name, State.Channel.Name) - } + /*}*/ } //ReceivingMessageParser parses receiving message for mentions, images and MultiLine and returns string array @@ -56,7 +58,7 @@ func PrintMessages(Amount int) { for _, Msg := range Messages { //log.Printf("> %s > %s\n", UserName(m.Author.Username), Msg) - MessagePrint(m.Timestamp, m.Author.Username, Msg) + MessagePrint(string(m.Timestamp), m.Author.Username, Msg) } } diff --git a/menu.go b/menu.go index bdee2caba352f16011e70baa3d319855adf74f7e..8f4215a352e087c7275feba7123f1c7cac402646 100644 --- a/menu.go +++ b/menu.go @@ -7,7 +7,7 @@ import ( "bufio" "os" ) - +/* FIXME -- PM's broken //SelectPrivateMenu is a menu item that changes to a private channel func SelectPrivateMenu() { @@ -78,8 +78,9 @@ Start: State.Channel = UserChannels[ResponseInteger] ShowContent() End: -} +}*/ +/* FIXME -- PM's broken //SelectDeletePrivateMenu deletes a user channel func SelectDeletePrivateMenu() { @@ -117,7 +118,7 @@ Start: Session.DiscordGo.ChannelDelete(UserChannels[ResponseInteger].ID) -} +} */ //SelectGuildMenu is a menu item that creates a new State on basis of Guild selection func SelectGuildMenu() { @@ -183,7 +184,8 @@ Start: SelectID := 0 for _, channel := range State.Channels { - if channel.Type == "text" { + // 0 is ChannelTypeGuildText ChannelType = iota + if channel.Type == 0 { SelectMap[SelectID] = channel.ID Msg(TextMsg, "[%d] %s\n", SelectID, channel.Name) SelectID++ @@ -278,9 +280,10 @@ func ExtraPrivateMenuOptions() { //AddUserChannelMenu takes a user from the current guild and adds them to a private message. WILL RETURN ERROR IF IN USER CHANNEL. func AddUserChannelMenu() { + /* FIXME -- PM's broken if State.Channel.IsPrivate { Msg(ErrorMsg, "Currently in a user channel, move to a guild with :g\n") - } else { + } else {*/ SelectMap := make(map[int]string) Start: SelectID := 0 @@ -314,7 +317,7 @@ func AddUserChannelMenu() { Session.DiscordGo.ChannelMessageSend(Chan.ID, "Test") } State.Channel = Chan - } + /*}*/ } //LeaveServerMenu is a copy of SelectGuildMenu that leaves instead of selects