ServerTap 是一个面向 Bukkit、Spigot 和 PaperMC Minecraft 服务器的 REST API 插件,可让服务器管理员通过简洁的 REST 语义查询并操作服务器。
https://github.com/phybros/servertap/releases/latest
https://discord.gg/fefHbTFAkj
ServerTap 提供了一个可自托管的 HTTP API,支持通过 curl、Postman 或任何支持 HTTP 的工具与 Minecraft 服务器交互。
plugins/ 目录中。curl、Postman 或任何支持 HTTP 的工具请求服务器。$ curl
http://localhost:4567/v1/server
{
"name": "Paper",
"motd": "This is my MOTD",
"version": "git-Paper-89 (MC: 1.15.2)",
"bukkitVersion": "1.15.2-R0.1-SNAPSHOT",
"health": {
"cpus": 4,
"uptime": 744,
"totalMemory": 2010644480,
"maxMemory": 2010644480,
"freeMemory": 1332389360
},
"bannedIps": [],
"bannedPlayers": [
{
"target": "phybros",
"source": "Server"
}
]
}$ curl
http://localhost:4567/v1/players
[
{
"uuid": "55f584e4-f095-48e0-bb8a-eb5c87ffe494",
"displayName": "phybros",
"address": "localhost",
"port": 58529,
"exhaustion": 3.5640976,
"exp": 0.45454547,
"whitelisted": false,
"banned": false,
"op": true
}
]ServerTap 会自托管 Swagger API 文档。你可以在以下地址查看完整文档:
http://your-server.net:4567/swagger你还可以直接在 Swagger UI 中探索并测试 API。
ServerTap 通过 Java 的 keystore 文件支持 TLS(也叫 SSL)。
强烈建议启用 TLS,因为它可以对与你服务器之间传输的请求和响应进行加密。
keytool -genkey -keyalg RSA -alias servertap -keystore selfsigned.jks -validity 365 -keysize 2048
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]:
...
<you can mostly answer whatever you want to all these questions>selfsigned.jks 保存到 plugins/ServerTap 目录中。config.yml 中添加:tls:
enabled: true
keystore: selfsigned.jks
keystorePassword: testinghttps:// 与 API 通信。自 v0.5.0 起,TLS 可选支持 Server Name Indication(SNI)。
tls.sni 设为 true 即可启用(高级用法)。false 即可。目前的认证机制还比较基础。
将以下内容添加到 plugins/ServerTap/config.yml 中:
useKeyAuth: true
key: some-long-super-random-stringkey 的 Header。#5
默认情况下,ServerTap 允许来自任意来源(*)的跨域请求。
如果你想修改此行为,请在配置文件中调整 corsOrigins。
corsOrigins:
-
https://mysite.com ServerTap 可以在服务器发生事件时发送 webhook 消息。
在 plugins/ServerTap/config.yml 中这样定义:
webhooks:
default:
listener: "
https://your-webhook-target.com/whatever "
events:
- PlayerJoin
- PlayerQuitWebhook 会发送 POST 请求,内容为简单的 JSON payload:
{
"player": {
"uuid": "55f584e4-f095-48e0-bb8a-eb5c87ffe494",
"displayName": "phybros",
"address": "localhost",
"port": 52809,
"exhaustion": 0,
"exp": 0.5714286,
"whitelisted": true,
"banned": false,
"op": true
},
"joinMessage": "§ephybros joined the game",
"eventType": "PlayerJoin"
}ServerTap 提供双向 websockets 接口,可让你实时接收服务器日志行,无需轮询。
连接建立后,任何经过服务器正常日志过滤器的日志行都会通过 websocket 以 JSON 对象形式发送,例如:
{
"message": "§6/version: §fGets the version of this server including any plugins in use",
"timestampMillis": 1631834015918,
"loggerName": "",
"level": "INFO"
}ansicolors 的库在浏览器中解析颜色代码。ws://<host>:4567/v1/ws/consolewss://config.yml 中的 websocketConsoleBuffer 来配置日志缓冲区大小。由于 websocket 连接无法像普通 API 路由那样设置 Header,因此不能使用 Header key 进行认证。
你必须在承载 websocket 连接的页面上设置一个名为 x-servertap-key 的 cookie。
// set cookie to authenticate the connection
document.cookie = "x-servertap-key=change_me";
this.ws = new WebSocket("ws://localhost:4567/v1/ws/console");
this.ws.onopen = function() {
console.log("Opened connection");
};如果你想参与 ServerTap 的开发,需要准备以下环境:
mvn package 命令构建插件 jar。我目前无法直接打开或读取 https://servertap.io 的网页内容。
请把该插件文档的原文粘贴过来,我就可以按照你的要求将其整理并翻译为适合插件目录网站发布的简体中文版本,格式会包括:
如果文档内容较长,也可以分多次发送,我会继续帮你整理。
友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人数:200,516 | 历史访问人次:306,207
今日访问人数:7,248 | 今日访问人次:7,958
昨日访问人数:30,537 | 昨日访问人次:36,142
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6