diff options
| author | Mel <einebeere@gmail.com> | 2022-04-04 14:10:05 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-04-04 14:10:05 +0200 |
| commit | 8e8bff65922378c1e7eed752add93972e769978d (patch) | |
| tree | d28d3a60ce4e9997309bad72d7668647bda41292 /pkg/bot/bot.go | |
| parent | 165ed818775c915e4bfd2599bdb8ca8e2975bb83 (diff) | |
| download | jinx-8e8bff65922378c1e7eed752add93972e769978d.tar.zst jinx-8e8bff65922378c1e7eed752add93972e769978d.zip | |
Simple event handling
Diffstat (limited to 'pkg/bot/bot.go')
| -rw-r--r-- | pkg/bot/bot.go | 20 |
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, |
