From 4cdc8cd5a1a17dc777cb49b27a9de9dc27c48633 Mon Sep 17 00:00:00 2001 From: DeveloperDurp Date: Tue, 28 Mar 2023 19:31:43 -0500 Subject: [PATCH] updates --- Dockerfile | 1 + main.go | 28 +++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index d936b84..b6cd8cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,6 +12,7 @@ RUN go build -o bot # Set the DISCORD_BOT_TOKEN environment variable ENV TOKEN=${DISCORD_TOKEN} ENV BOTPREFIX="!" +ENV ChannelID=${ChannelID} # Run the bot binary CMD ["./bot"] \ No newline at end of file diff --git a/main.go b/main.go index d3982ca..6725314 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "log" "net/http" "os" @@ -13,6 +14,9 @@ import ( var ( Token string BotPrefix string + ChannelID string + BotId string + goBot *discordgo.Session config *configStruct ) @@ -20,6 +24,7 @@ var ( type configStruct struct { Token string `json : "Token"` BotPrefix string `json : "BotPrefix"` + ChannelID string `json : "ChannelID"` } type jingleBellsResponse struct { @@ -48,14 +53,12 @@ func ReadConfig() error { Token = os.Getenv("TOKEN") BotPrefix = os.Getenv("BOTPREFIX") + ChannelID = os.Getenv("ChannelID") return nil } -var BotId string -var goBot *discordgo.Session - func Start() { goBot, err := discordgo.New("Bot " + Token) @@ -74,6 +77,8 @@ func Start() { BotId = u.ID goBot.AddHandler(messageHandler) + goBot.AddHandler(handleGuildMemberAdd) + goBot.AddHandler(handleGuildMemberRemove) err = goBot.Open() @@ -217,3 +222,20 @@ func sendAPIRequest(s *discordgo.Session, m *discordgo.MessageCreate, url string s.ChannelMessageSend(m.ChannelID, data.Joke) } } + +func handleGuildMemberAdd(s *discordgo.Session, m *discordgo.GuildMemberAdd) { + message := fmt.Sprintf("Welcome <@%s> to our server!", m.Member.User.ID) + _, err := s.ChannelMessageSend(ChannelID, message) + if err != nil { + log.Printf("Error sending welcome message: %v\n", err) + } +} + +func handleGuildMemberRemove(s *discordgo.Session, m *discordgo.GuildMemberRemove) { + + message := fmt.Sprintf("Goodbye %s", m.Member.User.Username) + _, err := s.ChannelMessageSend(ChannelID, message) + if err != nil { + log.Printf("Error sending goodbye message: %v\n", err) + } +}