parent
580eea3dfa
commit
489d96594c
@ -0,0 +1,11 @@
|
||||
package discord_utils
|
||||
|
||||
import "github.com/dustinpianalto/disgoman"
|
||||
|
||||
func SendErrorMessage(ctx disgoman.Context, msg string, err error) {
|
||||
ctx.CommandManager.ErrorChannel <- disgoman.CommandError{
|
||||
Context: ctx,
|
||||
Message: msg,
|
||||
Error: err,
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,105 @@
|
||||
package guild
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/dustinpianalto/disgoman"
|
||||
"github.com/dustinpianalto/geeksbot"
|
||||
"github.com/dustinpianalto/geeksbot/internal/discord_utils"
|
||||
"github.com/dustinpianalto/geeksbot/internal/services"
|
||||
)
|
||||
|
||||
var AddPrefixCommand = &disgoman.Command{
|
||||
Name: "addPrefix",
|
||||
Aliases: []string{"ap"},
|
||||
Description: "Add a prefix for use in this guild.",
|
||||
OwnerOnly: false,
|
||||
Hidden: false,
|
||||
RequiredPermissions: disgoman.PermissionManageServer,
|
||||
Invoke: addPrefixCommandFunc,
|
||||
}
|
||||
|
||||
func addPrefixCommandFunc(ctx disgoman.Context, args []string) {
|
||||
if len(args) == 0 {
|
||||
discord_utils.SendErrorMessage(ctx, "Please include at least one prefix to add", nil)
|
||||
return
|
||||
}
|
||||
guild, err := services.GuildService.Guild(ctx.Guild.ID)
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Guild not configured, adding new guild to the database", nil)
|
||||
guild = geeksbot.Guild{
|
||||
ID: ctx.Guild.ID,
|
||||
Prefixes: args,
|
||||
}
|
||||
guild, err = services.GuildService.CreateGuild(guild)
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error adding guild to database.", err)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
guild.Prefixes = append(guild.Prefixes, args...)
|
||||
guild, err = services.GuildService.UpdateGuild(guild)
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error adding prefixes to guild.", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
_, err = ctx.Send(fmt.Sprintf("Prefixes Updates.\nThe Prefixes for this guild are currently %#v", guild.Prefixes))
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error sending update message", err)
|
||||
}
|
||||
}
|
||||
|
||||
var RemovePrefixCommand = &disgoman.Command{
|
||||
Name: "removePrefix",
|
||||
Aliases: []string{"rp"},
|
||||
Description: "Remove a prefix so it can't be used in this guild",
|
||||
OwnerOnly: false,
|
||||
Hidden: false,
|
||||
RequiredPermissions: disgoman.PermissionManageServer,
|
||||
Invoke: removePrefixCommandFunc,
|
||||
}
|
||||
|
||||
func removePrefixCommandFunc(ctx disgoman.Context, args []string) {
|
||||
if len(args) == 0 {
|
||||
discord_utils.SendErrorMessage(ctx, "Please include at least one prefix to remove", nil)
|
||||
return
|
||||
}
|
||||
guild, err := services.GuildService.Guild(ctx.Guild.ID)
|
||||
var removed []string
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Guild not configured, adding new guild to the database", nil)
|
||||
guild = geeksbot.Guild{
|
||||
ID: ctx.Guild.ID,
|
||||
Prefixes: []string{},
|
||||
}
|
||||
guild, err = services.GuildService.CreateGuild(guild)
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error adding guild to database.", err)
|
||||
return
|
||||
}
|
||||
} else {
|
||||
for _, a := range args {
|
||||
l := len(guild.Prefixes) - 1
|
||||
for i := 0; i < l; i++ {
|
||||
if a == guild.Prefixes[i] {
|
||||
guild.Prefixes = append(guild.Prefixes[:i], guild.Prefixes[i+1:]...)
|
||||
l--
|
||||
i--
|
||||
removed = append(removed, a)
|
||||
}
|
||||
}
|
||||
}
|
||||
guild, err = services.GuildService.UpdateGuild(guild)
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error removing prefixes from guild.", err)
|
||||
return
|
||||
}
|
||||
}
|
||||
_, err = ctx.Send(fmt.Sprintf("Prefixes Updates.\n"+
|
||||
"The Prefixes for this guild are currently %#v\n"+
|
||||
"Removed: %#v", guild.Prefixes, removed))
|
||||
if err != nil {
|
||||
discord_utils.SendErrorMessage(ctx, "Error sending update message", err)
|
||||
}
|
||||
}
|
||||
Loading…
Reference in new issue