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

@ -41,7 +41,8 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
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}})."),
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),
@ -60,7 +61,8 @@ func (s *Session) handleAddGroupCommand(ctx commandCtx, m *discordgo.MessageCrea
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError", "{{.Mention}} Internal server error occurred, please try again later."),
DefaultMessage: message.FallbackMsg("internalServerError",
"{{.Mention}} Internal server error occurred, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -71,7 +73,8 @@ 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}})."),
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,
@ -91,7 +94,8 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
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."),
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),
@ -105,7 +109,8 @@ func (s *Session) handleDeleteGroupCommand(ctx commandCtx, m *discordgo.MessageC
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."),
DefaultMessage: message.FallbackMsg("deleteGroup.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -121,7 +126,8 @@ 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."),
DefaultMessage: message.FallbackMsg("deleteGroup.success",
"{{.Mention}} The group has been deleted."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -175,7 +181,8 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
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."),
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),
@ -189,7 +196,8 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
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."),
DefaultMessage: message.FallbackMsg("conqueredVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -205,7 +213,8 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "conqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("conqueredVillages.groupNotFound", "{{.Mention}} Group not found."),
DefaultMessage: message.FallbackMsg("conqueredVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -218,7 +227,8 @@ func (s *Session) handleConqueredVillagesCommand(ctx commandCtx, m *discordgo.Me
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "conqueredVillages.success",
DefaultMessage: message.FallbackMsg("conqueredVillages.success", "{{.Mention}} Channel changed successfully."),
DefaultMessage: message.FallbackMsg("conqueredVillages.success",
"{{.Mention}} Channel changed successfully."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -238,7 +248,8 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
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."),
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),
@ -252,7 +263,8 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
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."),
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -268,7 +280,8 @@ func (s *Session) handleUnObserveConqueredVillagesCommand(ctx commandCtx, m *dis
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveConqueredVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.groupNotFound", "{{.Mention}} Group not found."),
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -283,7 +296,8 @@ 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."),
DefaultMessage: message.FallbackMsg("unObserveConqueredVillages.success",
"{{.Mention}} Notifications about conquered villages will no longer show up."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -303,7 +317,8 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
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."),
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),
@ -317,7 +332,8 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
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."),
DefaultMessage: message.FallbackMsg("lostVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -333,7 +349,8 @@ func (s *Session) handleLostVillagesCommand(ctx commandCtx, m *discordgo.Message
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "lostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("lostVillages.groupNotFound", "{{.Mention}} Group not found."),
DefaultMessage: message.FallbackMsg("lostVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -347,7 +364,8 @@ 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."),
DefaultMessage: message.FallbackMsg("lostVillages.success",
"{{.Mention}} Channel changed successfully."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -367,7 +385,8 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
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."),
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),
@ -381,7 +400,8 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
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."),
DefaultMessage: message.FallbackMsg("unObserveLostVillages.invalidID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -397,7 +417,8 @@ func (s *Session) handleUnObserveLostVillagesCommand(ctx commandCtx, m *discordg
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "unObserveLostVillages.groupNotFound",
DefaultMessage: message.FallbackMsg("unObserveLostVillages.groupNotFound", "{{.Mention}} Group not found."),
DefaultMessage: message.FallbackMsg("unObserveLostVillages.groupNotFound",
"{{.Mention}} Group not found."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -413,7 +434,8 @@ 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."),
DefaultMessage: message.FallbackMsg("unObserveLostVillages.success",
"{{.Mention}} Notifications about lost villages will no longer show up."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -433,7 +455,8 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
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."),
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),
@ -447,7 +470,8 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
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."),
DefaultMessage: message.FallbackMsg("observe.invalidGroupID",
"{{.Mention}} The group ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -460,7 +484,8 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
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."),
DefaultMessage: message.FallbackMsg("observe.invalidTribeID",
"{{.Mention}} The tribe ID must be a number greater than 0."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -522,7 +547,8 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
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}})."),
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),
@ -541,7 +567,8 @@ func (s *Session) handleObserveCommand(ctx commandCtx, m *discordgo.MessageCreat
s.SendMessage(m.ChannelID,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "internalServerError",
DefaultMessage: message.FallbackMsg("internalServerError", "{{.Mention}} Internal server error occurred, please try again later."),
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,7 +741,7 @@ func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...
msg := &EmbedMessage{}
if len(observations) <= 0 {
msg.Append("Brak")
}
} else {
for i, observation := range observations {
tag := "Unknown"
if observation.Tribe != nil {
@ -695,6 +757,7 @@ func (s *Session) handleObservationsCommand(m *discordgo.MessageCreate, args ...
tag,
tribeURL))
}
}
s.SendEmbed(m.ChannelID, NewEmbed().
SetTitle("Lista obserwowanych plemion\nIndeks | ID - Serwer - Plemię").
SetFields(msg.ToMessageEmbedFields()).

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

@ -38,42 +38,48 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
`,
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."),
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."),
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."),
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."),
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."),
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."),
DefaultMessage: message.FallbackMsg("help.author",
"**{{.Command}}** - shows how to contact the author."),
TemplateData: map[string]interface{}{
"Command": AuthorCommand.WithPrefix(s.cfg.CommandPrefix),
},
@ -93,21 +99,24 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
`,
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.addgroup",
DefaultMessage: message.FallbackMsg("help.addgroup", "**{{.Command}}** - adds a new observation group."),
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."),
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."),
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),
@ -115,7 +124,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
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."),
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),
@ -123,7 +133,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
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."),
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),
@ -131,7 +142,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
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."),
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),
@ -139,7 +151,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
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."),
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),
@ -148,7 +161,8 @@ 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."),
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),
@ -156,7 +170,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
MessageID: "help.unobserveconqueredvillages",
DefaultMessage: message.FallbackMsg("help.unobserveconqueredvillages", "**{{.Command}}** [group id from {{.GroupsCommand}}] - disable notifications about conquered villages."),
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),
@ -170,7 +185,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
`,
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."),
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),
@ -178,7 +194,8 @@ func (s *Session) handleHelpCommand(ctx commandCtx, m *discordgo.MessageCreate)
}),
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."),
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) {
@ -311,7 +330,8 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
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."),
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(),
},
@ -321,7 +341,8 @@ 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."),
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(),
},
@ -332,7 +353,8 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
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}})."),
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,
@ -347,7 +369,8 @@ func (s *Session) handleTribeCommand(ctx commandCtx, m *discordgo.MessageCreate,
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."),
DefaultMessage: message.FallbackMsg("internalServerError",
"{{.Mention}} Internal server error occurred, please try again later."),
TemplateData: map[string]interface{}{
"Mention": m.Author.Mention(),
},
@ -390,7 +413,8 @@ 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"),
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}}",