aboutsummaryrefslogtreecommitdiff
path: root/pkg/bot
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-04-04 14:10:05 +0200
committerMel <einebeere@gmail.com>2022-04-04 14:10:05 +0200
commit8e8bff65922378c1e7eed752add93972e769978d (patch)
treed28d3a60ce4e9997309bad72d7668647bda41292 /pkg/bot
parent165ed818775c915e4bfd2599bdb8ca8e2975bb83 (diff)
downloadjinx-8e8bff65922378c1e7eed752add93972e769978d.tar.zst
jinx-8e8bff65922378c1e7eed752add93972e769978d.zip
Simple event handling
Diffstat (limited to 'pkg/bot')
-rw-r--r--pkg/bot/bot.go20
1 files changed, 16 insertions, 4 deletions
diff --git a/pkg/bot/bot.go b/pkg/bot/bot.go
index 091e1be..9095d7c 100644
--- a/pkg/bot/bot.go
+++ b/pkg/bot/bot.go
@@ -4,6 +4,7 @@ import (
"context"
"fmt"
"jinx/pkg/discord"
+ "log"
)
type Bot struct {
@@ -16,16 +17,27 @@ func Start(token string) (*Bot, error) {
client := discord.NewClient(token)
- ctx, cancel := context.WithCancel(context.Background())
+ client.AddEventHandler(discord.DISCORD_EVENT_READY, func(_ any) {
+ log.Println("bot is ready!")
+ })
+
+ client.AddEventHandler(discord.DISCORD_EVENT_MESSAGE, func(m any) {
+ msg := m.(discord.GatewayMessageCreateEvent)
+ log.Printf("message: %s", msg.Content)
+
+ if msg.Content == "ping" {
+ if err := client.SendMessage(msg.ChannelID, "pong"); err != nil {
+ log.Printf("error sending message: %s", err)
+ }
+ }
+ })
- fmt.Println("connecting..")
+ ctx, cancel := context.WithCancel(context.Background())
if err := client.Connect(ctx); err != nil {
cancel()
return nil, err
}
- fmt.Println("connected..")
-
return &Bot{
Client: client,
cancelContext: cancel,