From 414757188e1ea9f74eeffb547f8b4f5544f371cf Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Sun, 24 Jan 2021 01:05:16 -0900 Subject: [PATCH] remove duplicate prefixes --- internal/exts/guild/guild.go | 4 ++++ internal/utils/utils.go | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/internal/exts/guild/guild.go b/internal/exts/guild/guild.go index ef2cb44..cd6fb52 100644 --- a/internal/exts/guild/guild.go +++ b/internal/exts/guild/guild.go @@ -8,6 +8,7 @@ import ( "github.com/dustinpianalto/geeksbot" "github.com/dustinpianalto/geeksbot/internal/discord_utils" "github.com/dustinpianalto/geeksbot/internal/services" + "github.com/dustinpianalto/geeksbot/internal/utils" ) var AddPrefixCommand = &disgoman.Command{ @@ -39,6 +40,7 @@ func addPrefixCommandFunc(ctx disgoman.Context, args []string) { } } else { guild.Prefixes = append(guild.Prefixes, args...) + guild.Prefixes = utils.RemoveDuplicateStrings(guild.Prefixes) guild, err = services.GuildService.UpdateGuild(guild) if err != nil { discord_utils.SendErrorMessage(ctx, "Error adding prefixes to guild.", err) @@ -92,6 +94,8 @@ func removePrefixCommandFunc(ctx disgoman.Context, args []string) { } } } + removed = utils.RemoveDuplicateStrings(removed) + guild.Prefixes = utils.RemoveDuplicateStrings(guild.Prefixes) guild, err = services.GuildService.UpdateGuild(guild) if err != nil { discord_utils.SendErrorMessage(ctx, "Error removing prefixes from guild.", err) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index d4b585b..8b8b330 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -1 +1,14 @@ package utils + +func RemoveDuplicateStrings(s []string) []string { + keys := make(map[string]bool) + o := []string{} + + for _, e := range s { + if _, v := keys[e]; !v { + keys[e] = true + o = append(o, e) + } + } + return o +}