-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
65 lines (47 loc) · 1.48 KB
/
Copy pathmain.go
File metadata and controls
65 lines (47 loc) · 1.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package main
import (
"log"
"os"
"os/signal"
"syscall"
"github.com/imakebank2/shortbot/birthdays"
"github.com/imakebank2/shortbot/commands"
"github.com/imakebank2/shortbot/eventhandlers"
"github.com/bwmarrin/discordgo"
"github.com/joho/godotenv"
)
func main() {
var err error
if err = godotenv.Load(); err != nil {
log.Fatal("Error loading .env file. Make you you create it from .env.example.")
}
token := os.Getenv("DISCORD_BOT_TOKEN")
if token == "" {
log.Fatal("Paste the bot token (from Discord developer portal) into DISCORD_BOT_TOKEN.")
}
session, err := discordgo.New("Bot " + token)
if err != nil {
log.Fatal(err)
}
// Add event handlers here:
session.AddHandler(eventhandlers.ResponseManager)
session.AddHandler(eventhandlers.CommandManager)
// Events bot can receive (should be the minimum possible for least overhead)
session.Identify.Intents = discordgo.IntentsAll
if err = session.Open(); err != nil {
log.Fatal(err)
}
defer log.Println("Bot offline.")
defer session.Close()
commands.RegisterCommands(session)
log.Println("Bot online! Press CTRL-C to exit.")
log.Println("Birthdays calendar has started.")
// Main chat
// mainChat := "1490651667744555039"
// session.ChannelMessageSend(mainChat, "Same")
go birthdays.CheckBirthdays(session, "./birthdays/birthdays.json", "main-chat")
// Blocks until CTRL-C or other signal is received
stop := make(chan os.Signal, 1)
signal.Notify(stop, syscall.SIGINT, syscall.SIGTERM, os.Interrupt)
<-stop
}