[插件] [1.16-1.19] ServerTap - 通过API获取玩家信息和操作服务器

[复制链接]
查看187 | 回复0 | 2024-5-21 18:16:54 | 显示全部楼层 |阅读模式 IP:
封面图
名字:
ServerTap
版本:
1.20+ 1.19+ 1.18+ 1.17+ 1.16+ 
插件类型:
实用工具
插件加载器:
Bukkit Paper Purpur Spigot 
来源:
转载
来源地址:
https://www.spigotmc.org/resources/servertap.79031/
下载地址:
https://github.com/servertap-io/servertap/releases
下载提取码:

本帖最后由 Cnzw 于 2024-5-23 18:38 编辑

upload_2021-12-16_17-2-4.png




插件简介

ServerTap 是一个支持 Bukkit、Spigot 和 Paper 服务器的 REST API 插件。 它允许通过 HTTP、Webhooks 和 Websockets 与服务器进行交互。

@Cnzw
该插件很适合用于 QQ 机器人和各种状态监测网页。

安装要求

  • Bukkit/Spigot/Paper 或其分支:1.16.5 或更高版本
  • Java:16 或更高版本
  • 无前置插件


如何使用

将本插件文件复制到服务器的 plugins 文件夹中即完成了安装。

然后可以使用 CurlPostman 或任意浏览器来访问 API。

例如,查询有关服务器信息的 API:

  1. $ curl http: //localhost:4567/v1/server
  2. {
  3.     "name": "Paper",
  4.     "motd": "This is my MOTD",
  5.     "version": "git-Paper-89 (MC: 1.15.2)",
  6.     "bukkitVersion": "1.15.2-R0.1-SNAPSHOT",
  7.     "health": {
  8.         "cpus": 4,
  9.         "uptime": 744,
  10.         "totalMemory": 2010644480,
  11.         "maxMemory": 2010644480,
  12.         "freeMemory": 1332389360
  13.     },
  14.     "bannedIps": [],
  15.     "bannedPlayers": [{
  16.         "target": "phybros",
  17.         "source": "Server"
  18.     }]
  19. }
复制代码


或查询在线玩家列表的 API:

  1. $ curl http://localhost:4567/v1/players
  2. [{
  3.     "uuid": "55f584e4-f095-48e0-bb8a-eb5c87ffe494",
  4.     "displayName": "phybros",
  5.     "address": "localhost",
  6.     "port": 58529,
  7.     "exhaustion": 3.5640976,
  8.     "exp": 0.45454547,
  9.     "whitelisted": false,
  10.     "banned": false,
  11.     "op": true
  12. }]
复制代码


API 文档

插件自带 API 文档。可以在 http://服务器IP:4567/swagger 查看完整的 API 文档并且直接调试。

@Cnzw
我直接导出了API接口,在这里查看

API 验证

plugins/ServerTap/config.yml 文件中进行配置:

  1. useKeyAuth: true
  2. key: some-long-super-random-string
复制代码

然后,在需要在请求头(Header)中包含 key 和对应的密钥。

WebHook

ServerTap 可以在服务器上发生事件时发送 WebHook 消息。

要使用 WebHook,需要配置 plugins/ServerTap/config.yml 文件:

  1. webhooks:
  2.   default:
  3.     listener: "https://your-webhook-target.com/whatever"
  4.     events:
  5.     - PlayerJoin
  6.     - PlayerQuit
复制代码

目前可用的事件有:
  • PlayerJoin
  • PlayerDeath
  • PlayerChat
  • PlayerKick
  • PlayerQuit


WebHook 通过 POST 请求发送 JSON 数据:

  1. {
  2.   "player": {
  3.     "uuid": "55f584e4-f095-48e0-bb8a-eb5c87ffe494",
  4.     "displayName": "phybros",
  5.     "address": "localhost",
  6.     "port": 52809,
  7.     "exhaustion": 0,
  8.     "exp": 0.5714286,
  9.     "whitelisted": true,
  10.     "banned": false,
  11.     "op": true
  12.   },
  13.   "joinMessage": "§ephybros joined the game",
  14.   "eventType": "PlayerJoin"
  15. }
复制代码


Websockets

ServerTap 支持正向 WebSocket ,能够实时接收服务器日志。

一旦连接,服务器上通过正常日志过滤器的任何服务器日志行都会以类似这样的 JSON 对象形式通过 WebSocket 发送:

  1. {
  2.   "message": "§6/version: §fGets the version of this server including any plugins in use",
  3.   "timestampMillis": 1631834015918,
  4.   "loggerName": "",
  5.   "level": "INFO"
  6. }
复制代码

WebSocket 地址是 ws://服务器IP:4567/v1/ws/console

最后 1000 条服务器日志消息将缓存并在客户端连接时发送。您可以通过更改 config.yml 中的 websocketConsoleBuffer 来配置服务器日志缓冲区的大小。

使用统计




更多

本插件已加入 插件搬运计划,会定期同步外网资源的更新。

搬运催更 & 问题反馈快速响应问卷 或在下方留下评论。
McFun注意事项

1、本站中所有言论属于网友个人观点,与本站无关

2、本站所有主题由该帖子作者发表,该作者享有帖子相关版权,转载需经过作者同意

3、帖子作者承担一切因本该贴子发表而直接或间接导致的任何纠纷和法律责任

4、本帖内容如转载自其他地方,本站不对其真实性负责

5、本帖如侵犯到任何版权问题,请立即反馈,本站将及时处理

6、"McFun"管理员和版主有权不事先通知发贴者而删除帖子

7、"Minecraft"和"我的世界"版权归Mojang Studios所有,本站与Mojang,微软公司没有任何从属关系





上一篇:[Bukkit]无限抽奖 - 让你的玩家可以无限次数的抽奖吧(可限制领取次数)
下一篇:[1.8-1.20] DriveBackupV2 - 让支持各种备份手段的插件来保护你的服务器数据
回复

使用道具 举报

懒得打字,快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

主题

0

回帖

2

听众

Level0 无名者

经验
116 XP
铁锭
35 个
金块
0 块
钻石
0 颗
人气
15 点
爱心
0 颗