about summary refs log tree commit diff
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,