服务器 - ReiKohaku/Sonolus-wiki-zh_cn GitHub Wiki

服务器

服务器为Sonolus提供终端和资源。

服务器必须实现:信息关卡列表关卡信息皮肤列表皮肤信息背景列表背景信息音效列表音效信息粒子列表粒子信息引擎列表引擎信息

可以在所有终端上返回其他HTTP响应头,以提供有关服务器的全局信息。

Sonolus-Version

可选但推荐实现,指定所支持的Sonolus版本。

如果指定,玩家使用不支持的Sonolus版本时将无法在这个服务器游玩。

本地化、搜索和分页

使用查询参数Localizationkeywordspage提供本地化、搜索和分页(如果可用的话)。

例如:/levels/list?localization=en&page=0&keywords=Redo,表示本地化为英语,关键词为Redo,返回第0页搜索结果。

建议依据客户端语言来本地化返回的内容,且每页包含至多20个条目。

条目版本

每种条目类型都有一个Sonolus当前支持的版本数字。 不兼容版本的条目将无法使用。

类型 当前版本
关卡 1
皮肤 1
背景 1
音效 1
粒子 1
引擎 1

信息

实现/info

{
    "levels": [
        level, // 参见 关卡列表 部分
        // 其它关卡
    ],
    "skins": [
        skin, // 参见 皮肤列表 部分
        // 其它皮肤
    ],
    "backgrounds": [
        background, // 参见 背景列表 部分
        // 其它背景
    ],
    "effects": [
        effect, // 参见 音效列表 部分
        // 其它音效
    ],
    "particles": [
        particle, // 参见 粒子列表 部分
        // 其它粒子
    ],
    "engines": [
        engine, // 参见 引擎列表 部分
        // 其它引擎
    ],
}

关卡列表

实现/levels/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "89.EX",
            "version": 1,
            "rating": 27,
            "engine": engine, // 参见 引擎列表 部分
            "useSkin": {
                "useDefault": false,
                "skin": skin, // 参见 皮肤列表 部分
            },
            "useBackground": {
                "useDefault": false,
                "background": background, // 参见 背景列表 部分
            },
            "useEffect": {
                "useDefault": false,
                "effect": effect, // 参见 音效列表 部分
            },
            "useParticle": {
                "useDefault": false,
                "particle": particle, // 参见 粒子列表 部分
            },
            "title": "Redo",
            "artists": "Afterglow",
            "author": "BanG Dream! Girls Band Party!",
            "cover": SRL,
            "bgm": SRL,
            "data": SRL
        },
        // 其它关卡
    ]
}

use*.useDefault

如果为true(推荐),将使用引擎指定的默认资源。

关卡信息

实现 /levels/<name>

{
    "item": level, // 参见 关卡列表 部分
    "description": "...",
    "recommended": [
        level, // 参见 关卡列表 部分
        // 其它推荐关卡
    ]
}

皮肤列表

实现 /skins/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "classic",
            "version": 1,
            "title": "Classic",
            "subtitle": "Sonolus",
            "author": "Sonolus",
            "thumbnail": SRL,
            "data": SRL,
            "texture": SRL
        },
        // 其它皮肤
    ]
}

皮肤信息

实现 /skins/<name>

{
    "item": skin, // 参见 皮肤列表 部分
    "description": "...",
    "recommended": [
        skin, // 参见 皮肤列表 部分
        // 其它推荐皮肤
    ]
}

背景列表

实现 /backgrounds/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "darkblue",
            "version": 1,
            "title": "Dark Blue",
            "subtitle": "Sonolus",
            "author": "Sonolus",
            "thumbnail": SRL,
            "data": SRL,
            "image": SRL
        },
        // 其它背景
    ]
}

背景信息

实现 /backgrounds/<name>

{
    "item": background, // 参见 背景列表 部分
    "description": "...",
    "recommended": [
        background, // 参见 背景列表 部分
        // 其它推荐背景
    ]
}

音效列表

实现 /effects/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "bandori.1",
            "version": 1,
            "title": "SE Type 1",
            "subtitle": "BanG Dream! Girls Band Party!",
            "author": "Sonolus",
            "thumbnail": SRL,
            "data": SRL
        },
        // 更多音效
    ]
}

音效信息

实现 /effects/<name>

{
    "item": effect, // 参见 音效列表 部分
    "description": "...",
    "recommended": [
        effect, // 参见 音效列表 部分
        // 其它推荐音效
    ]
}

粒子列表

实现 /particles/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "classic",
            "version": 1,
            "title": "Classic",
            "subtitle": "Sonolus",
            "author": "Sonolus",
            "thumbnail": SRL,
            "data": SRL,
            "texture": SRL
        },
        // 其它粒子
    ]
}

粒子信息

实现 /particles/<name>

{
    "item": particle, // 参见 粒子列表 部分
    "description": "...",
    "recommended": [
        particle, // 参见 粒子列表 部分
        // 其它推荐粒子
    ]
}

引擎列表

实现 /skins/list

{
    "pageCount": 1,
    "items": [
        {
            "name": "bandori.classic",
            "version": 1,
            "title": "Bandori",
            "subtitle": "BanG Dream! Girls Band Party!",
            "author": "Sonolus",
            "thumbnail": SRL,
            "data": SRL,
            "configuration": SRL,
            "skin": skin, // 参见 皮肤列表 部分
            "background": background, // 参见 背景列表 部分
            "effect": effect, // 参见 音效列表 部分
            "particle": particle // 参见 粒子列表 部分
        },
        // 其它引擎
    ]
}

skin、background、effect和particle

引擎推荐使用的默认值。

背景信息

实现 /engines/<name>

{
    "item": engine, // 参见 引擎列表 部分
    "description": "...",
    "recommended": [
        engine, // 参见 引擎列表 部分
        // 其它推荐引擎
    ]
}
⚠️ **GitHub.com Fallback** ⚠️