登陆 注册 QQ登陆
快捷导航
查看: 8|回复: 0

[模组分享] scarpet-webserver (scarpet-webserver)-MOD模组

[复制链接]

5146

主题

5

回帖

6129

积分

龙❁妻

Rank: 8Rank: 8

经验
6129 EP
金粒
928 粒
绿宝石
20 块
爱心
0 点
发表于 2025-8-10 19:11:48 | 显示全部楼层 |阅读模式 IP:山东济南
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 回复 收起回复
小僵尸论坛感谢有你~
回复 论坛版权

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则



官方

新浪微博 腾讯微博 微信公众号 投稿规则 版权声明 捐助我们

官方QQ①群: 291907844 (点击加群)
官方QQ②群: 421312192
官方QQ③群: 528726532

介绍

我的世界(Minecraft)小僵尸论坛
收录了来自各地的我的世界(MC)爱好者们的各种资源

须知: 切勿滥用举报,任何与举报相关的信息必须属实!

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

QQ|Archiver|手机版|小黑屋|Minecraft(我的世界)小僵尸论坛 |网站地图

GMT+8, 2025-8-23 20:17 , Processed in 0.211632 second(s), 47 queries .

快速回复 返回顶部 返回列表