From dc41c5c49c415101edc362868fbe1c30d5f321af Mon Sep 17 00:00:00 2001 From: adminoo Date: Tue, 8 Dec 2020 15:35:40 +0100 Subject: [PATCH] we should always get a fun hat --- core/core_test.go | 6 +++++- core/messages.go | 31 +++++++++++++++++++------------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/core/core_test.go b/core/core_test.go index 194f75e..56c381f 100644 --- a/core/core_test.go +++ b/core/core_test.go @@ -48,10 +48,14 @@ func TestGetHelpMessage(t *testing.T) { } } -// it's just hats, what else is there to check +// it's just hats, what else is there to check beside if the string isn't empty func TestGetHatMessage(t *testing.T) { var hats string = getHatMessage() if len(hats) <= 0 { t.Fail() } } + +func TestGetTalkbackMessage(t *testing.T) { + return +} diff --git a/core/messages.go b/core/messages.go index 83bd493..a830e24 100644 --- a/core/messages.go +++ b/core/messages.go @@ -49,15 +49,29 @@ func getHelpMessage() string { func getHatMessage() string { hat := []string{"๐Ÿงข", "๐Ÿ‘’", "โ›‘", "๐ŸŽฉ", "๐ŸŽ“"} rand.Seed(time.Now().UnixNano()) - var amount int = rand.Intn(len(hat)) + var amount int = (rand.Intn(len(hat) -1) +1) var bag []string for i := 0; i < amount; i++ { rand.Seed(time.Now().UnixNano()) - bag = append(bag, hat[rand.Intn(len(hat))]) + bag = append(bag, hat[(rand.Intn(len(hat) -1) +1)]) } return strings.Join(bag, " ") } +func getTalkbackMessage(message string) string { + for _, t := range ConfigRegister.Talkback { + for _, p := range t.Domain.Patterns { + rand.Seed(time.Now().UnixNano()) + if strings.Contains(strings.ToLower(message), strings.ToLower(p)) && + rand.Intn(2) == 1 { + rand.Seed(time.Now().UnixNano()) + return t.Domain.Answers[rand.Intn(len(t.Domain.Answers))] + } + } + } + return "" +} + func MessageHandler(s *discordgo.Session, m *discordgo.MessageCreate) { for alias, _ := range CommandRegister { if strings.HasPrefix(m.Content, alias) { @@ -78,16 +92,9 @@ func MessageTalkback(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Author.ID == s.State.User.ID { return } - for _, t := range ConfigRegister.Talkback { - for _, p := range t.Domain.Patterns { - rand.Seed(time.Now().UnixNano()) - if strings.Contains(strings.ToLower(m.Content), strings.ToLower(p)) && - rand.Intn(2) == 1 { - rand.Seed(time.Now().UnixNano()) - answer := t.Domain.Answers[rand.Intn(len(t.Domain.Answers))] - s.ChannelMessageSend(m.ChannelID, answer) - } - } + var answer string = getTalkbackMessage(m.Content) + if answer != "" { + s.ChannelMessageSend(m.ChannelID, answer) } }