服务器 - ReiKohaku/Sonolus-wiki-zh_cn GitHub Wiki
服务器为Sonolus提供终端和资源。
服务器必须实现:信息、关卡列表、关卡信息、皮肤列表、皮肤信息、背景列表、背景信息、音效列表、音效信息、粒子列表、粒子信息、引擎列表和引擎信息。
可以在所有终端上返回其他HTTP响应头,以提供有关服务器的全局信息。
可选但推荐实现,指定所支持的Sonolus版本。
如果指定,玩家使用不支持的Sonolus版本时将无法在这个服务器游玩。
使用查询参数Localization
、keywords
和page
提供本地化、搜索和分页(如果可用的话)。
例如:/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
},
// 其它关卡
]
}
如果为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 // 参见 粒子列表 部分
},
// 其它引擎
]
}
引擎推荐使用的默认值。
实现 /engines/<name>
{
"item": engine, // 参见 引擎列表 部分
"description": "...",
"recommended": [
engine, // 参见 引擎列表 部分
// 其它推荐引擎
]
}