comcord/commands/emote.go

46 lines
1 KiB
Go
Raw Normal View History

2023-07-11 03:46:47 +00:00
package commands
import (
"fmt"
"github.com/Cynosphere/comcord/lib"
"github.com/Cynosphere/comcord/state"
"github.com/diamondburned/arikawa/v3/discord"
2023-07-11 03:46:47 +00:00
)
func EmoteCommand() {
2023-07-11 03:46:47 +00:00
channelId := state.GetCurrentChannel()
if channelId == "" {
fmt.Print("<not in a channel>\n\r")
return
}
prompt := ":emote> "
lib.MakePrompt(prompt, true, func(input string, interrupt bool) {
2023-07-11 03:46:47 +00:00
if input == "" {
if interrupt {
fmt.Print("^C<no message sent>\n\r")
} else {
fmt.Print(prompt, "<no message sent>\n\r")
}
} else {
fmt.Print(prompt, input, "\n\r")
client := state.GetClient()
2023-07-11 03:46:47 +00:00
snowflake, err := discord.ParseSnowflake(channelId)
2023-07-11 03:46:47 +00:00
if err != nil {
fmt.Print("<failed to parse channel id: ", err.Error(), ">\n\r")
return
}
_, err = client.SendMessage(discord.ChannelID(snowflake), "*" + input + "*")
if err != nil {
fmt.Print("<failed to send message: ", err.Error(), ">\n\r")
2023-07-11 03:46:47 +00:00
}
// TODO: update afk state
}
})
}