1
0
mirror of synced 2025-02-21 21:09:39 +01:00

Fix release songs

This commit is contained in:
asesidaa 2022-08-20 16:11:51 +08:00
parent 3efbe35607
commit c460bdbd20
10 changed files with 73 additions and 63 deletions

View File

@ -4,5 +4,7 @@ public static class Constants
{ {
public const string DATE_TIME_FORMAT = "yyyyMMddHHmmss"; public const string DATE_TIME_FORMAT = "yyyyMMddHHmmss";
public static readonly byte[] ZeroArray = new byte[1000]; public const int MUSIC_ID_MAX = 1600;
public const int MUSIC_FLAG_BYTES = MUSIC_ID_MAX / 8 + 1;
} }

View File

@ -19,11 +19,12 @@ public class CrownsDataController : ControllerBase
logger.LogInformation("CrownsData request : {Request}", request.Stringify()); logger.LogInformation("CrownsData request : {Request}", request.Stringify());
var manager = MusicAttributeManager.Instance; var manager = MusicAttributeManager.Instance;
var crown = new byte[manager.Musics.Count*8];
var response = new CrownsDataResponse var response = new CrownsDataResponse
{ {
Result = 1, Result = 1,
CrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*4]), CrownFlg = GZipBytesUtil.GetGZipBytes(crown),
DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*4]) DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*8])
}; };
return Ok(response); return Ok(response);

View File

@ -21,9 +21,9 @@ public class GetScoreRankController : ControllerBase
var response = new GetScoreRankResponse var response = new GetScoreRankResponse
{ {
Result = 1, Result = 1,
IkiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 4]), IkiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 9]),
KiwamiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 4]), KiwamiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 9]),
MiyabiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 4]) MiyabiScoreRankFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count * 9])
}; };
return Ok(response); return Ok(response);

View File

@ -19,7 +19,9 @@ public class GetShopFolderController : ControllerBase
var response = new GetShopFolderResponse var response = new GetShopFolderResponse
{ {
Result = 1 Result = 1,
TokenId = 1,
VerupNo = 2
}; };
response.AryShopFolderDatas.Add(new GetShopFolderResponse.ShopFolderData response.AryShopFolderDatas.Add(new GetShopFolderResponse.ShopFolderData

View File

@ -25,7 +25,7 @@ public class GetTokenCountController : ControllerBase
response.AryTokenCountDatas.Add(new GetTokenCountResponse.TokenCountData response.AryTokenCountDatas.Add(new GetTokenCountResponse.TokenCountData
{ {
TokenCount = 10, TokenCount = 10,
TokenId = 1000 TokenId = 1
}); });
return Ok(response); return Ok(response);

View File

@ -1,4 +1,5 @@
using Swan.Extensions; using System.Collections;
using Swan.Extensions;
using TaikoLocalServer.Common; using TaikoLocalServer.Common;
using TaikoLocalServer.Utils; using TaikoLocalServer.Utils;
@ -22,16 +23,25 @@ public class InitialDataCheckController : ControllerBase
{ {
logger.LogInformation("InitialDataCheck request: {Request}", request.Stringify()); logger.LogInformation("InitialDataCheck request: {Request}", request.Stringify());
var enabledArray = new uint[] {1, 2, 7, 11, 14, 17}; var enabledArray = new byte[Constants.MUSIC_FLAG_BYTES];
var response = new InitialdatacheckResponse var response = new InitialdatacheckResponse
{ {
Result = 1, Result = 1,
IsDanplay = false, IsDanplay = false,
IsAibattle = false, IsAibattle = false,
IsClose = false, IsClose = false,
SongIntroductionEndDatetime = (DateTime.Now + TimeSpan.FromDays(999)).ToString(Constants.DATE_TIME_FORMAT), //SongIntroductionEndDatetime = (DateTime.Now + TimeSpan.FromDays(999)).ToString(Constants.DATE_TIME_FORMAT),
DefaultSongFlg = GZipBytesUtil.GetGZipBytes(enabledArray), DefaultSongFlg = enabledArray,
AryTelopDatas = AryShopFolderDatas =
{
new InitialdatacheckResponse.InformationData
{
InfoId = 1,
VerupNo = 2
}
},
/*AryTelopDatas =
{ {
new InitialdatacheckResponse.InformationData new InitialdatacheckResponse.InformationData
{ {
@ -47,14 +57,7 @@ public class InitialDataCheckController : ControllerBase
VerupNo = 1 VerupNo = 1
} }
}, },
AryShopFolderDatas =
{
new InitialdatacheckResponse.InformationData
{
InfoId = 1,
VerupNo = 1
}
},
AryDanOdaiDatas = AryDanOdaiDatas =
{ {
new InitialdatacheckResponse.InformationData new InitialdatacheckResponse.InformationData
@ -88,12 +91,13 @@ public class InitialDataCheckController : ControllerBase
VerupNo = 1 VerupNo = 1
} }
} }
};*/
/*response.AryMovieInfoes.Add(new InitialdatacheckResponse.MovieData
{
MovieId = 2,
EnableDays = 9999
});*/
}; };
/*response.AryMovieInfoes.Add(new InitialdatacheckResponse.MovieData
{
MovieId = 2,
EnableDays = 9999
});*/
return Ok(response); return Ok(response);
} }

View File

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Memory;
using TaikoLocalServer.Models; using TaikoLocalServer.Models;
using TaikoLocalServer.Utils; using TaikoLocalServer.Utils;
@ -9,7 +10,9 @@ namespace TaikoLocalServer.Controllers;
public class SelfBestController : ControllerBase public class SelfBestController : ControllerBase
{ {
private readonly ILogger<SelfBestController> logger; private readonly ILogger<SelfBestController> logger;
public SelfBestController(ILogger<SelfBestController> logger) {
public SelfBestController(ILogger<SelfBestController> logger)
{
this.logger = logger; this.logger = logger;
} }
@ -25,21 +28,8 @@ public class SelfBestController : ControllerBase
Level = request.Level Level = request.Level
}; };
if (request.ArySongNoes.Length == 1)
{
response.ArySelfbestScores.Add(new SelfBestResponse.SelfBestData
{
SongNo = request.ArySongNoes[0],
SelfBestScore = 0,
SelfBestScoreRate = 0,
UraBestScore = 0,
UraBestScoreRate = 0
});
return Ok(response);
}
var crashing = new HashSet<uint> { 2, 4, 47, 228, 232, 245, 255, 290, 385, 453, 464, 732, 772, 789, 790, 811, 824, 825, 837, 838, 840, 854, 861, 862, 877, 883, 885, 893, 894, 901 };
var manager = MusicAttributeManager.Instance; var manager = MusicAttributeManager.Instance;
/*foreach (var songNo in request.ArySongNoes) foreach (var songNo in request.ArySongNoes)
{ {
if (!manager.MusicAttributes.ContainsKey(songNo)) if (!manager.MusicAttributes.ContainsKey(songNo))
{ {
@ -47,23 +37,18 @@ public class SelfBestController : ControllerBase
continue; continue;
} }
if (crashing.Contains(songNo))
{
logger.LogWarning("Possible crashing song no!");
continue;
}
var selfBestData = new SelfBestResponse.SelfBestData var selfBestData = new SelfBestResponse.SelfBestData
{ {
SongNo = songNo,
SelfBestScore = 0, SelfBestScore = 0,
SelfBestScoreRate = 0, SelfBestScoreRate = 0,
SongNo = songNo,
UraBestScore = 0, UraBestScore = 0,
UraBestScoreRate = 0 UraBestScoreRate = 0
}; };
response.ArySelfbestScores.Add(selfBestData); response.ArySelfbestScores.Add(selfBestData);
}*/ }
response.ArySelfbestScores.Sort((data, otherData) => data.SongNo.CompareTo(otherData.SongNo)); response.ArySelfbestScores.Sort((data, otherData) => data.SongNo.CompareTo(otherData.SongNo));
return Ok(response); return Ok(response);
} }
} }

View File

@ -1,4 +1,7 @@
using TaikoLocalServer.Utils; using System.Collections;
using System.Runtime.InteropServices;
using TaikoLocalServer.Common;
using TaikoLocalServer.Utils;
namespace TaikoLocalServer.Controllers; namespace TaikoLocalServer.Controllers;
@ -18,17 +21,31 @@ public class UserDataController : ControllerBase
logger.LogInformation("UserData request : {Request}", request.Stringify()); logger.LogInformation("UserData request : {Request}", request.Stringify());
var musicAttributeManager = MusicAttributeManager.Instance; var musicAttributeManager = MusicAttributeManager.Instance;
var releaseSongArray = new byte[Constants.MUSIC_FLAG_BYTES];
var test = new BitArray(Constants.MUSIC_ID_MAX);
foreach (var music in musicAttributeManager.Musics)
{
test.Set((int)music, true);
}
test.Set(2, false);
test.CopyTo(releaseSongArray, 0);
var releaseSongArray = musicAttributeManager.Musics.ToArray(); var uraSongArray = new byte[Constants.MUSIC_FLAG_BYTES];
var uraSongArray = musicAttributeManager.MusicsWithUra.ToArray(); test.SetAll(false);
foreach (var music in musicAttributeManager.MusicsWithUra)
{
test.Set((int)music, true);
}
test.CopyTo(uraSongArray, 0);
var response = new UserDataResponse var response = new UserDataResponse
{ {
Result = 1, Result = 1,
ToneFlg = GZipBytesUtil.GetGZipBytes(new byte[1000]), ToneFlg = new byte[] {9},
TitleFlg = GZipBytesUtil.GetGZipBytes(new byte[1000]), // TitleFlg = GZipBytesUtil.GetGZipBytes(new byte[100]),
ReleaseSongFlg = GZipBytesUtil.GetGZipBytes(releaseSongArray), ReleaseSongFlg = releaseSongArray,
UraReleaseSongFlg = GZipBytesUtil.GetGZipBytes(uraSongArray), UraReleaseSongFlg = uraSongArray,
DefaultOptionSetting = new byte[] {0b10001001, 0b00000000}, DefaultOptionSetting = new byte[] {0b10001001, 0b00000000},
SongRecentCnt = 0, SongRecentCnt = 0,
IsVoiceOn = true, IsVoiceOn = true,

View File

@ -21,6 +21,7 @@ builder.Services.AddHttpLogging(options =>
options.LoggingFields = HttpLoggingFields.RequestPropertiesAndHeaders | options.LoggingFields = HttpLoggingFields.RequestPropertiesAndHeaders |
HttpLoggingFields.ResponsePropertiesAndHeaders; HttpLoggingFields.ResponsePropertiesAndHeaders;
}); });
builder.Services.AddMemoryCache();
var app = builder.Build(); var app = builder.Build();
app.UseForwardedHeaders(new ForwardedHeadersOptions app.UseForwardedHeaders(new ForwardedHeadersOptions

View File

@ -32,15 +32,13 @@ public class MusicAttributeManager
} }
MusicAttributes = result.ToDictionary(attribute => attribute.MusicId); MusicAttributes = result.ToDictionary(attribute => attribute.MusicId);
Musics = MusicAttributes Musics = MusicAttributes.Select(pair => pair.Key)
.Where(attribute => attribute.Value.HasUra) .ToList();
.Select(pair => pair.Key).ToList();
Musics.Sort(); Musics.Sort();
MusicsWithUra = MusicAttributes MusicsWithUra = MusicAttributes.Where(attribute => attribute.Value.HasUra)
.Where(attribute => attribute.Value.HasUra) .Select(pair => pair.Key)
.Select(pair => pair.Key) .ToList();
.ToList();
MusicsWithUra.Sort(); MusicsWithUra.Sort();
} }