Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
552664268b | ||
|
|
414757188e | ||
|
|
888d356b67 | ||
|
|
c776b25899 | ||
|
|
81f6e23487 |
@@ -72,7 +72,11 @@ func main() {
|
||||
}
|
||||
|
||||
func getPrefixes(guildID string) []string {
|
||||
return []string{"G.", "g."}
|
||||
guild, err := services.GuildService.Guild(guildID)
|
||||
if err != nil || len(guild.Prefixes) == 0 {
|
||||
return []string{"G$", "g$"}
|
||||
}
|
||||
return guild.Prefixes
|
||||
}
|
||||
|
||||
func ErrorHandler(ErrorChan chan disgoman.CommandError) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"log"
|
||||
|
||||
"github.com/dustinpianalto/geeksbot"
|
||||
"github.com/lib/pq"
|
||||
)
|
||||
|
||||
type guildService struct {
|
||||
@@ -15,7 +16,7 @@ func (s guildService) Guild(id string) (geeksbot.Guild, error) {
|
||||
var g geeksbot.Guild
|
||||
queryString := "SELECT id, new_patron_message, prefixes FROM guilds WHERE id = $1"
|
||||
row := s.db.QueryRow(queryString, id)
|
||||
err := row.Scan(&g.ID, &g.NewPatronMessage, &g.Prefixes)
|
||||
err := row.Scan(&g.ID, &g.NewPatronMessage, pq.Array(&g.Prefixes))
|
||||
if err != nil {
|
||||
return geeksbot.Guild{}, err
|
||||
}
|
||||
@@ -24,7 +25,7 @@ func (s guildService) Guild(id string) (geeksbot.Guild, error) {
|
||||
|
||||
func (s guildService) CreateGuild(g geeksbot.Guild) (geeksbot.Guild, error) {
|
||||
queryString := "INSERT INTO guilds (id, new_patron_message, prefixes) VALUES ($1, $2, $3)"
|
||||
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, g.Prefixes)
|
||||
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, pq.Array(g.Prefixes))
|
||||
return g, err
|
||||
}
|
||||
|
||||
@@ -36,7 +37,7 @@ func (s guildService) DeleteGuild(g geeksbot.Guild) error {
|
||||
|
||||
func (s guildService) UpdateGuild(g geeksbot.Guild) (geeksbot.Guild, error) {
|
||||
queryString := "UPDATE guilds SET new_patron_message = $2, prefixes = $3 WHERE id = $1"
|
||||
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, g.Prefixes)
|
||||
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, pq.Array(g.Prefixes))
|
||||
return g, err
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,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{
|
||||
@@ -38,6 +39,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)
|
||||
@@ -80,7 +82,7 @@ func removePrefixCommandFunc(ctx disgoman.Context, args []string) {
|
||||
}
|
||||
} else {
|
||||
for _, a := range args {
|
||||
l := len(guild.Prefixes) - 1
|
||||
l := len(guild.Prefixes)
|
||||
for i := 0; i < l; i++ {
|
||||
if a == guild.Prefixes[i] {
|
||||
guild.Prefixes = append(guild.Prefixes[:i], guild.Prefixes[i+1:]...)
|
||||
@@ -90,6 +92,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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user