MapBrowser

A powerful plugin that brings the power of a modern web browser into Minecraft using maps and the JCEF.

346

MapBrowser

MapBrowser

License Minecraft Version Status

A powerful Spigot/Paper plugin that brings a modern web browser into Minecraft using maps and the Java Chromium Embedded Framework (JCEF). Interact with any website, watch videos, and even play Minecraft in Minecraft!

---

✨ Features

* Highly Configurable: Create interactive browser screens of any size, anywhere in your world. * Highly Configurable: Powered by the Chromium engine, it renders modern websites with full CSS and JavaScript support. * Highly Configurable: Click, type, and send key presses (like Enter, Shift) to interact with web pages just like a real browser. * Highly Configurable: Toggle Chromium DevTools in real-time to debug web layouts and performance on the fly. * Highly Configurable: Enable remote debugging, set a custom user agent, change user data paths, and add custom CEF arguments via `config.yml`.

---

❗ Dependencies

This plugin requires the requires API to function. Please install it on your server before installing MapBrowser.

---

⚙️ Installation

1. Download and install **MapEngine** on your server. 2. Download the latest `MapBrowser-*-all.jar` from the **Releases Page** or the "Versions" tab. 3. Place the downloaded `.jar` file into your server's `plugins` directory. 4. Restart your server.

⚠️ Important First-Time Setup: On its first launch, MapBrowser will automatically download the necessary Chromium Embedded Framework (JCEF) binaries. This process can take several minutes and requires a stable internet connection. Please monitor your console for progress.

---

📜 Commands & Permissions

| Command | Description | Usage | Permission | |-----------------|--------------------------------------------------------------------------|-------------------------------------------------|--------------------------------| | `/mb create` | Creates a new browser screen at the specified location. | `/mb create <x> <y> <z> <url> [width] [height]` | `mapbrowser.command.create` | | `/mb list` | Lists all currently active browser screens. | `/mb list` | `mapbrowser.command.list` | | `/mb remove` | Removes a specified browser screen. | `/mb remove <id>` | `mapbrowser.command.remove` | | `/mb modify` | Modifies the properties of an existing screen. | `/mb modify <id> <prop> [values...]` | `mapbrowser.command.modify` | | `├ url` | Changes the URL loaded by the screen. | `/mb modify <id> url <new_url>` | | | `├ devtools` | Toggles the developer tools on or off. | `/mb modify <id> devtools <on|off>` | | | `├ pos` | Moves the browser screen. | `/mb modify <id> pos <x> <y> <z>` | | | `├ size` | Changes the size of the browser screen. | `/mb modify <id> size <width> <height>` | | | `└ refresh` | Refreshes the browser page. | `/mb modify <id> refresh` | | | `└ scale` | Setting the scale of browser page. | `/mb modify <id> scale <newScale>` | | | `/mb input` | Sends text input to the specified screen. | `/mb input <id> <text...>` | `mapbrowser.command.input` | | `/mb keys` | Sends a key event to the specified screen. | `/mb keys <id> <key> <action>` | `mapbrowser.command.keys` | | `/mb executeJs` | Executes custom JS code or a JS snippet in the specified browser screen. | `/mb executeJs <id> <jsCode|snippet.js>` | `mapbrowser.command.executejs` | | `/mb near` | Lists the ID of the nearest browser screen. | `/mb near` | `mapbrowser.command.near` |

🔧 Configuration (config.yml)

The configuration file is generated at `plugins/MapBrowser/config.yml` on the first run.

```yaml

--------------------------------------------------- #

MapBrowser Configuration #

--------------------------------------------------- #

jcef:

Your custom JCEF binaries path (leave blank to disable)

Default: (plugins)/MapBrowser/jcef-bundle

custom-install-path: ""

Custom jcef-maven download mirror (for custom-builds)

mirror: "https://github.com/Steve3184/mb_jcefbuild/releases/download/v1/"

Should jcef-maven check the JCEF binaries at startup?

skip-download: false

browser:

Should we enable the sound (default is false)

enable-sound: false

CEF's user data directory

Default: (plugins)/MapBrowser/userdata

user-data-dir: "userdata"

CEF's remote debugging

remote-debugging: enabled: false

Should we enable it? (default is false)

port: 9222

Remote Debugging Port (default is 9222)

CEF's User-Agent

user-agent: ""

Where should CEF output the log

'file' -> write to (plugins)/MapBrowser/cef.log

'console' -> write to console

chrome-log-output: "file"

Extra CEF startup args

custom-chrome-args: - "--disable-gpu-compositing" - "--disable-gpu-vsync" ```

---

🔗 Links & Credits

* CinemaMod: CinemaMod * CinemaMod: `GNU AGPL v3` * CinemaMod: * CinemaMod for the powerful %%MD1%% library. * CinemaMod for their pre-built %%MD2%% which greatly simplify development.

ADS