the unobserve command is fully translatable, fix formatting, fix bug with 'unknown' tribe tag

This commit is contained in:
Dawid Wysokiński 2020-07-19 15:03:53 +02:00 committed by Kichiyaki
parent 5f00ceb412
commit 5aefeca895
4 changed files with 220 additions and 128 deletions

View File

@ -40,8 +40,9 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
if len(ctx.server.Groups) >= groupsPerServer {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "addGroup.groupLimitHasBeenReached",
DefaultMessage: message.FallbackMsg("addGroup.groupLimitHasBeenReached", "{{.Mention}} The group limit has been reached ({{.Total}}/{{.Limit}})."),
MessageID: "addGroup.groupLimitHasBeenReached",
DefaultMessage: message.FallbackMsg("addGroup.groupLimitHasBeenReached",
"{{.Mention}} The group limit has been reached ({{.Total}}/{{.Limit}})."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
"Total": len(ctx.server.Groups),
@ -59,8 +60,9 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
if err := s.cfg.GroupRepository.Store(context.Background(), group); err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError", "{{.Mention}} Internal server error occurred, please try again later."),
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError",
"{{.Mention}} Internal server error occurred, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -70,8 +72,9 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "addGroup.success",
DefaultMessage: message.FallbackMsg("addGroup.success", "{{.Mention}} A new group has been created (ID: {{.ID}})."),
MessageID: "addGroup.success",
DefaultMessage: message.FallbackMsg("addGroup.success",
"{{.Mention}} A new group has been created (ID: {{.ID}})."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
"ID": group.ID,
@ -90,8 +93,9 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
} else if argsLength < 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.deletegroup",
DefaultMessage: message.FallbackMsg("help.deletegroup", "**{{.Command}}** [group id from {{.GroupsCommand}}] - deletes an observation group."),
MessageID: "help.deletegroup",
DefaultMessage: message.FallbackMsg("help.deletegroup",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - deletes an observation group."),
TemplateData: map[string]interface{}{
"Command": DeleteGroupCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -104,8 +108,9 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "deleteGroup.invalidID",
DefaultMessage: message.FallbackMsg("deleteGroup.invalidID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "deleteGroup.invalidID",
DefaultMessage: message.FallbackMsg("deleteGroup.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -120,8 +125,9 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "deleteGroup.success",
DefaultMessage: message.FallbackMsg("deleteGroup.success", "{{.Mention}} The group has been deleted."),
MessageID: "deleteGroup.success",
DefaultMessage: message.FallbackMsg("deleteGroup.success",
"{{.Mention}} The group has been deleted."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -174,8 +180,9 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
} else if argsLength < 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.conqueredvillages",
DefaultMessage: message.FallbackMsg("help.conqueredvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - changes the channel on which notifications about conquered village will show. **IMPORTANT!** Call this command on the channel you want to display these notifications."),
MessageID: "help.conqueredvillages",
DefaultMessage: message.FallbackMsg("help.conqueredvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - changes the channel on which notifications about conquered village will show. **IMPORTANT!** Call this command on the channel you want to display these notifications."),
TemplateData: map[string]interface{}{
"Command": ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -188,8 +195,9 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "conqueredVillages.invalidID",
DefaultMessage: message.FallbackMsg("conqueredVillages.invalidID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "conqueredVillages.invalidID",
DefaultMessage: message.FallbackMsg("conqueredVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -204,8 +212,9 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
if err != nil || len(groups) == 0 {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "conqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("conqueredVillages.groupNotFound", "{{.Mention}} Group not found."),
MessageID: "conqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("conqueredVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -217,8 +226,9 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
go s.cfg.GroupRepository.Update(context.Background(), groups[0])
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "conqueredVillages.success",
DefaultMessage: message.FallbackMsg("conqueredVillages.success", "{{.Mention}} Channel changed successfully."),
MessageID: "conqueredVillages.success",
DefaultMessage: message.FallbackMsg("conqueredVillages.success",
"{{.Mention}} Channel changed successfully."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -237,8 +247,9 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
} else if argsLength < 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobserveconqueredvillages",
DefaultMessage: message.FallbackMsg("help.unobserveconqueredvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about conquered villages."),
MessageID: "help.unobserveconqueredvillages",
DefaultMessage: message.FallbackMsg("help.unobserveconqueredvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about conquered villages."),
TemplateData: map[string]interface{}{
"Command": UnObserveConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -251,8 +262,9 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveConqueredVillages.invalidID",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.invalidID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "unObserveConqueredVillages.invalidID",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -267,8 +279,9 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
if err != nil || len(groups) == 0 {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveConqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.groupNotFound", "{{.Mention}} Group not found."),
MessageID: "unObserveConqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -282,8 +295,9 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
}
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveConqueredVillages.success",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.success", "{{.Mention}} Notifications about conquered villages will no longer show up."),
MessageID: "unObserveConqueredVillages.success",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.success",
"{{.Mention}} Notifications about conquered villages will no longer show up."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -302,8 +316,9 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
} else if argsLength < 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.lostvillages",
DefaultMessage: message.FallbackMsg("help.lostvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. **IMPORTANT!** Call this command on the channel you want to display these notifications."),
MessageID: "help.lostvillages",
DefaultMessage: message.FallbackMsg("help.lostvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. **IMPORTANT!** Call this command on the channel you want to display these notifications."),
TemplateData: map[string]interface{}{
"Command": LostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -316,8 +331,9 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "lostVillages.invalidID",
DefaultMessage: message.FallbackMsg("lostVillages.invalidID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "lostVillages.invalidID",
DefaultMessage: message.FallbackMsg("lostVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -332,8 +348,9 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
if err != nil || len(groups) == 0 {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "lostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("lostVillages.groupNotFound", "{{.Mention}} Group not found."),
MessageID: "lostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("lostVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -346,8 +363,9 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "lostVillages.success",
DefaultMessage: message.FallbackMsg("lostVillages.success", "{{.Mention}} Channel changed successfully."),
MessageID: "lostVillages.success",
DefaultMessage: message.FallbackMsg("lostVillages.success",
"{{.Mention}} Channel changed successfully."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -366,8 +384,9 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
} else if argsLength < 1 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobservelostvillages",
DefaultMessage: message.FallbackMsg("help.unobservelostvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about lost villages."),
MessageID: "help.unobservelostvillages",
DefaultMessage: message.FallbackMsg("help.unobservelostvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about lost villages."),
TemplateData: map[string]interface{}{
"Command": UnObserveLostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -380,8 +399,9 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveLostVillages.invalidID",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.invalidID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "unObserveLostVillages.invalidID",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -396,8 +416,9 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
if err != nil || len(groups) == 0 {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveLostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.groupNotFound", "{{.Mention}} Group not found."),
MessageID: "unObserveLostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -412,8 +433,9 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveLostVillages.success",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.success", "{{.Mention}} Notifications about lost villages will no longer show up."),
MessageID: "unObserveLostVillages.success",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.success",
"{{.Mention}} Notifications about lost villages will no longer show up."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -432,8 +454,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
} else if argsLength < 3 {
s.SendMessage(m.ChannelID,
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.observe",
DefaultMessage: message.FallbackMsg("help.observe", "**{{.Command}}** [group id from {{.GroupsCommand}}] [server] [tribe id] - command adds a tribe to the observation group."),
MessageID: "help.observe",
DefaultMessage: message.FallbackMsg("help.observe",
"**{{.Command}}** [group id from {{.GroupsCommand}}] [server] [tribe id] - command adds a tribe to the observation group."),
TemplateData: map[string]interface{}{
"Command": ObserveCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -446,8 +469,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "observe.invalidGroupID",
DefaultMessage: message.FallbackMsg("observe.invalidGroupID", "{{.Mention}} The group ID must be a number greater than 0."),
MessageID: "observe.invalidGroupID",
DefaultMessage: message.FallbackMsg("observe.invalidGroupID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -459,8 +483,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
if err != nil || tribeID <= 0 {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "observe.invalidTribeID",
DefaultMessage: message.FallbackMsg("observe.invalidTribeID", "{{.Mention}} The tribe ID must be a number greater than 0."),
MessageID: "observe.invalidTribeID",
DefaultMessage: message.FallbackMsg("observe.invalidTribeID",
"{{.Mention}} The tribe ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -521,8 +546,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
if len(group.Observations) >= observationsPerGroup {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "observe.observationLimitHasBeenReached",
DefaultMessage: message.FallbackMsg("observe.observationLimitHasBeenReached", "{{.Mention}} The observation limit for this group has been reached ({{.Total}}/{{.Limit}})."),
MessageID: "observe.observationLimitHasBeenReached",
DefaultMessage: message.FallbackMsg("observe.observationLimitHasBeenReached",
"{{.Mention}} The observation limit for this group has been reached ({{.Total}}/{{.Limit}})."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
"Total": len(group.Observations),
@ -540,8 +566,9 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError", "{{.Mention}} Internal server error occurred, please try again later."),
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError",
"{{.Mention}} Internal server error occurred, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -558,7 +585,7 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
}))
}
func (s *Session) handleUnObserveCommand(m *discordgo.MessageCreate, args ...string) {
func (s *Session) handleUnObserveCommand(ctx commandCtx, m *discordgo.MessageCreate, args ...string) {
if has, err := s.memberHasPermission(m.GuildID, m.Author.ID, discordgo.PermissionAdministrator); err != nil || !has {
return
}
@ -569,30 +596,56 @@ func (s *Session) handleUnObserveCommand(m *discordgo.MessageCreate, args ...str
return
} else if argsLength < 2 {
s.SendMessage(m.ChannelID,
fmt.Sprintf(`%s %s [id grupy] [id obserwacji]`,
m.Author.Mention(),
UnObserveCommand.WithPrefix(s.cfg.CommandPrefix)))
m.Author.Mention()+" "+ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobserve",
DefaultMessage: message.FallbackMsg("help.unobserve",
"**{{.Command}}** [group id from {{.GroupsCommand}}] [id from {{.ObservationsCommand}}] - removes a tribe from the observation group."),
TemplateData: map[string]interface{}{
"Command": UnObserveCommand.WithPrefix(s.cfg.CommandPrefix),
"ObservationsCommand": ObservationsCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}))
return
}
groupID, err := strconv.Atoi(args[0])
if err != nil {
s.SendMessage(m.ChannelID,
fmt.Sprintf(`%s ID grupy powinno być liczbą całkowitą większą od 0.`,
m.Author.Mention()))
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserve.invalidGroupID",
DefaultMessage: message.FallbackMsg("unObserve.invalidGroupID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
}))
return
}
observationID, err := strconv.Atoi(args[1])
if err != nil {
s.SendMessage(m.ChannelID,
fmt.Sprintf(`%s ID obserwacji powinno być liczbą całkowitą większą od 0.`,
m.Author.Mention()))
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserve.invalidTribeID",
DefaultMessage: message.FallbackMsg("unObserve.invalidTribeID",
"{{.Mention}} The tribe ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
}))
return
}
group, err := s.cfg.GroupRepository.GetByID(context.Background(), groupID)
if err != nil || group.ServerID != m.GuildID {
s.SendMessage(m.ChannelID, m.Author.Mention()+` Nie znaleziono grupy.`)
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserve.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserve.groupNotFound", "{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
}))
return
}
@ -601,7 +654,13 @@ func (s *Session) handleUnObserveCommand(m *discordgo.MessageCreate, args ...str
ID: []int{observationID},
})
s.SendMessage(m.ChannelID, m.Author.Mention()+` Usunięto.`)
s.SendMessage(m.ChannelID, ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserve.success",
DefaultMessage: message.FallbackMsg("unObserve.success", "{{.Mention}} Deleted."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
}))
}
func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...string) {
@ -643,11 +702,9 @@ func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...
}
tribeIDsByServer := make(map[string][]int)
observationIndexByTribeID := make(map[int]int)
langTags := []shared_models.LanguageTag{}
for i, observation := range observations {
for _, observation := range observations {
tribeIDsByServer[observation.Server] = append(tribeIDsByServer[observation.Server], observation.TribeID)
observationIndexByTribeID[observation.TribeID] = i
currentLangTag := utils.LanguageTagFromWorldName(observation.Server)
unique := true
for _, langTag := range langTags {
@ -669,7 +726,12 @@ func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...
return
}
for _, tribe := range list.Items {
observations[observationIndexByTribeID[tribe.ID]].Tribe = tribe
for _, observation := range observations {
if observation.TribeID == tribe.ID && observation.Server == server {
observation.Tribe = tribe
break
}
}
}
}
langVersionList, err := s.cfg.API.LangVersions.Browse(&shared_models.LangVersionFilter{
@ -679,21 +741,22 @@ func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...
msg := &EmbedMessage{}
if len(observations) <= 0 {
msg.Append("Brak")
}
for i, observation := range observations {
tag := "Unknown"
if observation.Tribe != nil {
tag = observation.Tribe.Tag
} else {
for i, observation := range observations {
tag := "Unknown"
if observation.Tribe != nil {
tag = observation.Tribe.Tag
}
lv := utils.FindLangVersionByTag(langVersionList.Items, utils.LanguageTagFromWorldName(observation.Server))
tribeURL := ""
if lv != nil {
tribeURL = utils.FormatTribeURL(observation.Server, lv.Host, observation.TribeID)
}
msg.Append(fmt.Sprintf("**%d** | %d - %s - [``%s``](%s)\n", i+1, observation.ID,
observation.Server,
tag,
tribeURL))
}
lv := utils.FindLangVersionByTag(langVersionList.Items, utils.LanguageTagFromWorldName(observation.Server))
tribeURL := ""
if lv != nil {
tribeURL = utils.FormatTribeURL(observation.Server, lv.Host, observation.TribeID)
}
msg.Append(fmt.Sprintf("**%d** | %d - %s - [``%s``](%s)\n", i+1, observation.ID,
observation.Server,
tag,
tribeURL))
}
s.SendEmbed(m.ChannelID, NewEmbed().
SetTitle("Lista obserwowanych plemion\nIndeks | ID - Serwer - Plemię").

View File

@ -120,7 +120,7 @@ func (s *Session) handleNewMessage(_ *discordgo.Session, m *discordgo.MessageCre
case ObserveCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleObserveCommand(ctx, m, args...)
case UnObserveCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleUnObserveCommand(m, args...)
s.handleUnObserveCommand(ctx, m, args...)
case ObservationsCommand.WithPrefix(s.cfg.CommandPrefix):
s.handleObservationsCommand(m, args...)
case ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix):

View File

@ -37,43 +37,49 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
- %s
`,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.tribe.topatt",
DefaultMessage: message.FallbackMsg("help.tribe.topatt", "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODA."),
MessageID: "help.tribe.topatt",
DefaultMessage: message.FallbackMsg("help.tribe.topatt",
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODA."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopAttCommand.String(),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.tribe.topdef",
DefaultMessage: message.FallbackMsg("help.tribe.topdef", "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODD."),
MessageID: "help.tribe.topdef",
DefaultMessage: message.FallbackMsg("help.tribe.topdef",
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODD."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopDefCommand.String(),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.tribe.topsupp",
DefaultMessage: message.FallbackMsg("help.tribe.topsupp", "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODS."),
MessageID: "help.tribe.topsupp",
DefaultMessage: message.FallbackMsg("help.tribe.topsupp",
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODS."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopSuppCommand.String(),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.tribe.toptotal",
DefaultMessage: message.FallbackMsg("help.tribe.toptotal", "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by OD."),
MessageID: "help.tribe.toptotal",
DefaultMessage: message.FallbackMsg("help.tribe.toptotal",
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by OD."),
TemplateData: map[string]interface{}{
"Command": tribeCMDWithPrefix + " " + TopTotalCommand.String(),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.tribe.toppoints",
DefaultMessage: message.FallbackMsg("help.tribe.toppoints", "**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by points."),
MessageID: "help.tribe.toppoints",
DefaultMessage: message.FallbackMsg("help.tribe.toppoints",
"**{{.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(),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.author",
DefaultMessage: message.FallbackMsg("help.author", "**{{.Command}}** - shows how to contact the author."),
MessageID: "help.author",
DefaultMessage: message.FallbackMsg("help.author",
"**{{.Command}}** - shows how to contact the author."),
TemplateData: map[string]interface{}{
"Command": AuthorCommand.WithPrefix(s.cfg.CommandPrefix),
},
@ -92,54 +98,61 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
- %s
`,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.addgroup",
DefaultMessage: message.FallbackMsg("help.addgroup", "**{{.Command}}** - adds a new observation group."),
MessageID: "help.addgroup",
DefaultMessage: message.FallbackMsg("help.addgroup",
"**{{.Command}}** - adds a new observation group."),
TemplateData: map[string]interface{}{
"Command": AddGroupCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.groups",
DefaultMessage: message.FallbackMsg("help.groups", "**{{.Command}}** - shows you a list of groups created by this guild."),
MessageID: "help.groups",
DefaultMessage: message.FallbackMsg("help.groups",
"**{{.Command}}** - shows you a list of groups created by this guild."),
TemplateData: map[string]interface{}{
"Command": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.deletegroup",
DefaultMessage: message.FallbackMsg("help.deletegroup", "**{{.Command}}** [group id from {{.GroupsCommand}}] - deletes an observation group."),
MessageID: "help.deletegroup",
DefaultMessage: message.FallbackMsg("help.deletegroup",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - deletes an observation group."),
TemplateData: map[string]interface{}{
"Command": DeleteGroupCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.showennobledbarbs",
DefaultMessage: message.FallbackMsg("help.showennobledbarbs", "**{{.Command}}** [group id from {{.GroupsCommand}}] - enables/disables notifications about ennobling barbarian villages."),
MessageID: "help.showennobledbarbs",
DefaultMessage: message.FallbackMsg("help.showennobledbarbs",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - enables/disables notifications about ennobling barbarian villages."),
TemplateData: map[string]interface{}{
"Command": ShowEnnobledBarbariansCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.observe",
DefaultMessage: message.FallbackMsg("help.observe", "**{{.Command}}** [group id from {{.GroupsCommand}}] [server] [tribe id] - command adds a tribe to the observation group."),
MessageID: "help.observe",
DefaultMessage: message.FallbackMsg("help.observe",
"**{{.Command}}** [group id from {{.GroupsCommand}}] [server] [tribe id] - command adds a tribe to the observation group."),
TemplateData: map[string]interface{}{
"Command": ObserveCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.observations",
DefaultMessage: message.FallbackMsg("help.observations", "**{{.Command}}** [group id from {{.GroupsCommand}}] shows a list of observed tribes by this group."),
MessageID: "help.observations",
DefaultMessage: message.FallbackMsg("help.observations",
"**{{.Command}}** [group id from {{.GroupsCommand}}] shows a list of observed tribes by this group."),
TemplateData: map[string]interface{}{
"Command": ObservationsCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobserve",
DefaultMessage: message.FallbackMsg("help.unobserve", "**{{.Command}}** [group id from {{.GroupsCommand}}] [id from {{.ObservationsCommand}}] - removes a tribe to the observation group."),
MessageID: "help.unobserve",
DefaultMessage: message.FallbackMsg("help.unobserve",
"**{{.Command}}** [group id from {{.GroupsCommand}}] [id from {{.ObservationsCommand}}] - removes a tribe from the observation group."),
TemplateData: map[string]interface{}{
"Command": UnObserveCommand.WithPrefix(s.cfg.CommandPrefix),
"ObservationsCommand": ObservationsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -147,16 +160,18 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.conqueredvillages",
DefaultMessage: message.FallbackMsg("help.conqueredvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - changes the channel on which notifications about conquered village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
MessageID: "help.conqueredvillages",
DefaultMessage: message.FallbackMsg("help.conqueredvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - changes the channel on which notifications about conquered village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
TemplateData: map[string]interface{}{
"Command": ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobserveconqueredvillages",
DefaultMessage: message.FallbackMsg("help.unobserveconqueredvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about conquered villages."),
MessageID: "help.unobserveconqueredvillages",
DefaultMessage: message.FallbackMsg("help.unobserveconqueredvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about conquered villages."),
TemplateData: map[string]interface{}{
"Command": UnObserveConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -169,16 +184,18 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
- %s
`,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.lostvillages",
DefaultMessage: message.FallbackMsg("help.lostvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
MessageID: "help.lostvillages",
DefaultMessage: message.FallbackMsg("help.lostvillages",
"**{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
TemplateData: map[string]interface{}{
"Command": LostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobservelostvillages",
DefaultMessage: message.FallbackMsg("help.unobservelostvillages", "*{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
MessageID: "help.unobservelostvillages",
DefaultMessage: message.FallbackMsg("help.unobservelostvillages",
"*{{.Command}}** [group id from {{.GroupsCommand}}] changes the channel on which notifications about lost village will show. IMPORTANT! Call this command on the channel you want to display these notifications."),
TemplateData: map[string]interface{}{
"Command": UnObserveLostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
"GroupsCommand": GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
@ -214,7 +231,9 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}
func (s *Session) handleAuthorCommand(m *discordgo.MessageCreate) {
s.SendMessage(m.ChannelID, fmt.Sprintf("%s Discord: Kichiyaki#2064 | https://dawid-wysokinski.pl/#contact.", m.Author.Mention()))
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) {
@ -310,8 +329,9 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
if err != nil {
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "api.defaultError",
DefaultMessage: message.FallbackMsg("api.defaultError", "{{.Mention}} There was an error fetching data from the API, please try again later."),
MessageID: "api.defaultError",
DefaultMessage: message.FallbackMsg("api.defaultError",
"{{.Mention}} There was an error fetching data from the API, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -320,8 +340,9 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
}
if playersList == nil || playersList.Total == 0 {
s.SendMessage(m.ChannelID, ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "tribe.tribesNotFound",
DefaultMessage: message.FallbackMsg("tribe.tribesNotFound", "{{.Mention}} There was an error fetching data from the API, please try again later."),
MessageID: "tribe.tribesNotFound",
DefaultMessage: message.FallbackMsg("tribe.tribesNotFound",
"{{.Mention}} There was an error fetching data from the API, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -331,8 +352,9 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
totalPages := int(math.Ceil(float64(playersList.Total) / float64(limit)))
if page > totalPages {
s.SendMessage(m.ChannelID, ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "tribe.exceededMaximumNumberOfPages",
DefaultMessage: message.FallbackMsg("tribe.exceededMaximumNumberOfPages", "{{.Mention}} You have exceeded the maximum number of pages ({{.Page}}/{{.MaxPage}})."),
MessageID: "tribe.exceededMaximumNumberOfPages",
DefaultMessage: message.FallbackMsg("tribe.exceededMaximumNumberOfPages",
"{{.Mention}} You have exceeded the maximum number of pages ({{.Page}}/{{.MaxPage}})."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
"Page": page,
@ -346,8 +368,9 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
langVersion, err := s.cfg.API.LangVersions.Read(langTag)
if err != nil || langVersion == nil {
s.SendMessage(m.ChannelID, ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError", "{{.Mention}} Internal server error occurred, please try again later."),
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError",
"{{.Mention}} Internal server error occurred, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -389,8 +412,9 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
}
msg.Append(ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "tribe.messageLine",
DefaultMessage: message.FallbackMsg("tribe.messageLine", "**{{.Index}}**. [``{{.PlayerName}}``]({{.PlayerURL}}) (Tribe: [``{{.TribeTag}}``]({{.TribeURL}}) | Rank: **{{.Rank}}** | Score: **{{.Score}}**)\n"),
MessageID: "tribe.messageLine",
DefaultMessage: message.FallbackMsg("tribe.messageLine",
"**{{.Index}}**. [``{{.PlayerName}}``]({{.PlayerURL}}) (Tribe: [``{{.TribeTag}}``]({{.TribeURL}}) | Rank: **{{.Rank}}** | Score: **{{.Score}}**)\n"),
TemplateData: map[string]interface{}{
"Index": offset + i + 1,
"PlayerName": player.Name,

View File

@ -67,6 +67,11 @@
"observe.observationLimitHasBeenReached": "{{.Mention}} The observation limit for this group has been reached ({{.Total}}/{{.Limit}}).",
"observe.success": "{{.Mention}} Added.",
"unObserve.invalidGroupID": "{{.Mention}} The group ID must be a number greater than 0.",
"unObserve.invalidObservationID": "{{.Mention}} The observation ID must be a number greater than 0.",
"unObserve.groupNotFound": "{{.Mention}} Group not found.",
"unObserve.success": "{{.Mention}} Deleted.",
"api.defaultError": "{{.Mention}} There was an error fetching data from the API, please try again later.",
"pagination.labelDisplayedPage": "Page: {{.Page}} from {{.MaxPage}}",