feat(custom-rulesets): support custom rulesets (#23)

* feat(custom_ruleset): add custom rulesets support

* feat(custom-ruleset): add version check

* feat(custom-ruleset): add LegacyIO API to get ruleset hashes

* feat(pp): add check for rulesets whose pp cannot be calculated

* docs(readme): update README to include support for custom rulesets

* fix(custom-ruleset): make `rulesets` empty instead of throw a error when version check is disabled

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(custom-ruleset): apply the latest changes of generator

c891bcd159

and

e25041ad3b

* feat(calculator): add fallback performance calculation for unsupported modes

* fix(calculator): remove debug print

* fix: resolve reviews

* feat(calculator): add difficulty calculation checks

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
MingxuanGame
2025-10-26 21:10:36 +08:00
committed by GitHub
parent 8f4a9d5fed
commit 33f321952d
24 changed files with 3134 additions and 74 deletions

View File

@@ -536,6 +536,11 @@ CALCULATOR_CONFIG='{
),
"表现计算设置",
]
fallback_no_calculator_pp: Annotated[
bool,
Field(default=False, description="当计算器不支持某个模式时,使用简化的 pp 计算方法作为后备"),
"表现计算设置",
]
# 谱面缓存设置
enable_beatmap_preload: Annotated[
@@ -687,6 +692,11 @@ CALCULATOR_CONFIG='{
Field(default=False, description="允许用户删除自己的成绩"),
"反作弊设置",
]
check_ruleset_version: Annotated[
bool,
Field(default=True, description="检查自定义 ruleset 版本"),
"反作弊设置",
]
# 存储设置
storage_service: Annotated[