move hndlrChangeLanguage from observations.go to admin_commands.go
This commit is contained in:
parent
9c71cb2ce9
commit
62c84e58c4
|
@ -0,0 +1,76 @@
|
|||
package discord
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
|
||||
"github.com/tribalwarshelp/dcbot/message"
|
||||
)
|
||||
|
||||
const (
|
||||
ChangeLanguageCommand Command = "changelanguage"
|
||||
)
|
||||
|
||||
type hndlrChangeLanguage struct {
|
||||
*Session
|
||||
}
|
||||
|
||||
var _ commandHandler = &hndlrChangeLanguage{}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) cmd() Command {
|
||||
return ChangeLanguageCommand
|
||||
}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) requireAdmPermissions() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) execute(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
|
||||
argsLength := len(args)
|
||||
if argsLength != 1 {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.HelpChangageLanguage,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Command": hndlr.cmd().WithPrefix(hndlr.cfg.CommandPrefix),
|
||||
"Languages": getAvailableLanguages(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
lang := args[0]
|
||||
valid := isValidLanguageTag(lang)
|
||||
if !valid {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.ChangeLanguageLanguageNotSupported,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
ctx.server.Lang = lang
|
||||
if err := hndlr.cfg.ServerRepository.Update(context.Background(), ctx.server); err != nil {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.InternalServerError,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
ctx.localizer = message.NewLocalizer(lang)
|
||||
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.ChangeLanguageSuccess,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
}
|
|
@ -35,7 +35,6 @@ const (
|
|||
DisableLostVillagesCommand Command = "disablelostvillages"
|
||||
ConqueredVillagesCommand Command = "conqueredvillages"
|
||||
DisableConqueredVillagesCommand Command = "disableconqueredvillages"
|
||||
ChangeLanguageCommand Command = "changelanguage"
|
||||
ShowInternalsCommand Command = "showinternals"
|
||||
)
|
||||
|
||||
|
@ -901,69 +900,6 @@ func (hndlr *hndlrShowEnnobledBarbarians) execute(ctx *commandCtx, m *discordgo.
|
|||
}))
|
||||
}
|
||||
|
||||
type hndlrChangeLanguage struct {
|
||||
*Session
|
||||
}
|
||||
|
||||
var _ commandHandler = &hndlrChangeLanguage{}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) cmd() Command {
|
||||
return ChangeLanguageCommand
|
||||
}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) requireAdmPermissions() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (hndlr *hndlrChangeLanguage) execute(ctx *commandCtx, m *discordgo.MessageCreate, args ...string) {
|
||||
argsLength := len(args)
|
||||
if argsLength != 1 {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.HelpChangageLanguage,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Command": hndlr.cmd().WithPrefix(hndlr.cfg.CommandPrefix),
|
||||
"Languages": getAvailableLanguages(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
lang := args[0]
|
||||
valid := isValidLanguageTag(lang)
|
||||
if !valid {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.ChangeLanguageLanguageNotSupported,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
|
||||
ctx.server.Lang = lang
|
||||
if err := hndlr.cfg.ServerRepository.Update(context.Background(), ctx.server); err != nil {
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.InternalServerError,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
return
|
||||
}
|
||||
ctx.localizer = message.NewLocalizer(lang)
|
||||
|
||||
hndlr.SendMessage(m.ChannelID,
|
||||
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.ChangeLanguageSuccess,
|
||||
TemplateData: map[string]interface{}{
|
||||
"Mention": m.Author.Mention(),
|
||||
},
|
||||
}))
|
||||
}
|
||||
|
||||
type hndlrShowInternals struct {
|
||||
*Session
|
||||
}
|
||||
|
|
Reference in New Issue