1
0
mirror of synced 2025-02-21 04:56:33 +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 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());
var manager = MusicAttributeManager.Instance;
var crown = new byte[manager.Musics.Count*8];
var response = new CrownsDataResponse
{
Result = 1,
CrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*4]),
DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*4])
CrownFlg = GZipBytesUtil.GetGZipBytes(crown),
DondafulCrownFlg = GZipBytesUtil.GetGZipBytes(new byte[manager.Musics.Count*8])
};
return Ok(response);

View File

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

View File

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

View File

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

View File

@ -1,4 +1,5 @@
using Swan.Extensions;
using System.Collections;
using Swan.Extensions;
using TaikoLocalServer.Common;
using TaikoLocalServer.Utils;
@ -22,16 +23,25 @@ public class InitialDataCheckController : ControllerBase
{
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
{
Result = 1,
IsDanplay = false,
IsAibattle = false,
IsClose = false,
SongIntroductionEndDatetime = (DateTime.Now + TimeSpan.FromDays(999)).ToString(Constants.DATE_TIME_FORMAT),
DefaultSongFlg = GZipBytesUtil.GetGZipBytes(enabledArray),
AryTelopDatas =
//SongIntroductionEndDatetime = (DateTime.Now + TimeSpan.FromDays(999)).ToString(Constants.DATE_TIME_FORMAT),
DefaultSongFlg = enabledArray,
AryShopFolderDatas =
{
new InitialdatacheckResponse.InformationData
{
InfoId = 1,
VerupNo = 2
}
},
/*AryTelopDatas =
{
new InitialdatacheckResponse.InformationData
{
@ -47,14 +57,7 @@ public class InitialDataCheckController : ControllerBase
VerupNo = 1
}
},
AryShopFolderDatas =
{
new InitialdatacheckResponse.InformationData
{
InfoId = 1,
VerupNo = 1
}
},
AryDanOdaiDatas =
{
new InitialdatacheckResponse.InformationData
@ -88,12 +91,13 @@ public class InitialDataCheckController : ControllerBase
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);
}

View File

@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Caching.Memory;
using TaikoLocalServer.Models;
using TaikoLocalServer.Utils;
@ -9,7 +10,9 @@ namespace TaikoLocalServer.Controllers;
public class SelfBestController : ControllerBase
{
private readonly ILogger<SelfBestController> logger;
public SelfBestController(ILogger<SelfBestController> logger) {
public SelfBestController(ILogger<SelfBestController> logger)
{
this.logger = logger;
}
@ -25,21 +28,8 @@ public class SelfBestController : ControllerBase
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;
/*foreach (var songNo in request.ArySongNoes)
foreach (var songNo in request.ArySongNoes)
{
if (!manager.MusicAttributes.ContainsKey(songNo))
{
@ -47,23 +37,18 @@ public class SelfBestController : ControllerBase
continue;
}
if (crashing.Contains(songNo))
{
logger.LogWarning("Possible crashing song no!");
continue;
}
var selfBestData = new SelfBestResponse.SelfBestData
{
SongNo = songNo,
SelfBestScore = 0,
SelfBestScoreRate = 0,
SongNo = songNo,
UraBestScore = 0,
UraBestScoreRate = 0
};
response.ArySelfbestScores.Add(selfBestData);
}*/
}
response.ArySelfbestScores.Sort((data, otherData) => data.SongNo.CompareTo(otherData.SongNo));
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;
@ -18,17 +21,31 @@ public class UserDataController : ControllerBase
logger.LogInformation("UserData request : {Request}", request.Stringify());
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 = musicAttributeManager.MusicsWithUra.ToArray();
var uraSongArray = new byte[Constants.MUSIC_FLAG_BYTES];
test.SetAll(false);
foreach (var music in musicAttributeManager.MusicsWithUra)
{
test.Set((int)music, true);
}
test.CopyTo(uraSongArray, 0);
var response = new UserDataResponse
{
Result = 1,
ToneFlg = GZipBytesUtil.GetGZipBytes(new byte[1000]),
TitleFlg = GZipBytesUtil.GetGZipBytes(new byte[1000]),
ReleaseSongFlg = GZipBytesUtil.GetGZipBytes(releaseSongArray),
UraReleaseSongFlg = GZipBytesUtil.GetGZipBytes(uraSongArray),
ToneFlg = new byte[] {9},
// TitleFlg = GZipBytesUtil.GetGZipBytes(new byte[100]),
ReleaseSongFlg = releaseSongArray,
UraReleaseSongFlg = uraSongArray,
DefaultOptionSetting = new byte[] {0b10001001, 0b00000000},
SongRecentCnt = 0,
IsVoiceOn = true,

View File

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

View File

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