Compare commits

...

3 Commits

Author SHA1 Message Date
7d8a2db77b
Add database to config 2024-07-06 16:59:12 +02:00
b63a368c35
Simple bot 2024-07-06 16:55:30 +02:00
6cf715e620
Start bot 2024-07-06 16:29:25 +02:00
2 changed files with 83 additions and 2 deletions

11
go.mod
View File

@ -1,3 +1,14 @@
module HwidBot
go 1.22.4
require (
github.com/BurntSushi/toml v1.4.0
github.com/bwmarrin/discordgo v0.28.1
)
require (
github.com/gorilla/websocket v1.4.2 // indirect
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 // indirect
)

74
main.go
View File

@ -2,8 +2,78 @@ package main
import (
"fmt"
"os"
"os/signal"
"syscall"
"github.com/BurntSushi/toml"
"github.com/bwmarrin/discordgo"
)
func main(){
fmt.Println("Initial")
var client *discordgo.Session
type Config struct {
Discord Discord `toml:"discord"`
Database Database `toml:"database"`
}
type Discord struct {
Token string `toml:"client"`
GuildID string `toml:"guildid"`
}
type Database struct {
Host string `toml:"host"`
Port int `toml:"port"`
Name string `toml:"name"`
Username string `toml:"username"`
Password string `toml:"password"`
}
func loadConfig(filename string) (Config, error) {
var config Config
_, err := toml.DecodeFile(filename, &config)
return config, err
}
func init() {
config, err := loadConfig("config.toml")
if err != nil {
fmt.Println("Error occurred whilst trying to load config:", err)
return
}
client, err = discordgo.New("Bot " + config.Discord.Token)
if err != nil {
fmt.Println("Error initializing bot:", err)
return
}
}
func main() {
if client == nil {
fmt.Println("Bot client is not initialized")
return
}
client.AddHandler(func(client *discordgo.Session, r *discordgo.Ready) {
fmt.Println("Bot is online")
})
err := client.Open()
if err != nil {
fmt.Println("Error opening connection:", err)
return
}
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)
<-stop
fmt.Println("Gracefully shutting down.")
client.Close()
}