From 8e8bff65922378c1e7eed752add93972e769978d Mon Sep 17 00:00:00 2001 From: Mel Date: Mon, 4 Apr 2022 14:10:05 +0200 Subject: Simple event handling --- pkg/bot/bot.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'pkg/bot/bot.go') 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, -- cgit 1.4.1