Add authentication server, dev CLI, Docker multi-service setup, and cross-platform improvements

This commit is contained in:
Ilya Groshev
2026-04-21 16:49:44 +03:00
parent 43d6527b42
commit a3fbb1aeba
121 changed files with 4523 additions and 2888 deletions
+13 -12
View File
@@ -4,6 +4,7 @@ import (
"sort"
"lunar-tear/server/internal/store"
"lunar-tear/server/internal/utils"
)
func sortedQuestRecords(user store.UserState) []map[string]any {
@@ -60,15 +61,15 @@ func sortedQuestMissionRecords(user store.UserState) []map[string]any {
func init() {
register("IUserQuest", func(user store.UserState) string {
s, _ := encodeJSONMaps(sortedQuestRecords(user)...)
s, _ := utils.EncodeJSONMaps(sortedQuestRecords(user)...)
return s
})
register("IUserQuestMission", func(user store.UserState) string {
s, _ := encodeJSONMaps(sortedQuestMissionRecords(user)...)
s, _ := utils.EncodeJSONMaps(sortedQuestMissionRecords(user)...)
return s
})
register("IUserMainQuestFlowStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentQuestFlowType": user.MainQuest.CurrentQuestFlowType,
"latestVersion": user.MainQuest.LatestVersion,
@@ -76,7 +77,7 @@ func init() {
return s
})
register("IUserMainQuestMainFlowStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentMainQuestRouteId": user.MainQuest.CurrentMainQuestRouteId,
"currentQuestSceneId": user.MainQuest.CurrentQuestSceneId,
@@ -87,7 +88,7 @@ func init() {
return s
})
register("IUserMainQuestProgressStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentQuestSceneId": user.MainQuest.ProgressQuestSceneId,
"headQuestSceneId": user.MainQuest.ProgressHeadQuestSceneId,
@@ -97,7 +98,7 @@ func init() {
return s
})
register("IUserMainQuestSeasonRoute", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"mainQuestSeasonId": user.MainQuest.MainQuestSeasonId,
"mainQuestRouteId": user.MainQuest.CurrentMainQuestRouteId,
@@ -106,7 +107,7 @@ func init() {
return s
})
register("IUserEventQuestProgressStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentEventQuestChapterId": user.EventQuest.CurrentEventQuestChapterId,
"currentQuestId": user.EventQuest.CurrentQuestId,
@@ -117,7 +118,7 @@ func init() {
return s
})
register("IUserExtraQuestProgressStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentQuestId": user.ExtraQuest.CurrentQuestId,
"currentQuestSceneId": user.ExtraQuest.CurrentQuestSceneId,
@@ -127,7 +128,7 @@ func init() {
return s
})
register("IUserMainQuestReplayFlowStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentHeadQuestSceneId": user.MainQuest.ReplayFlowHeadQuestSceneId,
"currentQuestSceneId": user.MainQuest.ReplayFlowCurrentQuestSceneId,
@@ -136,7 +137,7 @@ func init() {
return s
})
register("IUserSideStoryQuestSceneProgressStatus", func(user store.UserState) string {
s, _ := encodeJSONMaps(map[string]any{
s, _ := utils.EncodeJSONMaps(map[string]any{
"userId": user.UserId,
"currentSideStoryQuestId": user.SideStoryActiveProgress.CurrentSideStoryQuestId,
"currentSideStoryQuestSceneId": user.SideStoryActiveProgress.CurrentSideStoryQuestSceneId,
@@ -164,7 +165,7 @@ func init() {
"latestVersion": progress.LatestVersion,
})
}
s, _ := encodeJSONMaps(records...)
s, _ := utils.EncodeJSONMaps(records...)
return s
})
register("IUserQuestLimitContentStatus", func(user store.UserState) string {
@@ -187,7 +188,7 @@ func init() {
"latestVersion": st.LatestVersion,
})
}
s, _ := encodeJSONMaps(records...)
s, _ := utils.EncodeJSONMaps(records...)
return s
})
registerStatic(