English | 简体中文
一个强大的 Spigot/Paper 插件,通过使用地图和 Java Chromium 内嵌框架 (JCEF),将现代网络浏览器的功能带入 Minecraft。
- 动态浏览器创建: 在游戏世界的任何位置创建任意大小的交互式浏览器屏幕。
- 实时网页渲染: 基于 Chromium 引擎,能够渲染现代网页,包括复杂的 CSS 和 JavaScript。
- 完全交互式:
- 通过鼠标点击与网页元素交互。
- 通过命令输入文本到表单和搜索框。
- 通过命令发送特定按键(如 Enter, Shift, Backspace)以进行高级控制。
- 开发者工具: 实时开启/关闭 Chromium 开发者工具,直接在游戏内调试网页布局和性能。
- 高度可配置:
- 通过
config.yml启用远程调试,使用 Chrome DevTools 连接。 - 支持指定自定义的 JCEF Bundle 路径。
- 通过
config.yml,还可配置user-agent、用户数据路径以及自定义 CEF 参数。
- 通过
- MapEngine (必需): 本插件依赖于 MapEngine API 来渲染地图。请确保已在服务器上安装并启用 MapEngine。
- 从 Releases 页面 下载最新的
MapBrowser-*-all.jar文件。 - 确保你已经安装了 MapEngine 插件。
- 将下载的
MapBrowser-*-all.jar文件放入你服务器的plugins目录。 - 启动或重启服务器。
- 插件首次启动时,
jcef-maven将自动下载并安装适用于你服务器操作系统的自定义版本的 CEF,目前仅支持Windows amd64/i386和Linux amd64/arm64。如果我们的自定义版本不可用,则会自动禁用插件。这个过程可能需要几分钟,并需要较好的网络连接。请耐心等待,并观察控制台日志。
插件首次加载时,会在 plugins/MapBrowser/config.yml 创建一个配置文件。
# --------------------------------------------------- #
# MapBrowser 配置文件 #
# --------------------------------------------------- #
jcef:
# 你的自定义 JCEF 二进制文件路径(留空则禁用)
# 默认: (plugins)/MapBrowser/jcef-bundle
custom-install-path: ""
# 自定义 jcef-maven 下载镜像(用于自定义构建)
mirror: "https://github.com/Steve3184/mb_jcefbuild/releases/download/v1/"
# jcef-maven 是否应在启动时检查 JCEF 二进制文件?
skip-download: false
browser:
# 是否启用声音(默认为 false)
enable-sound: false
# CEF 的用户数据目录
# 默认: (plugins)/MapBrowser/userdata
user-data-dir: "userdata"
# CEF 的远程调试
remote-debugging:
enabled: false
# 是否启用?(默认为 false)
port: 9222
# 远程调试端口(默认为 9222)
# CEF 的 User-Agent
user-agent: ""
# CEF 日志应输出到何处
# 'file' -> 写入到 (plugins)/MapBrowser/cef.log
# 'console' -> 写入到控制台
chrome-log-output: "file"
# 额外的 CEF 启动参数
custom-chrome-args:
- "--disable-gpu-compositing"
- "--disable-gpu-vsync"| 命令 | 描述 | 用法 | 权限 |
|---|---|---|---|
/mb create |
在指定位置创建一个新的浏览器屏幕。 | /mb create <x> <y> <z> <url> [width] [height] |
mapbrowser.command.create |
/mb list |
列出所有当前活动的浏览器屏幕。 | /mb list |
mapbrowser.command.list |
/mb remove |
移除一个指定的浏览器屏幕。 | /mb remove <id> |
mapbrowser.command.remove |
/mb modify |
修改一个现有屏幕的属性。 | /mb modify <id> <prop> [values...] |
mapbrowser.command.modify |
├ url |
更改屏幕加载的网址。 | /mb modify <id> url <new_url> |
|
├ devtools |
开启或关闭开发者工具。 | /mb modify <id> devtools <on|off> |
|
├ pos |
移动浏览器屏幕。 | /mb modify <id> pos <x> <y> <z> |
|
├ size |
更改浏览器屏幕的大小。 | /mb modify <id> size <width> <height> |
|
└ refresh |
刷新浏览器页面。 | /mb modify <id> refresh |
|
└ scale |
设置浏览器页面的缩放。 | /mb modify <id> scale <newScale> |
|
/mb input |
向指定的屏幕发送文本输入。 | /mb input <id> <text...> |
mapbrowser.command.input |
/mb keys |
向指定的屏幕发送一个按键事件。 | /mb keys <id> <key> <action> |
mapbrowser.command.keys |
/mb executeJs |
在指定的浏览器屏幕中执行自定义 JS 代码或 JS 片段文件。 | /mb executeJs <id> <jsCode|snippet.js> |
mapbrowser.command.executejs |
/mb near |
列出最近的浏览器屏幕的 ID。 | /mb near |
mapbrowser.command.near |
/mb keys 的按键动作:
pressDown: 模拟按下按键。pressUp: 模拟松开按键。click: 模拟一次完整的按下并松开。
如果你想自己修改或构建此插件:
-
环境准备:
- Java Development Kit (JDK) 21 或更高版本。
- Git
-
构建步骤:
# 克隆仓库 git clone https://github.com/Steve3184/MapBrowser.git cd MapBrowser # 使用 Gradle 构建 Jar ./gradlew shadowJar
-
构建成功后,你可以在
build/libs/目录下找到MapBrowser-*-all.jar。
本项目使用 GNU AGPL v3 许可证。
你可以在此查看许可证的完整内容: LICENSE
- MapEngine:
AGPL-3.0-only - JCEF-maven:
Apache-2.0
- pianoman911 - 感谢他创造了功能强大的 MapEngine 库。
- CinemaMod - 感谢他们提供了便捷的 JCEF 预构建二进制文件,极大地简化了对于支持 h264 等编码的 CEF 的集成。
