|
scarpet-webserver (scarpet-webserver)Github |相关wiki |源站链接支持: fabric允许在scarpet中运行带有web服务器的模组,使其与Minecraft进行交互。
模组介绍
scarpet-webserver是一个为Carpet模组设计的扩展,用于在scarpet中运行web服务器。
使用要求
- 必须安装[Carpet模组](链接)
- 警告:只能使用你信任的脚本或自己制作的脚本。使用时需自担风险。
使用方法
首先,在加载模组时,需要在`scarpet-webserver.json`配置文件中定义要使用的web服务器。可以在第一次加载时创建一个示例配置文件,其中可以定义多个web服务器。每个web服务器都有一个唯一的`id`和一个`port`。例如配置文件如下:
json
{
\"webservers\": [
{
\"id\": \"myserver\",
\"port\": 80
}
]
}
然后可以在脚本中使用该服务器。
示例语法
可以在这里查看带有html文件的完整示例- [这里](链接)
js
// 初始化id为\'test\'的web服务器(在配置文件中定义)
ws = ws_init(\'test\');
// 处理根路径(通过函数名提供回调函数)
ws_add_route(ws, \'get\', \'/\', \'on_root\');
// 为API更改内容类型
ws_add_route(ws, \'get\', \'/api/players\', _(request, response) -> (
ws_response_set_content_type(response, \'application/json\');
encode_json({\'players\'->player(\'all\')});
));
// 重定向/redirect到/
ws_add_route(ws, \'get\', \'/redirect\', _(request, response) -> (
ws_response_set_status(response, 300);
ws_response_add_header(response, \'Location\', \'/\');
\'\'
));
// 使用路由模式在URL中创建玩家参数
ws_add_route(ws, \'get\', \'/api/getplayerdata/{player}\', _(request, response) -> (
playername = request:\'pathParams\':\'player\';
p = player(playername);
ws_response_set_content_type(response, \'application/json\');
if(p == null,
ws_response_set_status(response, 400);
return(encode_json({\'error\'->\'Invalid player\'}));
);
return(encode_json(parse_nbt(p~\'nbt\')));
));
// 返回请求数据以供测试/调试
ws_add_route(ws, \'get\', \'/requestdump\', _(request, response) -> (
ws_response_set_content_type(response, \'application/json\');
return(encode_json(request));
));
// 自定义404页面
ws_not_found(ws, _(request, response) -> global_404_page);
路由回调
路由的回调函数应具有以下签名:
js
_(request, response) -> (
// 进行操作
return(\'html body...\')
)
`request`参数提供了所有请求的详细信息的映射。
可以使用[示例脚本](#example-syntax)进行测试,其中包含一个`/requestdump`路由,将所有请求数据作为json发送回去。
`response`是一个[response值](#response)。
函数返回的值将作为响应主体(在大多数情况下是html页面)被发送。
新值
该模组添加了两种新的值类型:
#### `webserver`
这是运行web服务器的句柄,用于创建路由。
可以使用[`ws_init(id)`](#ws_initid)来获取。
#### `response`
此值在路由回调中提供,用于分配各种响应数据。
函数
#### `ws_init(id)`
从配置文件`id`中返回一个[`webserver`](#webserver)值。
如果尚未启动,则清除所有路由并启动。
#### `ws_add_route(webserver, method, path, callback)`
为`webserver`添加一个路由。
`method`是http方法,如`get`或`post`。
回调可以是先前声明的函数名称的字符串,也可以是lambda函数。
有关更多详细信息,请查看[路由回调](#route-callback)部分。
`path`使用jetty的[UriTemplatePathSpec](链接), 因此您可以使用[其语法(Level 1)](链接)。
它支持路径参数,如`/shop/{product}`,然后可以使用`request:\'pathParams\':\'product\'`检索。
#### `ws_not_found(webserver, callback)`
为没有匹配路由的请求设置处理程序。
#### `ws_response_set_status(response, statusCode)`
为`response`设置http状态码。
#### `ws_response_set_content_type(response, contentType)`
为`response`设置内容类型。
#### `ws_response_add_header(response, header, value)`
添加响应头。
截图:
来自Modrinth所有游戏版本1.20.51.20.6-rc11.20.624w18a24w19a24w19b24w20a24w21a24w21b1.21-pre11.21-pre21.21-pre31.21-pre41.21-rc11.211.21.1-rc11.21.124w33a24w34a24w35a24w36a24w37a24w38a24w39a24w40a1.21.2-pre11.21.2-pre21.21.2-pre31.21.2-pre41.21.2-pre51.21.2-rc11.21.2-rc21.21.21.21.324w44a24w45a24w46a1.21.4-pre11.21.4-pre21.21.4-pre31.21.4-rc11.21.4-rc21.21.4-rc31.21.425w02a25w03a25w04a25w05a25w06a25w07a25w08a25w09a25w09b25w10a1.21.5-pre11.21.5-pre21.21.5-pre31.21.5-rc11.21.5-rc21.21.525w14craftmine25w15a25w16a25w17a25w18a25w19a25w20a25w21a1.21.6-pre11.21.6-pre21.21.6-pre31.21.6-pre41.21.6-rc11.21.61.21.7-rc11.21.7-rc21.21.71.21.81.171.17.1-pre11.17.1-pre21.17.1-pre31.17.1-rc11.17.1-rc21.17.121w37a21w38a21w39a21w40a21w41a21w42a21w43a21w44a1.18-pre11.18-pre21.18-pre31.18-pre41.18-pre51.18-pre61.18-pre71.18-pre81.18-rc11.18-rc21.18-rc31.18-rc41.181.18.1-pre11.18.1-rc11.18.1-rc21.18.1-rc31.18.122w03a22w05a22w06a22w07a1.18.2-pre11.18.2-pre21.18.2-pre31.18.2-rc11.18.222w11a22w12a22w13a22w13oneblockatatime22w14a22w15a22w16a22w16b22w17a22w18a22w19a1.19-pre11.19-pre21.19-pre31.19-pre41.19-pre51.19-rc11.19-rc21.1922w24a1.19.1-pre11.19.1-rc11.19.1-pre21.19.1-pre31.19.1-pre41.19.1-pre51.19.1-pre61.19.1-rc21.19.1-rc31.19.11.19.2-rc11.19.2-rc21.19.222w42a22w43a22w44a22w45a22w46a1.19.3-pre11.19.3-pre21.19.3-pre31.19.3-rc11.19.3-rc21.19.3-rc31.19.323w03a23w04a23w05a23w06a23w07a1.19.4-pre11.19.4-pre21.19.4-pre31.19.4-pre41.19.4-rc11.19.4-rc21.19.4-rc31.19.423w12a23w13a23w13a_or_b23w14a23w16a23w17a23w18a1.20-pre11.20-pre21.20-pre31.20-pre41.20-pre51.20-pre61.20-pre71.20-rc11.201.20.1-rc11.20.123w31a23w32a23w33a23w35a1.20.2-pre11.20.2-pre21.20.2-pre31.20.2-pre41.20.2-rc11.20.2-rc21.20.223w40a23w41a23w42a23w43a23w43b23w44a23w45a23w46a1.20.3-pre11.20.3-pre21.20.3-pre31.20.3-pre41.20.3-rc11.20.31.20.4-rc11.20.423w51a23w51b24w03a24w03b24w04a24w05a所有类型fabric0.1.4scarpet-webserver-0.1.4.jar下载0.1.4#Beta* Query invalid keys of `request` now throws an error instead of returning `null`展开版本: 0.1.4支持游戏: 1.20.5, 1.20.6-rc1, 1.20.6, 24w18a, 24w19a, 24w19b, 24w20a, 24w21a, 24w21b, 1.21-pre1, 1.21-pre2, 1.21-pre3, 1.21-pre4, 1.21-rc1, 1.21, 1.21.1-rc1, 1.21.1, 24w33a, 24w34a, 24w35a, 24w36a, 24w37a, 24w38a, 24w39a, 24w40a, 1.21.2-pre1, 1.21.2-pre2, 1.21.2-pre3, 1.21.2-pre4, 1.21.2-pre5, 1.21.2-rc1, 1.21.2-rc2, 1.21.2, 1.21.3, 24w44a, 24w45a, 24w46a, 1.21.4-pre1, 1.21.4-pre2, 1.21.4-pre3, 1.21.4-rc1, 1.21.4-rc2, 1.21.4-rc3, 1.21.4, 25w02a, 25w03a, 25w04a, 25w05a, 25w06a, 25w07a, 25w08a, 25w09a, 25w09b, 25w10a, 1.21.5-pre1, 1.21.5-pre2, 1.21.5-pre3, 1.21.5-rc1, 1.21.5-rc2, 1.21.5, 25w14craftmine, 25w15a, 25w16a, 25w17a, 25w18a, 25w19a, 25w20a, 25w21a, 1.21.6-pre1, 1.21.6-pre2, 1.21.6-pre3, 1.21.6-pre4, 1.21.6-rc1, 1.21.6, 1.21.7-rc1, 1.21.7-rc2, 1.21.7, 1.21.8类型:FabricBeta下载次数: 350.1.3scarpet-webserver-0.1.3.jar下载0.1.3#Beta* Reworked request value. It is now its own value type. Data needs to be queried using `~`* Added `body_string` to queryable data of request value展开版本: 0.1.3支持游戏: 1.20.5, 1.20.6-rc1, 1.20.6, 24w18a, 24w19a, 24w19b, 24w20a, 24w21a, 24w21b, 1.21-pre1, 1.21-pre2, 1.21-pre3, 1.21-pre4, 1.21-rc1, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5类型:FabricBeta下载次数: 1550.1.2scarpet-webserver-0.1.2.jar下载0.1.2#Beta* Update to Java 21, MC 1.20.5展开版本: 0.1.2支持游戏: 1.20.5, 1.20.6, 1.21类型:FabricBeta下载次数: 1170.1.1scarpet-webserver-0.1.1.jar下载0.1.1#Beta* Removed unnecesary `attributes` value from request data* Added `request:\'pathParams\'` for retrieving url parameter values展开版本: 0.1.1支持游戏: 1.17, 1.17.1-pre1, 1.17.1-pre2, 1.17.1-pre3, 1.17.1-rc1, 1.17.1-rc2, 1.17.1, 21w37a, 21w38a, 21w39a, 21w40a, 21w41a, 21w42a, 21w43a, 21w44a, 1.18-pre1, 1.18-pre2, 1.18-pre3, 1.18-pre4, 1.18-pre5, 1.18-pre6, 1.18-pre7, 1.18-pre8, 1.18-rc1, 1.18-rc2, 1.18-rc3, 1.18-rc4, 1.18, 1.18.1-pre1, 1.18.1-rc1, 1.18.1-rc2, 1.18.1-rc3, 1.18.1, 22w03a, 22w05a, 22w06a, 22w07a, 1.18.2-pre1, 1.18.2-pre2, 1.18.2-pre3, 1.18.2-rc1, 1.18.2, 22w11a, 22w12a, 22w13a, 22w13oneblockatatime, 22w14a, 22w15a, 22w16a, 22w16b, 22w17a, 22w18a, 22w19a, 1.19-pre1, 1.19-pre2, 1.19-pre3, 1.19-pre4, 1.19-pre5, 1.19-rc1, 1.19-rc2, 1.19, 22w24a, 1.19.1-pre1, 1.19.1-rc1, 1.19.1-pre2, 1.19.1-pre3, 1.19.1-pre4, 1.19.1-pre5, 1.19.1-pre6, 1.19.1-rc2, 1.19.1-rc3, 1.19.1, 1.19.2-rc1, 1.19.2-rc2, 1.19.2, 22w42a, 22w43a, 22w44a, 22w45a, 22w46a, 1.19.3-pre1, 1.19.3-pre2, 1.19.3-pre3, 1.19.3-rc1, 1.19.3-rc2, 1.19.3-rc3, 1.19.3, 23w03a, 23w04a, 23w05a, 23w06a, 23w07a, 1.19.4-pre1, 1.19.4-pre2, 1.19.4-pre3, 1.19.4-pre4, 1.19.4-rc1, 1.19.4-rc2, 1.19.4-rc3, 1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a, 23w16a, 23w17a, 23w18a, 1.20-pre1, 1.20-pre2, 1.20-pre3, 1.20-pre4, 1.20-pre5, 1.20-pre6, 1.20-pre7, 1.20-rc1, 1.20, 1.20.1-rc1, 1.20.1, 23w31a, 23w32a, 23w33a, 23w35a, 1.20.2-pre1, 1.20.2-pre2, 1.20.2-pre3, 1.20.2-pre4, 1.20.2-rc1, 1.20.2-rc2, 1.20.2, 23w40a, 23w41a, 23w42a, 23w43a, 23w43b, 23w44a, 23w45a, 23w46a, 1.20.3-pre1, 1.20.3-pre2, 1.20.3-pre3, 1.20.3-pre4, 1.20.3-rc1, 1.20.3, 1.20.4-rc1, 1.20.4, 23w51a, 23w51b, 24w03a, 24w03b, 24w04a, 24w05a类型:FabricBeta下载次数: 2050.1.0scarpet-webserver-0.1.0.jar下载0.1.0#Beta展开版本: 0.1.0支持游戏: 1.17, 1.17.1-pre1, 1.17.1-pre2, 1.17.1-pre3, 1.17.1-rc1, 1.17.1-rc2, 1.17.1, 21w37a, 21w38a, 21w39a, 21w40a, 21w41a, 21w42a, 21w43a, 21w44a, 1.18-pre1, 1.18-pre2, 1.18-pre3, 1.18-pre4, 1.18-pre5, 1.18-pre6, 1.18-pre7, 1.18-pre8, 1.18-rc1, 1.18-rc2, 1.18-rc3, 1.18-rc4, 1.18, 1.18.1-pre1, 1.18.1-rc1, 1.18.1-rc2, 1.18.1-rc3, 1.18.1, 22w03a, 22w05a, 22w06a, 22w07a, 1.18.2-pre1, 1.18.2-pre2, 1.18.2-pre3, 1.18.2-rc1, 1.18.2, 22w11a, 22w12a, 22w13a, 22w13oneblockatatime, 22w14a, 22w15a, 22w16a, 22w16b, 22w17a, 22w18a, 22w19a, 1.19-pre1, 1.19-pre2, 1.19-pre3, 1.19-pre4, 1.19-pre5, 1.19-rc1, 1.19-rc2, 1.19, 22w24a, 1.19.1-pre1, 1.19.1-rc1, 1.19.1-pre2, 1.19.1-pre3, 1.19.1-pre4, 1.19.1-pre5, 1.19.1-pre6, 1.19.1-rc2, 1.19.1-rc3, 1.19.1, 1.19.2-rc1, 1.19.2-rc2, 1.19.2, 22w42a, 22w43a, 22w44a, 22w45a, 22w46a, 1.19.3-pre1, 1.19.3-pre2, 1.19.3-pre3, 1.19.3-rc1, 1.19.3-rc2, 1.19.3-rc3, 1.19.3, 23w03a, 23w04a, 23w05a, 23w06a, 23w07a, 1.19.4-pre1, 1.19.4-pre2, 1.19.4-pre3, 1.19.4-pre4, 1.19.4-rc1, 1.19.4-rc2, 1.19.4-rc3, 1.19.4, 23w12a, 23w13a, 23w13a_or_b, 23w14a, 23w16a, 23w17a, 23w18a, 1.20-pre1, 1.20-pre2, 1.20-pre3, 1.20-pre4, 1.20-pre5, 1.20-pre6, 1.20-pre7, 1.20-rc1, 1.20, 1.20.1-rc1, 1.20.1, 23w31a, 23w32a, 23w33a, 23w35a, 1.20.2-pre1, 1.20.2-pre2, 1.20.2-pre3, 1.20.2-pre4, 1.20.2-rc1, 1.20.2-rc2, 1.20.2, 23w40a, 23w41a, 23w42a, 23w43a, 23w43b, 23w44a, 23w45a, 23w46a, 1.20.3-pre1, 1.20.3-pre2, 1.20.3-pre3, 1.20.3-pre4, 1.20.3-rc1, 1.20.3, 1.20.4-rc1, 1.20.4, 23w51a, 23w51b, 24w03a, 24w03b类型:FabricBeta下载次数: 93全部版本
markdown_parsed
文章类型:收录
layui.use([\'form\'], function(){
var form = layui.form;
});
scarpet-webserver |
楼主
2025-8-10 19:11:48
回复(0)
收起回复
|