From c5389052b87ee9957367b0b4b3be60b84578674b Mon Sep 17 00:00:00 2001 From: kageru Date: Thu, 17 May 2018 16:30:29 +0200 Subject: [PATCH] initial commit --- config.json | 5 ++++ main.go | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 config.json create mode 100644 main.go diff --git a/config.json b/config.json new file mode 100644 index 0000000..6d05845 --- /dev/null +++ b/config.json @@ -0,0 +1,5 @@ +{ + "Token": "put your token here", + "Welcome": "Welcome to the server, <@%s>.", + "WelcomeChannel": "channel id (as string)" +} diff --git a/main.go b/main.go new file mode 100644 index 0000000..f270cf2 --- /dev/null +++ b/main.go @@ -0,0 +1,84 @@ +package main + +import ( + "fmt" + "encoding/json" + "strings" + "os" + "os/signal" + "syscall" + "github.com/bwmarrin/discordgo" +) + +type Config struct { + Token string + Welcome string + WelcomeChannel string +} + +var config = readConfig() + +func readConfig() Config { + file, _ := os.Open("config.json") + conf := Config{} + _ = json.NewDecoder(file).Decode(&conf) + file.Close() + return conf +} + + + +func main() { + dg, err := discordgo.New("Bot " + config.Token) + if err != nil { + fmt.Println("error: ", err) + return + } + + dg.AddHandler(genericReply) + dg.AddHandler(onJoin) + err = dg.Open() + if err != nil { + fmt.Println("no connection, ", err) + return + } + + fmt.Println("bot running. selphyWoo") + sc := make(chan os.Signal, 1) + signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill) + <-sc + + dg.Close() +} + +func genericReply(s *discordgo.Session, m *discordgo.MessageCreate) { + if m.Author.ID == s.State.User.ID { + return + } + + if strings.Contains(m.Content, ";)") { + s.ChannelMessageSend(m.ChannelID, fmt.Sprintf("<@%s> faggot", m.Author.ID)) + return + } + + // As per our majesty’s command: + if m.Content == "\\o" { + s.ChannelMessageSend(m.ChannelID, "o/") + } else if m.Content == "o/" { + s.ChannelMessageSend(m.ChannelID, "\\o") + } + if m.Content == "test_welcome()" { + s.ChannelMessageSend(m.ChannelID, fmt.Sprintf(config.Welcome, m.Author.ID)) + } +} + +func onJoin(s *discordgo.Session, member *discordgo.GuildMemberAdd) { + fmt.Println("user joined") + + fmt.Println(member.User.Bot) + if !member.User.Bot { + s.ChannelMessageSend(config.WelcomeChannel, fmt.Sprintf(config.Welcome, member.User.ID)) + } + fmt.Println(fmt.Sprintf(config.Welcome, member.User.ID)) +} +