more work on message parsing

This commit is contained in:
Cynthia Foxwell 2023-07-09 14:00:49 -06:00
parent 6b5857d382
commit 2ba9b1405f
8 changed files with 226 additions and 41 deletions

9
events/main.go Normal file
View file

@ -0,0 +1,9 @@
package events
import "github.com/bwmarrin/discordgo"
func Setup(session *discordgo.Session) {
session.AddHandlerOnce(Ready)
session.AddHandler(MessageCreate)
session.AddHandler(MessageUpdate)
}

View file

@ -30,5 +30,24 @@ func MessageCreate(session *discordgo.Session, msg *discordgo.MessageCreate) {
}
func MessageUpdate(session *discordgo.Session, msg *discordgo.MessageUpdate) {
if msg.Author.ID == session.State.User.ID {
return
}
channel, err := session.State.Channel(msg.ChannelID)
if err != nil {
return
}
isDM := channel.Type == discordgo.ChannelTypeDM || channel.Type == discordgo.ChannelTypeGroupDM
if state.IsInPrompt() {
state.AddMessageToQueue(msg.Message)
} else {
lib.ProcessMessage(session, msg.Message, lib.MessageOptions{NoColor: state.HasNoColor()})
}
if isDM {
state.SetLastDM(msg.ChannelID)
}
}

View file

@ -2,6 +2,7 @@ package events
import (
"fmt"
"unicode/utf8"
"github.com/Cynosphere/comcord/state"
"github.com/bwmarrin/discordgo"
@ -11,7 +12,7 @@ import (
func Ready(session *discordgo.Session, event *discordgo.Ready) {
fmt.Printf("\rLogged in as: %s\n\r", ansi.Color(fmt.Sprintf("%s (%s)", session.State.User.Username, session.State.User.ID), "yellow"))
state.SetNameLength(len(session.State.User.Username) + 2)
state.SetNameLength(utf8.RuneCountInString(session.State.User.Username) + 2)
defaultGuild := state.GetConfigValue("defaultGuild")
defaultChannel := state.GetConfigValue("defaultChannel")