diff --git a/ProtobufViewUtil/Program.cs b/ProtobufViewUtil/Program.cs index 80de512..2f82cf1 100644 --- a/ProtobufViewUtil/Program.cs +++ b/ProtobufViewUtil/Program.cs @@ -10,8 +10,8 @@ namespace ProtobufViewUtil { Console.WriteLine("Hello, World!"); - ResGetMainQuestData s = new ResGetMainQuestData(); - var inn = File.ReadAllBytes(@"C:\Users\Misha\Downloads\getmainquestdata-stage01complete"); + ResGetTowerData s = new ResGetTowerData(); + var inn = File.ReadAllBytes(@"C:\Users\Misha\Downloads\gettowerdata"); s.MergeFrom(inn); Console.WriteLine(s.ToString()); var outt = s.ToByteArray(); diff --git a/nksrv/LobbyServer/Msgs/Archive/GetArchives.cs b/nksrv/LobbyServer/Msgs/Archive/GetArchives.cs new file mode 100644 index 0000000..3bf3fec --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Archive/GetArchives.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Archive +{ + [PacketPath("/archive/get")] + public class GetArchives : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetArchiveRecord(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Arena/GetArenaBanInfo.cs b/nksrv/LobbyServer/Msgs/Arena/GetArenaBanInfo.cs new file mode 100644 index 0000000..86bae97 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Arena/GetArenaBanInfo.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Arena +{ + [PacketPath("/arena/getbaninfo")] + public class GetArenaBanInfo : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetArenaBanInfo(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Auth/AuthLogout.cs b/nksrv/LobbyServer/Msgs/Auth/AuthLogout.cs index 2ad1c65..60f7cbe 100644 --- a/nksrv/LobbyServer/Msgs/Auth/AuthLogout.cs +++ b/nksrv/LobbyServer/Msgs/Auth/AuthLogout.cs @@ -16,7 +16,7 @@ namespace nksrv.LobbyServer.Msgs.Auth { var req = await ReadData(); - + JsonDb.Instance.GameClientTokens.Remove(UsedAuthToken); WriteData(new ResLogout()); } } diff --git a/nksrv/LobbyServer/Msgs/Campaign/CampaignPackageGetAll.cs b/nksrv/LobbyServer/Msgs/Campaign/CampaignPackageGetAll.cs new file mode 100644 index 0000000..d8bf267 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Campaign/CampaignPackageGetAll.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Campaign +{ + [PacketPath("/shutdownflags/campaignpackage/getall")] + public class CampaignPackageGetAll : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResCampaignPackageGetAllShutdownFlags(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Character/GetCharacterAttractiveList.cs b/nksrv/LobbyServer/Msgs/Character/GetCharacterAttractiveList.cs new file mode 100644 index 0000000..a34cd75 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Character/GetCharacterAttractiveList.cs @@ -0,0 +1,24 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Character +{ + [PacketPath("/character/attractive/get")] + public class GetCharacterAttractiveList : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetAttractiveList(); + response.CounselAvailableCount = 3; // TODO + + // TODO: Validate response from real server and pull info from user info + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Friend/GetFriends.cs b/nksrv/LobbyServer/Msgs/Friend/GetFriends.cs new file mode 100644 index 0000000..fed8201 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Friend/GetFriends.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Friend +{ + [PacketPath("/friend/get")] + public class GetFriends : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResGetFriendData(); + + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Minigame/GetNksv2Minigame.cs b/nksrv/LobbyServer/Msgs/Minigame/GetNksv2Minigame.cs new file mode 100644 index 0000000..5de5283 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Minigame/GetNksv2Minigame.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Minigame +{ + [PacketPath("/minigame/nksv2/get")] + public class GetNksv2Minigame : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetMiniGameNKSV2Data(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Misc/GachaGetAllShutdownFlags.cs b/nksrv/LobbyServer/Msgs/Misc/GachaGetAllShutdownFlags.cs new file mode 100644 index 0000000..dcbe0ac --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Misc/GachaGetAllShutdownFlags.cs @@ -0,0 +1,18 @@ +using nksrv.Utils; + +namespace nksrv.LobbyServer.Msgs.Misc +{ + [PacketPath("/shutdownflags/gacha/getall")] + public class GachaGetAllShutdownFlags : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGachaGetAllShutdownFlags(); + + // TODO: Validate response from real server and pull info from user info + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Mission/GetAchievementRewardedData.cs b/nksrv/LobbyServer/Msgs/Mission/GetAchievementRewardedData.cs new file mode 100644 index 0000000..b950ac1 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Mission/GetAchievementRewardedData.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Mission +{ + [PacketPath("/mission/getrewarded/achievement")] + public class GetAchievementRewardedData : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ReqGetAchievementRewardedData(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Outpost/GetDispatchList.cs b/nksrv/LobbyServer/Msgs/Outpost/GetDispatchList.cs new file mode 100644 index 0000000..ed4491d --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Outpost/GetDispatchList.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Outpost +{ + [PacketPath("/outpost/dispatch/get")] + public class GetDispatchList : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetDispatchList(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Ranking/UpdateServerReward.cs b/nksrv/LobbyServer/Msgs/Ranking/UpdateServerReward.cs new file mode 100644 index 0000000..e6ff6c2 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Ranking/UpdateServerReward.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Ranking +{ + [PacketPath("/ranking/updateserverreward")] + public class UpdateServerReward : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResUpdateRankingServerReward(); + + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/InApp/GetInAppSubscription.cs b/nksrv/LobbyServer/Msgs/Shop/InApp/GetInAppSubscription.cs new file mode 100644 index 0000000..3610c08 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/InApp/GetInAppSubscription.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Shop.InApp +{ + [PacketPath("/inappshop/getsubscription")] + public class GetInAppSubscription : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetSubscription(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/InApp/GetMarketingDetail.cs b/nksrv/LobbyServer/Msgs/Shop/InApp/GetMarketingDetail.cs new file mode 100644 index 0000000..33535cf --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/InApp/GetMarketingDetail.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Shop.InApp +{ + [PacketPath("/inappshop/jupiter/getmarketingdetail")] + public class GetMarketingDetail : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResGetJupiterMarketingDetail(); + response.MarketingDetail = "Do Not Buy Our Junk Today"; + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/InApp/GetMonthlySubscriptionReward.cs b/nksrv/LobbyServer/Msgs/Shop/InApp/GetMonthlySubscriptionReward.cs new file mode 100644 index 0000000..d7bf582 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/InApp/GetMonthlySubscriptionReward.cs @@ -0,0 +1,23 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Shop.InApp +{ + [PacketPath("/inappshop/getmonthlysubscriptionreward")] + public class GetMonthlySubscriptionReward : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetMonthlySubscriptionReward(); + + // TODO: Validate response from real server + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/InApp/GetSetupDataForCustomPackage.cs b/nksrv/LobbyServer/Msgs/Shop/InApp/GetSetupDataForCustomPackage.cs new file mode 100644 index 0000000..daa7369 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/InApp/GetSetupDataForCustomPackage.cs @@ -0,0 +1,23 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Shop.InApp +{ + [PacketPath("/inappshop/custompackage/getsetupdata")] + public class GetCharacterAttractiveList : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetCustomPackageSetupData(); + + // TODO: Validate response from real server and pull info from user info + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/PackageShop/GetPackagePopupState.cs b/nksrv/LobbyServer/Msgs/Shop/PackageShop/GetPackagePopupState.cs new file mode 100644 index 0000000..e8f3718 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/PackageShop/GetPackagePopupState.cs @@ -0,0 +1,16 @@ +using nksrv.Utils; + +namespace nksrv.LobbyServer.Msgs.Shop.PackageShop +{ + [PacketPath("/packageshop/getpopuppackagestate")] + public class GetPackagePopupState : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetPopupPackageState(); + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Shop/PackageShop/PackageShopGetCampaignPackage.cs b/nksrv/LobbyServer/Msgs/Shop/PackageShop/PackageShopGetCampaignPackage.cs new file mode 100644 index 0000000..67e908c --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Shop/PackageShop/PackageShopGetCampaignPackage.cs @@ -0,0 +1,23 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Shop.PackageShop +{ + [PacketPath("/packageshop/campaign/get")] + public class PackageShopGetCampaignPackage : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetCampaignPackage(); + + // TODO: Validate response from real server and pull info from user info + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Soloraid/GetSoloraidPeriod.cs b/nksrv/LobbyServer/Msgs/Soloraid/GetSoloraidPeriod.cs new file mode 100644 index 0000000..cb2da8b --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Soloraid/GetSoloraidPeriod.cs @@ -0,0 +1,26 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Soloraid +{ + [PacketPath("/soloraid/getperiod")] + public class GetSoloraidPeriod : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetSoloRaidPeriod(); + response.Period = new NetSoloRaidPeriodData + { + + }; + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Tower/GetTowerData.cs b/nksrv/LobbyServer/Msgs/Tower/GetTowerData.cs index a9db463..1c1a300 100644 --- a/nksrv/LobbyServer/Msgs/Tower/GetTowerData.cs +++ b/nksrv/LobbyServer/Msgs/Tower/GetTowerData.cs @@ -15,7 +15,27 @@ namespace nksrv.LobbyServer.Msgs.Tower var req = await ReadData(); var response = new ResGetTowerData(); - // TODO + + // TODO: Load remain count for these + var t0 = new NetTowerData() { Type = 1, RemainCount = 3 }; + var t1 = new NetTowerData() { Type = 2, RemainCount = 3 }; + var t2 = new NetTowerData() { Type = 3, RemainCount = 3 }; + var t3 = new NetTowerData() { Type = 4, RemainCount = 3 }; + var t4 = new NetTowerData() { Type = 5 }; + + // setup schedules + t0.Schedules.Add(new NetSchedule() { DayOfWeek = new() { DayOfWeeks = { 1, 4, 6 }, StartTime = 720000000000, Duration = 863990000000 } }); + t1.Schedules.Add(new NetSchedule() { DayOfWeek = new() { DayOfWeeks = { 2, 5, 6 }, StartTime = 720000000000, Duration = 863990000000 } }); + t2.Schedules.Add(new NetSchedule() { DayOfWeek = new() { DayOfWeeks = { 0, 3, 6 }, StartTime = 720000000000, Duration = 863990000000 } }); + t3.Schedules.Add(new NetSchedule() { DayOfWeek = new() { DayOfWeeks = { 2, 6 }, StartTime = 720000000000, Duration = 863990000000 } }); + t4.Schedules.Add(new NetSchedule() { AllTime = new() }); + + response.Data.Add(t0); + response.Data.Add(t1); + response.Data.Add(t2); + response.Data.Add(t3); + response.Data.Add(t4); + WriteData(response); } } diff --git a/nksrv/LobbyServer/Msgs/User/GetAllFeatureFlags.cs b/nksrv/LobbyServer/Msgs/User/GetAllFeatureFlags.cs new file mode 100644 index 0000000..08c08c3 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/User/GetAllFeatureFlags.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.User +{ + [PacketPath("/featureflags/all/get")] + public class GetAllFeatureFlags : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResGetAllFeatureFlags(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/User/GetProfileCardPossession.cs b/nksrv/LobbyServer/Msgs/User/GetProfileCardPossession.cs new file mode 100644 index 0000000..0ce3ed5 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/User/GetProfileCardPossession.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.User +{ + [PacketPath("/ProfileCard/Possession/Get")] + public class GetProfileCardPossession : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + + var response = new ResProfileCardObjectList(); + // TODO + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/User/GetProfileFrame.cs b/nksrv/LobbyServer/Msgs/User/GetProfileFrame.cs new file mode 100644 index 0000000..847d888 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/User/GetProfileFrame.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.User +{ + [PacketPath("/User/GetProfileFrame")] + public class GetProfileFrame : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResGetProfileFrame(); + + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/User/GetWallpaper.cs b/nksrv/LobbyServer/Msgs/User/GetWallpaper.cs new file mode 100644 index 0000000..110e8f5 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/User/GetWallpaper.cs @@ -0,0 +1,22 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.User +{ + [PacketPath("/User/GetWallpaper")] + public class GetWallpaper : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResGetWallpaper(); + + + WriteData(response); + } + } +} diff --git a/nksrv/LobbyServer/Msgs/Wallet/GetWallet.cs b/nksrv/LobbyServer/Msgs/Wallet/GetWallet.cs new file mode 100644 index 0000000..ea9fff0 --- /dev/null +++ b/nksrv/LobbyServer/Msgs/Wallet/GetWallet.cs @@ -0,0 +1,25 @@ +using nksrv.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace nksrv.LobbyServer.Msgs.Wallet +{ + [PacketPath("/wallet/get")] + public class GetWallet : LobbyMsgHandler + { + protected override async Task HandleAsync() + { + var req = await ReadData(); + var response = new ResGetCurrencyData(); + foreach (var item in req.Currencies) + { + Console.WriteLine("Request currency " + (CurrencyType)item); + } + + WriteData(response); + } + } +} diff --git a/nksrv/Protos/allmsgs.proto b/nksrv/Protos/allmsgs.proto index 852e5b4..2c227f5 100644 --- a/nksrv/Protos/allmsgs.proto +++ b/nksrv/Protos/allmsgs.proto @@ -1172,12 +1172,32 @@ message ResGetInAppShopData { repeated NetInAppShopBuyData buyDataList = 2; } +message NetOnlyOnceSchedule { + int64 startAt = 1; + int64 endAt = 2; +} +message NetDayOfWeekSchedule { + int64 startTime = 1; + int64 duration = 2; + repeated int32 dayOfWeeks = 3; +} + +message NetPeriodicSchedule { + int64 initialStartTime = 1; + int64 duration = 2; + int64 period = 3; +} + +message NetAllTimeSchedule { + +} + message NetSchedule { oneof ScheduleKindOneof { - int32 OnlyOnceFieldNumber = 1; - int32 DayOfWeekFieldNumber = 2; - int32 PeriodicFieldNumber = 4; - int32 AllTimeFieldNumber = 5; + NetOnlyOnceSchedule OnlyOnce = 1; + NetDayOfWeekSchedule DayOfWeek = 2; + NetPeriodicSchedule Periodic = 3; + NetAllTimeSchedule AllTime = 4; } } @@ -1215,4 +1235,283 @@ message NetUserSynchroData { message ReqGetSynchroData { NetUserSynchroData synchro = 2; +} + +message NetMonthlySubscriptionReward { + int32 tid = 1; + NetRewardData reward = 2; +} +message NetMonthlySubscriptionData { + int32 tid = 1; + int64 expiredAt = 2; +} + +message ReqGetMonthlySubscriptionReward {} +message ResGetMonthlySubscriptionReward { + repeated NetMonthlySubscriptionReward rewardList = 1; + repeated NetMonthlySubscriptionData dataList = 2; +} + +message ReqGetAttractiveList {} +message ResGetAttractiveList { + repeated NetUserAttractiveData attractives = 2; + int32 counselAvailableCount = 3; +} + +message NetCustomPackageSetupData { + int32 customPackageShopTid = 1; + repeated int32 slotList = 2; +} +message ReqGetCustomPackageSetupData { + int32 inAppShopId = 1; +} +message ResGetCustomPackageSetupData { + repeated NetCustomPackageSetupData dataList = 1; +} + +message ReqGachaGetAllShutdownFlags {} +message ResGachaGetAllShutdownFlags { + repeated int32 unavailables = 1; +} + +message ReqGetAchievementRewardedData {} +message ResGetAchievementRewardedData { + repeated int32 ids = 2; +} + +enum NetFeatureKind { + SimulationRoom = 0; + CooperationEvent = 1; + DailyEvent = 2; + Intercept = 3; + Attendance = 4; + Dice = 5; + UnionRaid_2 = 6; + StoryDungeonEvent = 7; + Tower = 8; + LostSector_2 = 9; + RookieArena = 10; + SpecialArena = 11; + Subscription_2 = 13; + ArchiveEventSystem = 14; + ViewShortCut = 1000; + PollEvent = 1001; + ComeBackUserEvent = 1002; + EventPass = 1003; + FieldHubEvent = 1004; + ShopEvent = 1005; + MissionEvent = 1006; + ChargeGachaEvent = 1007; + MiniGameSortOut = 1008; + CharacterSkillResetEvent = 1009; + EventQuest = 1010; + RewardUpEvent = 1011; + SdbattleEvent = 1012; + TextAdventure = 1013; + ChallengeModeEvent = 1014; + DailyFreeGachaEvent = 1015; + BoxGachaEvent = 1016; + DiceEvent = 1017; + Bbqtycoon = 1018; + Ce002MiniGame = 1019; + SoloRaid = 1020; +} + +message NetFeatureFlag{ + NetFeatureKind featureKind = 1; + bool isOpen = 2; +} + +message ReqGetAllFeatureFlags {} +message ResGetAllFeatureFlags { + repeated NetFeatureFlag flags = 1; +} + +message ReqCampaignPackageGetAllShutdownFlags { + +} +message ResCampaignPackageGetAllShutdownFlags { + repeated int32 unavailablePackageGroupIds = 1; +} + +message NetSoloRaidPeriodData { + int64 visibleDate = 1; + int64 startDate = 2; + int64 endDate = 3; + int64 disableDate = 4; + int64 settleDate_ = 5; +} + +message ReqGetSoloRaidPeriod {} +message ResGetSoloRaidPeriod { + NetSoloRaidPeriodData period = 1; +} + +message ReqGetArchiveRecord { + +} +message ResGetArchiveRecord { + repeated int32 archiveRecordList = 1; + repeated int32 unlockedArchiveRecordList = 2; +} + +message NetArenaBanInfo { + string description = 1; + google.protobuf.Timestamp startAt = 2; + google.protobuf.Timestamp endAt = 3; +} + +message ReqGetArenaBanInfo {} +message ResGetArenaBanInfo { + NetArenaBanInfo rookieArenaBanInfo = 1; + NetArenaBanInfo specialArenaBanInfo = 2; +} + +message ReqProfileCardObjectList {} +message ResProfileCardObjectList { + repeated int32 backgroundIds = 1; + repeated int32 stickerIds = 2; +} + +message ReqGetMiniGameNKSV2Data { + int32 nKSId = 1; +} + +message NetMiniGameNKSV2MissionProgress { + int64 seq = 1; + int32 nKSMissionId = 2; + int32 progress = 3; + google.protobuf.Timestamp createdAt = 4; + google.protobuf.Timestamp receivedAt = 5; +} +message ResGetMiniGameNKSV2Data { + string progressJson = 1; + repeated NetMiniGameNKSV2MissionProgress missionProgressList = 2; +} + +message NetSelectableDispatchData { + int32 dispatchGroupId = 1; + int32 selectTid = 2; + int32 selectSlotId = 3; + bool isRun = 4; + int64 startAt = 5; + int64 endAt = 6; +} + +message ReqGetDispatchList { + +} + +message ResGetDispatchList { + int32 dispatchResetCount = 2; + repeated NetUserDispatchData dispatchList = 3; + repeated NetSelectableDispatchData selectableDispatchList = 4; +} + +message ReqGetSubscription { + +} + +message NetSubscriptionData { + int32 tid = 1; + google.protobuf.Timestamp beginAt = 2; + google.protobuf.Timestamp endAt = 3; +} + +message ResGetSubscription { + repeated NetSubscriptionData activeSubscriptionList = 1; + bool hasSubscriptionHistory = 2; +} + +message NetCampaignPackageReward { + int32 packageShopId = 1; + int32 packageGroupTableId = 2; +} + +message ReqGetCampaignPackage {} +message ResGetCampaignPackage { + repeated NetCampaignPackageReward alreadyRewards = 1; +} + +message NetPopupPackageState{ + int32 tid = 1; + bool isAppear = 2; + google.protobuf.Timestamp expiredAt = 3; + int32 groupId = 4; + bool isPurchased = 6; + int32 gradeUp = 7; +} + +message ReqGetPopupPackageState {} +message ResGetPopupPackageState{ + repeated NetPopupPackageState dataList = 1; + repeated int32 appearedList = 2; +} + +message ReqUpdateRankingServerReward {} +message ResUpdateRankingServerReward { + bool hasNewReward = 1; +} + +message ReqGetProfileFrame {} +message ResGetProfileFrame { + repeated int32 frames = 2; +} + +message NetWholeUserData { + int64 usn = 1; + int32 server = 2; + string nickname = 3; + int32 lv = 4; + int32 icon = 5; + bool iconPrism = 6; + int32 frame = 7; + int32 teamCombat = 8; + int64 lastActionAt = 9; + string guildName = 10; + bool isBot = 11; + int32 groupId = 12; +} + +message NetUserFriendData { + int32 state = 1; + int32 type = 2; + NetWholeUserData user = 3; + bool isSend = 4; + int32 receiveState = 5; +} + +message ReqGetFriendData {} +message ResGetFriendData { + int32 sendFriendshipCount = 2; + int32 receiveFriendshipCount = 3; + repeated NetUserFriendData friends = 4; + repeated NetUserFriendData blocked = 5; +} + + +message NetWallpaperData { + int32 order = 1; + int32 type = 2; + int32 id = 3; +} + +message ReqGetWallpaper {} +message ResGetWallpaper { + repeated NetWallpaperData wallpaperList = 2; +} + +message ReqGetCurrencyData { + repeated int32 currencies = 2; +} +message ResGetCurrencyData { + repeated NetUserCurrencyData currency = 2; +} + +message ReqGetJupiterMarketingDetail { + string language = 1; +} + +message ResGetJupiterMarketingDetail { + string marketingDetail = 1; } \ No newline at end of file diff --git a/nksrv/Utils/GreatLogger.cs b/nksrv/Utils/GreatLogger.cs index 2ecf448..7f68b2e 100644 --- a/nksrv/Utils/GreatLogger.cs +++ b/nksrv/Utils/GreatLogger.cs @@ -15,12 +15,9 @@ namespace nksrv.Utils { } - + static object lockObject = new object(); public void Log(LogMessageReceivedEventArgs logEvent) { - var fg = Console.ForegroundColor; - Console.ForegroundColor = GetColorForMsg(logEvent); - var msg = logEvent.Message; if (msg.StartsWith("[")) { @@ -28,12 +25,21 @@ namespace nksrv.Utils } // ignore telemtry server errors - if (!msg.StartsWith("POST /v2/dr/getsid: \"404 Not Found\"")) + if (msg.StartsWith("POST /v2/dr/")) { - Console.WriteLine(msg); + return; + } + + var newFG = GetColorForMsg(logEvent); + + lock (lockObject) + { + var oldFG = Console.ForegroundColor; + Console.ForegroundColor = newFG; + Console.WriteLine(msg); + Console.ForegroundColor = oldFG; } - Console.ForegroundColor = fg; } private ConsoleColor GetColorForMsg(LogMessageReceivedEventArgs logEvent)