Simple yet featureful /hub command for BungeeCord and Velocity.
## Config
“`yaml
hub: ‘default’ # ‘default’ to use the default server in the proxy config
requiresPermission: false # Set to true to require the permission ‘hubcommand.command’ for executing /hub
# Legacy color codes can be used in BungeeCord, while MiniMessage format can be used in Velocity
alreadyInHub: You are already connected to this server!
disabledServersError: You cannot do /hub here
# List of servers in which /hub is disabled
disabled-servers: []
“`
> HostBenchmark is a Minecraft server benchmarking plugin that measures CPU, disk, Java heap memory (optional) and a dedicated in‑game Minecraft workload. It generates JSON reports that you can upload to **hostbenchmark.net** to compare VPS, dedicated and game hosting providers.
—
**What is HostBenchmark?**
HostBenchmark focuses on **real Minecraft server workloads**, not synthetic lab benchmarks.
It measures
– CPU throughput (single thread + multi thread)
– Disk throughput (sequential write & read)
– Optional Java heap memory throughput (EXTREME preset)
– A dedicated Minecraft world benchmark (chunk generation, entities, block updates)
and turns them into
– CPU score
– Disk score
– Combined Host score
– Minecraft score
All scores are **open‑ended**. There is no hard cap like `1000/1000` extremely fast systems can score well above 1000 points. Tier labels (like `Midrange Host` or `Overkill Host`) are not fixed score ranges.
You can keep the JSON reports locally **or upload them to the public leaderboard on [Hostbenchmark.net](https://hostbenchmark.net/)** to compare your host with others worldwide.
—
**How it works (high level)**
1. Install the plugin on a Paper / Spigot‑compatible server.
2. Run one of the benchmark commands (see **Commands** below).
3. The plugin runs:
– a CPU benchmark (single + multi thread),
– a disk benchmark (large temporary file),
– an optional Java heap memory benchmark (EXTREME preset),
– a dedicated Minecraft benchmark in a temporary world.
4. A **JSON report** and a **result card image(soon removed)** are written to the plugin exports folder.
5. You can upload the JSON file to **[Hostbenchmark.net](https://hostbenchmark.net/)**, tag it with provider and plan and view it on the global leaderboard.
—
**Presets**
HostBenchmark provides three presets that trade off duration vs. precision:
**Quick**
– Short CPU test
– Small disk file (~256 MiB)
– No memory test
– Fast sanity check for new hosts
**Standard**
– Longer CPU test
– Larger disk file (~1 GiB)
– No memory test
– Recommended baseline preset
**Extreme**
– Long CPU test
– Large disk file (~4 GiB)
– Extra Java heap memory benchmark (up to **512 MiB** block, but never more than 25% of the configured max heap)
– Full dedicated Minecraft world benchmark
All presets share the **same scoring model** – they only differ in runtime and test sizes.
—
**Dedicated Minecraft benchmark**
To make results better HostBenchmark runs a **separate Minecraft benchmark** in a temporary world:
– Creates or loads a world named `hb_benchmark_world`.
– Generates and loads a configurable number of chunks (depending on preset, e.g. 1024 chunks for EXTREME).
– Spawns entities (ArmorStands) to stress pathfinding and entity ticking.
– Applies batches of block updates (placing/breaking blocks) to exercise chunk lighting and block update logic.
– Measures how long it takes to process all these operations on the main thread.
– Unloads and deletes the benchmark world afterwards.
The Minecraft benchmark produces:
– total benchmark duration in seconds
– chunks tested
– average, min and max **ms per chunk**
– chunks per second
– a separate **Minecraft score** and tier label
All Minecraft metrics are included in the JSON report and shown on the website when present.
1. Start the server.
2. Run one of the `/hostbench start …` commands.
3. Wait until the benchmark finishes.
– CPU, disk, memory and Minecraft benchmark run automatically as part of the chosen preset.
4. Grab the generated files from `plugins/HostBenchmark/exports/`:
– `hostbench-YYYYMMDD-HHmmss.json`
5. Upload the JSON report to **[Hostbenchmark.net](https://hostbenchmark.net/)** and assign:
– **Provider** (e.g. Hetzner, Contabo, Netcup, Zap Hosting, Nitrado, …)
– **Plan name** (e.g. `AX41-NVMe`, `VPS S`, `MC Premium 8GB`)
If your Provider or Plan name is missing you can add them with the new button!
You can then compare your host on the public leaderboard.
– A public **leaderboard**, sorted by Host score
– Filters for **preset, provider and plan**
– Detailed per‑report pages, showing:
– CPU details (model, cores/threads, frequency, measured ops/s)
– Disk details (model, size, measured read/write MiB/s)
– Memory throughput (GiB/s, EXTREME only, Does not count in the Score!)
– Minecraft implementation, version, TPS/MSPT and environment
– Minecraft benchmark results (chunks, ms per chunk, Minecraft score)
If your provider or plan is missing, you can simply add it during upload.
—
**How scoring works (overview)**
HostBenchmark measures three core areas:
– **CPU performance**
– **Disk throughput**
– **(Optional) Java heap memory throughput**
(informational only; it does not change the Host score)
Scores are **not clamped** to a fixed maximum. Values above 1000 are possible and simply mean “faster than the internal baseline high‑end system”.
**CPU score**
– Measures single‑thread and multi‑thread throughput.
– Multi‑thread results are normalized **per thread** to avoid inflating scores just by having many cores.
– Final CPU score is roughly:
– ~70% single‑thread performance
– ~30% normalized multi‑thread performance
**Disk score**
– Based on sequential write and read throughput of a large temporary file.
– Read throughput is weighted slightly higher than write throughput, since:
– chunk loading,
– backups,
– region scanning
are usually more sensitive to read speed.
**Host score**
– Combines CPU and disk performance into a single number:
– CPU contributes ~70%
– Disk contributes ~30%
– Scores are with respect to internal reference systems:
– ~500–800 → solid midrange to high‑end hosts
– ~800–1200 → very strong or “overkill” systems
– Below ~400 → budget or older hardware
**Minecraft score**
– Derived from the Minecraft benchmark:
– average ms per chunk,
– chunk throughput (chunks/s),
– stability (min/max times).
– A lower average ms per chunk yields a higher Minecraft score.
– Designed to show how well the host deals with **actual Minecraft main‑thread load**, not just synthetic CPU numbers.
_Tier names such as `Potato Host`, `Entry Host`, `Midrange Host`, `High-End Host` and `Overkill Host` are based on **score thresholds** and are meant as intuitive labels, not hard performance guarantees._
—
**Memory benchmark (Extreme only)**
The memory benchmark:
– Allocates an off‑heap buffer and a Java heap block (up to **512 MiB**, but never more than 25% of the configured max heap).
– Measures streaming write and read throughput in GiB/s.
– Is only run in the **EXTREME** preset.
– Is **informational** – it does **not** affect CPU, Disk or Host scores.
Because it stresses the JVM heap and GC, **EXTREME is not recommended while players are online** on a production server.
—
**Safety and usage notes**
– Always run the benchmark on an **idle server** if you want clean, comparable results.
– On production servers:
– warn players before running a benchmark,
– prefer `quick` or `standard` presets,
– reserve `extreme` for off‑peak testing windows.
– The plugin deletes its temporary benchmark world after the Minecraft test, but you should still avoid naming your own worlds `hb_benchmark_world`.
—
**Summary**
HostBenchmark is designed to answer questions like:
– “Is this VPS strong enough for my survival or modded server?”
– “Is my new dedicated server actually better than the old one?”
– “How good is this game host compared to a cheap VPS?”
Instead of marketing numbers, you get **repeatable, Minecraft‑relevant scores** that you can compare locally or via the public leaderboard on **[Hostbenchmark.net](https://hostbenchmark.net/)**.
HomeForge
## 🏠 HomeForge
HomeForge is a modern, high-performance home management plugin for Paper servers. It allows players to set, teleport, and manage homes easily through commands or an intuitive chest-based GUI. Built with full async support, it ensures zero lag while offering powerful features like permissions, cooldowns, and cross-server syncing.
—
## ⚙️ How It Works
– Players can set homes using `/sethome` and teleport using `/home`
– Use `/homes` to open a GUI and manage all homes visually
– Each home can be edited (rename, relocate, set primary, change icon, or delete)
– Permissions control how many homes a player can have
– Optional cooldowns and teleport delays can be configured
– Supports SQLite (default) or MySQL for multi-server setups
– Fully asynchronous → no TPS impact
—
## 📋 Commands
– `/sethome [name]` → Set or update a home
– `/home [name]` → Teleport to a home (or primary home)
– `/delhome ` → Delete a home
– `/homes` → Open homes GUI
– `/homes ` → View another player’s homes (admin)
– `/homes add ` → Give extra home slots
– `/homes remove ` → Remove extra slots
– `/homes set ` → Set exact extra slots
– `/homes info ` → View home stats
– `/hfreload` → Reload config
– `/importhomes essentials` → Import homes from EssentialsX
Helios Admin
# 🛡️ HeliosAdmin
*Moderation • Player Management • Homes & Warps • Kits • World Backups • Live Web Dashboard*
> HeliosAdmin replaces **5–6 separate plugins** (essentials, ban systems, homes/warps, kits, backups) with **one unified plugin** that shares data, permissions, audit logs, and storage with every other Helios plugin via [HeliosCore](#).
| 🛡️ Moderation | 🧰 Player Tools | 🏠 QoL | 💾 Server Ops |
|:—|:—|:—|:—|
| Bans, mutes, IP bans | Freeze, heal, feed, fly, god | Homes, warps, spawn | Live web dashboard |
| Tempbans & tempmutes | Gamemode, vanish, speed | TPA / TPAHere | World backups + restore |
| Warnings & history | Invsee, ecsee, bring, goto | Kits | Audit log streaming |
| Punishment audit log | Whois, broadcast, kick | Customisable cooldowns | Hot reload |
> ⚠️ **HeliosCore is required.** HeliosAdmin will not start without it. After installing HeliosCore for the first time, you **must** run `/hcore setup` before HeliosAdmin’s dashboard features will work.
—
## 📥 Installation
“`text
1. Drop HeliosCore-x.y.z.jar → plugins/
2. Drop HeliosAdmin-x.y.z.jar → plugins/
3. Start the server (data folders & configs auto-generate)
4. Run /hcore setup (initialise dashboard owner — REQUIRED)
5. Edit plugins/HeliosAdmin/config.yml to taste
6. Run /hadmin reload
7. (Optional) Configure your permission plugin — see Permissions below
“`
That’s it. Every command and permission node is registered automatically.
> Everything else defaults to `false` — staff opt-in only.
### 💡 Suggested LuckPerms Setup
📋 Click to expand example LuckPerms commands
“`bash
# ────────────── Helper / Trial Mod ──────────────
/lp group helper permission set heliosadmin.command.kick true
/lp group helper permission set heliosadmin.command.mute true
/lp group helper permission set heliosadmin.command.tempmute true
/lp group helper permission set heliosadmin.command.unmute true
/lp group helper permission set heliosadmin.command.warn true
/lp group helper permission set heliosadmin.command.warnings true
/lp group helper permission set heliosadmin.command.history true
/lp group helper permission set heliosadmin.command.invsee true
/lp group helper permission set heliosadmin.command.ecsee true
/lp group helper permission set heliosadmin.command.vanish true
/lp group helper permission set heliosadmin.command.whois true
/lp group helper permission set heliosadmin.command.freeze true
# ────────────── Moderator ──────────────
/lp group mod parent add helper
/lp group mod permission set heliosadmin.command.ban true
/lp group mod permission set heliosadmin.command.tempban true
/lp group mod permission set heliosadmin.command.unban true
/lp group mod permission set heliosadmin.command.clearwarnings true
/lp group mod permission set heliosadmin.command.broadcast true
# ────────────── Admin (everything) ──────────────
/lp group admin permission set heliosadmin.admin true
“`
—
## 🌐 Web Dashboard
HeliosAdmin contributes a page to the **HeliosCore live dashboard**. From your browser you can:
– 📡 Stream **real-time audit logs** via SSE
– 💾 **Create, list, delete, and restore** world backups with one click
– 👥 See **live server status** and player counts
– 🔒 Access **role-gated actions** (`OWNER` / `ADMIN` / `STAFF`) configured in `config.yml`
> 💡 **First-time setup:** run `/hcore setup` to create the dashboard owner account. The dashboard will display a coloured prompt if you haven’t done this yet.
—
## ⚙️ Configuration
Key sections in `plugins/HeliosAdmin/config.yml`:
“`yaml
# Storage backend (inherits from HeliosCore by default)
storage:
inherit-core: true
# ━━━━━━━━━━━ Daily moderation ━━━━━━━━━━━
/ha ban Steve Griefing spawn
/ha tempban Steve 7d X-ray
/ha mute Alex 1h Spam in chat
/ha warn Alex Caps abuse
/ha history Alex
/ha freeze Steve
/ha invsee Alex
# ━━━━━━━━━━━ Player utilities ━━━━━━━━━━━
/sethome base
/home base
/warp shop
/tpa Alex
/kit starter
# ━━━━━━━━━━━ Server operations ━━━━━━━━━━━
/ha backup create world Pre-event
/ha backup list
/ha backup restore world_2026-05-08_14-30-00_Pre-event.zip
/ha audit 25
/ha reload
“`
—
## ❓ FAQ
Do I need HeliosCore?
Yes. HeliosCore provides storage, permissions, the dashboard, and the service registry every Helios plugin uses.
Will HeliosAdmin replace EssentialsX?
For most servers — **yes**. Homes, warps, kits, spawn, TPA, fly, gamemode, heal, feed, vanish, broadcast, kick, ban, mute, IP-ban — all built in.
Does it support LuckPerms / GroupManager / PEX?
Yes. Every permission node is registered in `plugin.yml` *and* advertised via HeliosCore’s `PermissionService`, so they appear automatically in your permission plugin’s tab-complete and admin UI.
Where are backups stored?
`plugins/HeliosAdmin/backups/__
Can I disable features I don’t want?
Yes — toggle each module under `features:` in `config.yml`.
Is the dashboard secure?
Yes — token-authenticated, role-gated, and you can rotate the token any time with `/hcore dashboard token regenerate`.
—
## 💬 Support
| Channel | Link |
|:———————|:——————————————-|
| 💬 **Discord** | [Helios Support Server](https://discord.gg/WQ5UYtGcYA) |
| 🐛 **Issue Tracker** | Use the **Discussion** tab on this resource|
| 📚 **Documentation** | Bundled `README.md` and `CONFIG_GUIDE.md` |
—
### 🛡️ HeliosAdmin
**Total server control, in one plugin.**
*Part of the Helios Ecosystem • Built on HeliosCore*
HatCosmetics is a plugin that provides a simple and user-friendly way to implement custom hat models on your server.
## 🌟 How is HatCosmetics Different?
HatCosmetics works with no interaction (just toggling resourcepacks) from the end users.
Distribution of hats is handled fully server-side, meaning compatibility and reproducibility with any client.
This is a key difference from mods, which require additional setup for each client.
## 📚 Wikipedia
A wiki page detailing usage, commands and permissions can be found [here](https://github.com/Supermarcel10/HatCosmetics/wiki).
## ⚖️ Licence
HatCosmetics is licensed under the [MIT Licence](https://github.com/Supermarcel10/HatCosmetics/blob/master/LICENSE).
GeyserVoice is a Java plugin designed to enhance the multiplayer gaming experience on Minecraft servers by integrating the [VoiceCraft](https://github.com/SineVector241/VoiceCraft-MCBE_Proximity_Chat/) Proximity Chat application. The plugin facilitates cross-platform communication, allowing players on both Java and Bedrock editions to seamlessly engage in proximity-based voice conversations.
### Usage – PLEASE READ!!!
This is a plugin that implements the Server Sided Positioning type from [VoiceCraft](https://github.com/SineVector241/VoiceCraft-MCBE_Proximity_Chat/).
So, all you need to know is that:
– All players need to install the VoiceCraft App (all players, so Java and Bedrock players).
Please read the [client installation wiki page](https://github.com/SineVector241/VoiceCraft-MCBE_Proximity_Chat/wiki/Installing-the-Client) on how to install the App.
– You need to have a VoiceCraft.Server running and reachable to the minecraft server and to all your players. Follow the [server installation wiki page](https://github.com/SineVector241/VoiceCraft-MCBE_Proximity_Chat/wiki/Installing-the-Server) instructions.
### Features
– Cross-Platform Communication:
GeyserVoice bridges the gap between Minecraft Java Edition and Bedrock Edition, enabling players on different platforms to communicate through the VoiceCraft Proximity Chat system.
– Immersive Proximity Chat:
Experience a more immersive and realistic gameplay environment with proximity-based voice chat. Engage in conversations with nearby players, enhancing teamwork and coordination.
### How It Works
Installation: Simply install the GeyserVoice plugin on your Minecraft Java server. Make sure to follow the setup instructions to integrate it seamlessly with the VoiceCraft Proximity Chat application.
### Getting Started
For detailed instructions on installing and configuring GeyserVoice, please refer to the [Wiki](https://github.com/mineserv-top/GeyserVoice/wiki/) section of this repository.
### Contributing
We welcome contributions from the community to improve and expand the functionality of GeyserVoice. If you have ideas, bug reports, or would like to contribute code, please check out our [Contribution](https://github.com/mineserv-top/GeyserVoice/wiki/Contribution) Guidelines.
### License
GeyserVoice is licensed under the MIT License. Feel free to use, modify, and distribute the plugin in accordance with the terms of the license.
### Proxy server support
GeyserVoice also supports usage with Velocity and Bungeecord networks. Just install the .jar on your proxy server and on your paper server(s). Be sure to edit the config of the paper server(s) to set `server-behind-proxy` to `true` and then reload using `voice reload`. P.s. You don’t need to set the server address, port and keys on the paper server(s), this is only needed on the proxy server.
GeyserUpdater
GeyserUpdater is the original plugin that downloads and applies new builds. It uses checksum validation to detect corrupted or modified (non-original) Geyser jar files for Spigot, BungeeCord, and Velocity, and can operate either manually or automatically.
**Note:** This is _NOT_ an official GeyserMC plugin. It is made to work with Geyser, but it is not maintained or produced by GeyserMC. If you need support with this plugin, please do not ask the Geyser developers — instead, please go to our Discord server which is linked above.
## Installation
Simply place the GeyserUpdater `*.jar` file in your server’s plugins folder and restart your server.
After you run the `/geyserupdate` command or enable auto-updating, GeyserUpdater will check the currently-installed version of Geyser. If it’s outdated, GeyserUpdater will automatically download the latest build of Geyser. Changes will only take place once the server has been shut down and restarted.
Please note that for BungeeCord and Velocity, if the server is not shut down cleanly, the new version of Geyser will **not** be applied.
GeyserPackSync
# GeyserPackSync
A Velocity/BungeeCord plugin that utilizes Geyser’s API to allow for per-server resource packs.
Example:
Lobby server with lobby resource pack, minigame server with minigame specific resource pack, etc.
### Current limitations
– Does not fully work with forced hosts, or when the player that’s logging back in to a server which is not the default server. Can be worked around with the kick option – or not.
Will fix in the future; the workaround would be a bit complex though.
### Installation
1. Download the latest release from the modrinth page/releases tab
2. Place the plugin in your Velocity/BungeeCord plugins folder
3. Restart your proxy
4. Configure the config file, specifically ip/port, and the servers. See the config file for more info!
5. Run `/reloadpacks` to reload the config, or restart the proxy.
6. Put the Bedrock edition resource packs in the folder with the name of the server they should be used on.
7. Restart the proxy, or run `/reloadpacks` to reload the config.
### Commands
– /reloadpacks – Reloads the config file and packs. Requires the `geyserpacksync.reload` permission.
– /packsyncreload – Alias for /reloadpacks; same permission.
For help with this project: https://discord.gg/WdmrRHRJhS
### DISCLAIMER: While this project is made to work with Geyser (literally requires geyser), it is not an official one – for help, ask in issues on GitHub or on the linked discord.
### How does it work?
Bedrock edition is… weird. It only allows resource packs to be sent once – before actually logging in to a server.
We also cannot disable/enable resource packs on the fly.
To work around this, this plugin sends the default resource pack(s) on login, and then sends the server specific resource pack(s) on server switch.
This means that the player will have to log out and back in to get the new resource pack(s) – which is done automatically with a transfer packet.
GeyserFloatingPoints
Workaround to fix floating-point precision (distance effect) on Bedrock when at high coordinate.
### ⚠️WARNING: THIS IS NOT AN PLUGIN, IT’S AN GEYSER EXTENSION, PLEASE GO INTO YOUR GEYSER FOLDER AND DROP IT INTO THE _extensions_ folder.
## What this do actually?
– On Bedrock, there is a thing called [distance effect](https://bugs.mojang.com/browse/MCPE/issues/MCPE-101723), the further away you move from spawn, the worse the gameplay is. This is especially annoying and even worse for crossplay server players where most of the time, they do have to move far away from spawn, making the crossplay experience through Geyser a lot worse than it have to.
– => This extension “fixed” that by spoofing the player position, making it seems like on the Bedrock players side they never moved too far away from spawn but on the Java side, they did!
## Commands
– `/geyserfloatingpoints position` – Toggle on/off actionbar that show your real position.
## Drawbacks
– You won’t be able to see your real position since your position is always spoofed.
– Bugs are bound to happened, feel free to report ems 🙂
## Other cool Geyser-related project to check out.
– [Boar](https://modrinth.com/plugin/boar) – One of the most promising anticheat for GeyserMC at the moment (still in early development).
– [GeyserReversion](https://modrinth.com/mod/geyserreversion) – Like ViaVersion.. But for Bedrock!
– [GeyserExtras](https://modrinth.com/plugin/geyserextras) – Implemented a lot of bug fixes and other cool thing that works with Geyser!
– [Geyser Recipe Fix](https://modrinth.com/plugin/geyser-recipe-fix) – Implemented a cool fix for anvil and other related stuff.
Geyser and Floodgate auto uploader
# GeyserUpdater
An automatic updater plugin for GeyserMC / Floodgate. Supports Spigot (and forks like Paper), BungeeCord, and Velocity.
Features
– Fetches the latest stable versions of GeyserMC and Floodgate from the Jenkins/download API and overwrites the existing JARs in the plugins directory
– Fetches the latest MCXboxBroadcast (from Modrinth) and places it in the Geyser extensions folder (optional)
– Automatic update checks
– On server startup
– At a specified interval (e.g., every 12 hours)
– When a player with a specific permission logs in (can be enabled/disabled)
– Manual command: /geyserupdate (Permission: geyserupdater.admin)
– Configurable language, messages, targets, intervals, and restart commands
Build
– Prerequisites: Java 17, Maven 3.8+
– Instructions:
– Run `mvn package` in the directory where you cloned the repository
– Artifacts:
– `spigot/target/GeyserUpdater-Spigot-1.0.0.jar`
– `bungee/target/GeyserUpdater-Bungee-1.0.0.jar`
– `velocity/target/GeyserUpdater-Velocity-1.0.0.jar`
Installation
– Place the appropriate JAR for your server platform into the plugins folder
– Start the server to generate the `config.yml` file (it will be identical to the default config included in this README)
– The plugin automatically detects existing Geyser / Floodgate JARs by searching for files in the plugins directory that contain “geyser” or “floodgate” in their names
– If no existing JARs are found, it will create new ones with standard names (e.g., `Geyser-Spigot.jar`, `floodgate-velocity.jar`)
Configuration File (`config.yml`)
– `enabled`: Enables or disables the plugin
– `language`: Language setting (`ja` / `en` / `de` / `ko`, default: `ja`)
– `checkOnStartup`: Enables or disables the update check on startup
– `periodic.enabled`: Enables or disables the periodic update check
– `periodic.intervalHours`: The interval for periodic checks (in hours)
– `adminLogin.enabled`: Enables or disables the update check when a privileged player logs in
– `adminLogin.permission`: The permission that triggers the check on login (default: `geyserupdater.admin`)
– `targets.geyser | targets.floodgate | targets.mcxboxbroadcast`: Choose which plugins to update
– `postUpdate.notifyConsole`: Notifies the console after an update
– `postUpdate.notifyPlayersWithPermission`: Sends an in-game chat notification to players with permission
– `postUpdate.runRestartCommand`: Automatically executes a restart command after an update
– `postUpdate.restartCommand`: The restart command to execute (e.g., `restart` or `end`)
– `messages..*`: Customize messages (e.g., `messages.ja.*`)
– For compatibility, `messages.*` is also read when `language=ja`
How it Works
– Download URLs:
– Geyser: `https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/{platform}`
– Floodgate: `https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/{platform}`
– MCXboxBroadcast: `https://api.modrinth.com/v2/project/mcxboxbroadcast/version`
– `{platform}` is `spigot` | `bungeecord` | `velocity`
– The latest JAR is downloaded to a temporary file and its SHA-256 hash is compared with the existing JAR
– If the hashes are identical, it is considered “up to date,” and the file is not replaced
– If they differ, the existing file is overwritten using an atomic replacement operation
– A server or proxy restart is required after an update is applied
– To enable automatic restarts, set `postUpdate.runRestartCommand` to `true` and configure `restartCommand` to match your environment
– MCXboxBroadcast is placed in the Geyser extensions folder
– Example: `plugins/Geyser-Spigot/extensions`
Notes / Known Limitations
– If a download fails due to network issues or other errors, the existing plugin files will not be affected
– The plugin cannot detect Geyser/Floodgate files if they have unusual names or are not located directly within the plugins folder (it only scans for *.jar files in the root of the plugins directory)
– MCXboxBroadcast is always placed in `plugins/Geyser-Spigot/extensions`
– The plugin does not display version numbers; it relies solely on hash comparison to determine if an update is available