move hndlrChangeLanguage from observations.go to admin_commands.go

This commit is contained in:
Dawid Wysokiński 2021-07-18 10:02:13 +02:00
parent 9c71cb2ce9
commit 62c84e58c4
2 changed files with 76 additions and 64 deletions

76
discord/admin_commands.go Normal file
View File

@ -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(),
},
}))
}

View File

@ -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
}