change the way discord message handlers are called

This commit is contained in:
Dawid Wysokiński 2020-10-17 10:27:58 +02:00
parent dc3dd073aa
commit 3a7248af58
6 changed files with 171 additions and 186 deletions

View File

@ -11,8 +11,8 @@ func (cmd Command) String() string {
return string(cmd)
}
func (cmd Command) WithPrefix(prefix string) string {
return prefix + cmd.String()
func (cmd Command) WithPrefix(prefix string) Command {
return Command(prefix + cmd.String())
}
type commandCtx struct {

View File

@ -20,11 +20,7 @@ const (
var coordsRegex = regexp.MustCompile(`(\d+)\|(\d+)`)
func (s *Session) handleCoordsTranslationCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleCoordsTranslationCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength != 1 {
s.SendMessage(m.ChannelID,
@ -67,11 +63,7 @@ func (s *Session) handleCoordsTranslationCommand(ctx commandCtx, m *discordgo.Me
}))
}
func (s *Session) handleDisableCoordsTranslationCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleDisableCoordsTranslationCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
ctx.server.CoordsTranslation = ""
go s.cfg.ServerRepository.Update(context.Background(), ctx.server)
@ -86,7 +78,7 @@ func (s *Session) handleDisableCoordsTranslationCommand(ctx commandCtx, m *disco
}))
}
func (s *Session) translateCoords(ctx commandCtx, m *discordgo.MessageCreate) {
func (s *Session) translateCoords(ctx *commandCtx, m *discordgo.MessageCreate) {
if ctx.server.CoordsTranslation == "" {
return
}

View File

@ -16,6 +16,23 @@ import (
"github.com/bwmarrin/discordgo"
)
type handler struct {
cmd Command
requireAdmPermissions bool
fn func(ctx *commandCtx, m *discordgo.MessageCreate, args ...string)
}
type handlers []*handler
func (hs handlers) find(cmd Command) *handler {
for _, h := range hs {
if h.cmd == cmd {
return h
}
}
return nil
}
type SessionConfig struct {
Token string
CommandPrefix string
@ -27,8 +44,9 @@ type SessionConfig struct {
}
type Session struct {
dg *discordgo.Session
cfg SessionConfig
dg *discordgo.Session
cfg SessionConfig
handlers handlers
}
func New(cfg SessionConfig) (*Session, error) {
@ -47,6 +65,96 @@ func New(cfg SessionConfig) (*Session, error) {
}
func (s *Session) init() error {
s.handlers = handlers{
&handler{
cmd: HelpCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleHelpCommand,
},
&handler{
cmd: AuthorCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleAuthorCommand,
},
&handler{
cmd: TribeCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleTribeCommand,
},
&handler{
cmd: ChangeLanguageCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleChangeLanguageCommand,
requireAdmPermissions: true,
},
&handler{
cmd: AddGroupCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleAddGroupCommand,
requireAdmPermissions: true,
},
&handler{
cmd: DeleteGroupCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleDeleteGroupCommand,
requireAdmPermissions: true,
},
&handler{
cmd: GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleGroupsCommand,
requireAdmPermissions: true,
},
&handler{
cmd: ObserveCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleObserveCommand,
requireAdmPermissions: true,
},
&handler{
cmd: DeleteObservationCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleDeleteObservationCommand,
requireAdmPermissions: true,
},
&handler{
cmd: ObservationsCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleObservationsCommand,
requireAdmPermissions: true,
},
&handler{
cmd: ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleConqueredVillagesCommand,
requireAdmPermissions: true,
},
&handler{
cmd: DisableConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleDisableConqueredVillagesCommand,
requireAdmPermissions: true,
},
&handler{
cmd: LostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleLostVillagesCommand,
requireAdmPermissions: true,
},
&handler{
cmd: DisableLostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleDisableLostVillagesCommand,
requireAdmPermissions: true,
},
&handler{
cmd: ShowEnnobledBarbariansCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleShowEnnobledBarbariansCommand,
requireAdmPermissions: true,
},
&handler{
cmd: ShowInternalsCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleShowInternalsCommand,
requireAdmPermissions: true,
},
&handler{
cmd: CoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleCoordsTranslationCommand,
requireAdmPermissions: true,
},
&handler{
cmd: DisableCoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix),
fn: s.handleDisableCoordsTranslationCommand,
requireAdmPermissions: true,
},
}
s.dg.AddHandler(s.handleNewMessage)
err := s.dg.Open()
@ -127,7 +235,7 @@ func (s *Session) IsGuildMember(guildID string) (bool, error) {
}
func (s *Session) handleNewMessage(_ *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.ID == s.dg.State.User.ID || m.Author.Bot || m.GuildID == "" {
if m.Author.ID == s.dg.State.User.ID || m.Author.Bot {
return
}
@ -138,58 +246,32 @@ func (s *Session) handleNewMessage(_ *discordgo.Session, m *discordgo.MessageCre
ID: m.GuildID,
Lang: message.GetDefaultLanguage().String(),
}
if err := s.cfg.ServerRepository.Store(context.Background(), server); err != nil {
return
if server.ID != "" {
if err := s.cfg.ServerRepository.Store(context.Background(), server); err != nil {
return
}
}
ctx := commandCtx{
ctx := &commandCtx{
server: server,
localizer: message.NewLocalizer(server.Lang),
}
switch splitted[0] {
case HelpCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleHelpCommand(ctx, m)
case AuthorCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleAuthorCommand(m)
case TribeCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleTribeCommand(ctx, m, args...)
case ChangeLanguageCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleChangeLanguageCommand(ctx, m, args...)
case AddGroupCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleAddGroupCommand(ctx, m)
case DeleteGroupCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleDeleteGroupCommand(ctx, m, args...)
case GroupsCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleGroupsCommand(ctx, m)
case ObserveCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleObserveCommand(ctx, m, args...)
case DeleteObservationCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleDeleteObservationCommand(ctx, m, args...)
case ObservationsCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleObservationsCommand(ctx, m, args...)
case ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleConqueredVillagesCommand(ctx, m, args...)
case DisableConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleDisableConqueredVillagesCommand(ctx, m, args...)
case LostVillagesCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleLostVillagesCommand(ctx, m, args...)
case DisableLostVillagesCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleDisableLostVillagesCommand(ctx, m, args...)
case ShowEnnobledBarbariansCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleShowEnnobledBarbariansCommand(ctx, m, args...)
case ShowInternalsCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleShowInternalsCommand(ctx, m, args...)
case CoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleCoordsTranslationCommand(ctx, m, args...)
case DisableCoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleDisableCoordsTranslationCommand(ctx, m, args...)
default:
s.translateCoords(ctx, m)
h := s.handlers.find(Command(splitted[0]))
if h != nil {
if h.requireAdmPermissions {
if m.GuildID == "" {
return
}
has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator)
if err != nil || !has {
return
}
}
h.fn(ctx, m, args...)
return
}
s.translateCoords(ctx, m)
}
func (s *Session) memberHasPermission(guildID string, userID string, permission int) (bool, error) {
@ -225,7 +307,3 @@ func (s *Session) memberHasPermission(guildID string, userID string, permission
return false, nil
}
func (s *Session) sendUnknownCommandError(mention, channelID string, command ...string) {
s.SendMessage(channelID, mention+` Unknown command: `+strings.Join(command, " "))
}

View File

@ -35,11 +35,7 @@ const (
ShowInternalsCommand Command = "showinternals"
)
func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCreate) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleAddGroupCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
if len(ctx.server.Groups) >= groupsPerServer {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -85,16 +81,9 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
}))
}
func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleDeleteGroupCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpDeleteGroup,
@ -138,11 +127,7 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
}))
}
func (s *Session) handleGroupsCommand(ctx commandCtx, m *discordgo.MessageCreate) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleGroupsCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
groups, _, err := s.cfg.GroupRepository.Fetch(context.Background(), &models.GroupFilter{
ServerID: []string{m.GuildID},
Order: []string{"id ASC"},
@ -183,16 +168,9 @@ func (s *Session) handleGroupsCommand(ctx commandCtx, m *discordgo.MessageCreate
MessageEmbed)
}
func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleConqueredVillagesCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpConqueredVillages,
@ -250,16 +228,9 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
}))
}
func (s *Session) handleDisableConqueredVillagesCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleDisableConqueredVillagesCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpDisableConqueredVillages,
@ -319,16 +290,9 @@ func (s *Session) handleDisableConqueredVillagesCommand(ctx commandCtx, m *disco
}))
}
func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleLostVillagesCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpLostVillages,
@ -388,16 +352,9 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
}))
}
func (s *Session) handleDisableLostVillagesCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleDisableLostVillagesCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpDisableLostVillages,
@ -458,16 +415,9 @@ func (s *Session) handleDisableLostVillagesCommand(ctx commandCtx, m *discordgo.
}))
}
func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleObserveCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 3 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[3:argsLength]...)
return
} else if argsLength < 3 {
if argsLength != 3 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpObserve,
@ -601,16 +551,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
}))
}
func (s *Session) handleDeleteObservationCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleDeleteObservationCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 2 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[2:argsLength]...)
return
} else if argsLength < 2 {
if argsLength != 2 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpDeleteObservation,
@ -679,16 +622,9 @@ func (s *Session) handleDeleteObservationCommand(ctx commandCtx, m *discordgo.Me
}))
}
func (s *Session) handleObservationsCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleObservationsCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpObservations,
@ -819,16 +755,9 @@ func (s *Session) handleObservationsCommand(ctx commandCtx, m *discordgo.Message
MessageEmbed)
}
func (s *Session) handleShowEnnobledBarbariansCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleShowEnnobledBarbariansCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpShowEnnobledBarbs,
@ -906,16 +835,9 @@ func (s *Session) handleShowEnnobledBarbariansCommand(ctx commandCtx, m *discord
}
}
func (s *Session) handleChangeLanguageCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleChangeLanguageCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpChangageLanguage,
@ -957,6 +879,7 @@ func (s *Session) handleChangeLanguageCommand(ctx commandCtx, m *discordgo.Messa
}))
return
}
ctx.localizer = message.NewLocalizer(lang)
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -969,16 +892,9 @@ func (s *Session) handleChangeLanguageCommand(ctx commandCtx, m *discordgo.Messa
}))
}
func (s *Session) handleShowInternalsCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
func (s *Session) handleShowInternalsCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength > 1 {
s.sendUnknownCommandError(m.Author.Mention(), m.ChannelID, args[1:argsLength]...)
return
} else if argsLength < 1 {
if argsLength != 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpShowInternals,

View File

@ -26,8 +26,7 @@ const (
AuthorCommand Command = "author"
)
func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate) {
tribeCMDWithPrefix := TribeCommand.WithPrefix(s.cfg.CommandPrefix)
func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
commandsForAll := fmt.Sprintf(`
- %s
- %s
@ -41,7 +40,7 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODA,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODA."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopODACommand.String(),
"Command": TribeCommand + " " + TopODACommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -49,7 +48,7 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODD,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODD."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopODDCommand.String(),
"Command": TribeCommand + " " + TopODDCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -57,7 +56,7 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODS,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODS."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopODSCommand.String(),
"Command": TribeCommand + " " + TopODSCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -65,7 +64,7 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
DefaultMessage: message.FallbackMsg(message.HelpTribeTopOD,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by OD."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopODCommand.String(),
"Command": TribeCommand + " " + TopODCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -73,7 +72,7 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
DefaultMessage: message.FallbackMsg(message.HelpTribeTopPoints,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by points."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopPointsCommand.String(),
"Command": TribeCommand + " " + TopPointsCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -258,20 +257,20 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
})).
AddField(ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: message.HelpForAllUsers,
DefaultMessage: message.FallbackMsg(message.HelpForAllUsers, "For all server members."),
DefaultMessage: message.FallbackMsg(message.HelpForAllUsers, "For everyone"),
}), commandsForAll).
AddField(forAdmins, commandsForGuildAdmins).
AddField(forAdmins+" 2", commandsForGuildAdmins2).
MessageEmbed)
}
func (s *Session) handleAuthorCommand(m *discordgo.MessageCreate) {
func (s *Session) handleAuthorCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
s.SendMessage(m.ChannelID,
fmt.Sprintf("%s Discord: Kichiyaki#2064 | https://dawid-wysokinski.pl/#contact.",
m.Author.Mention()))
}
func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
func (s *Session) handleTribeCommand(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
argsLength := len(args)
if argsLength < 3 {
return

View File

@ -2,7 +2,7 @@
"help.title": "Help",
"help.description": "Commands offered by the bot.",
"help.footer": "",
"help.forAllUsers": "For all members",
"help.forAllUsers": "For everyone",
"help.forAdmins": "For admins",
"help.tribe.topoda": "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODA.",
"help.tribe.topodd": "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODD.",