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"
|
DisableLostVillagesCommand Command = "disablelostvillages"
|
||||||
ConqueredVillagesCommand Command = "conqueredvillages"
|
ConqueredVillagesCommand Command = "conqueredvillages"
|
||||||
DisableConqueredVillagesCommand Command = "disableconqueredvillages"
|
DisableConqueredVillagesCommand Command = "disableconqueredvillages"
|
||||||
ChangeLanguageCommand Command = "changelanguage"
|
|
||||||
ShowInternalsCommand Command = "showinternals"
|
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 {
|
type hndlrShowInternals struct {
|
||||||
*Session
|
*Session
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue