VelocityShield

# VelocityShield 🛡️

A powerful VPN detection plugin for Velocity proxy servers that helps protect your network from unwanted VPN connections.

[![License](https://img.shields.io/github/license/jackh54/velocityshield)](LICENSE)
[![Java](https://img.shields.io/badge/Java-17-orange.svg)](https://www.oracle.com/java/)
[![Velocity](https://img.shields.io/badge/Velocity-3.4.0-blue.svg)](https://www.velocitypowered.com/)

## Features ✨

– **Dual VPN Detection**: Uses both proxycheck.io and ip-api.com for reliable VPN detection
– **Smart Fallback System**: Automatically switches between services if one fails
– **Efficient Caching**: Reduces API requests with configurable cache duration
– **Whitelist System**: Easily manage trusted IPs
– **Detailed Logging**: Track VPN detection events with timestamps
– **Modern Text Formatting**: Beautiful messages using Adventure’s text components
– **Permission System**: Control access to commands and bypasses
– **Configurable**: Highly customizable through config.yml

## Installation 📥

1. Download the latest release from the [Releases](https://modrinth.com/plugin/velocityshield/versions) page
2. Place the JAR file in your Velocity server’s `plugins` directory
3. Start or restart your Velocity server
4. Configure the plugin in `plugins/velocityshield/config.yml`

## Configuration ⚙️

“`yaml
# API Configuration
proxycheck-api-key: “YOUR_PROXYCHECK_API_KEY”

# VPN Detection Settings
use-proxycheck-as-primary: true
enable-fallback-service: true
allow-join-on-api-failure: true

# Cache Settings
enable-cache: true
cache-duration: 10
cache-time-unit: “SECONDS” # Options: SECONDS, MINUTES, HOURS, DAYS

# Debug Settings
enable-debug: false
“`

## Commands 🎮

| Command | Description | Permission |
|———|————-|————|
| `/velocityshield` or `/vshield` | Reload the plugin configuration | `velocityshield.reload` |
| `/vshieldwhitelist` or `/vshieldwl` | Manage whitelisted IPs | `velocityshield.whitelist` |

### Whitelist Commands
– `/vshieldwhitelist add ` – Add an IP to the whitelist
– `/vshieldwhitelist remove ` – Remove an IP from the whitelist

## Permissions 🔑

| Permission | Description |
|————|————-|
| `velocityshield.reload` | Allows reloading the plugin configuration |
| `velocityshield.whitelist` | Allows managing the IP whitelist |
| `velocityshield.bypass` | Allows bypassing VPN detection |

## API Integration 🤝

VelocityShield uses two VPN detection services:

1. **proxycheck.io** (Primary)
– Requires API key
– More accurate detection
– Higher rate limits with API key

2. **ip-api.com** (Fallback)
– Free to use
– No API key required
– Lower rate limits

## Performance Optimization 🚀

– **Caching**: Reduces API requests by caching results
– **Rate Limiting**: Prevents API service overload
– **Async Processing**: Non-blocking VPN checks
– **Efficient Cleanup**: Automatic cache maintenance

## Support 💬

– Create an issue for bug reports or feature requests
– Join our [Discord server](https://discord.gg/CzJvE4G5cU) for community support

## Credits

– [Velocity](https://www.velocitypowered.com/) – The proxy server
– [proxycheck.io](https://proxycheck.io/) – Primary VPN detection service
– [ip-api.com](https://ip-api.com/) – Fallback VPN detection service
– [Adventure](https://docs.advntr.dev/) – Text formatting library

Made with ❤️ by [PandaDevv](https://github.com/jackh54)

*This plugin uses [bStats](https://bstats.org/plugin/velocity/VelocityShield/25843)*

VelocityResourcepacks

###### ![https://i.imgur.com/O6LAUDf.png](https://i.imgur.com/O6LAUDf.png) Made in Germany with love (and [beer](https://s.moep.tv/beer))

######

![Velocity Resourcepacks Logo](https://i.phoenix616.dev/hqLoZwBh.png)

_Did you ever want to set one Server Resource Pack for your whole Velocity network? Or set a different pack for a couple of your servers behind your Velocity proxy and got annoyed by Minecraft re-downloading the same pack while switching servers? Then you came to the right place!_

This plugin lets you set one Server Resource Pack for you whole Velocity without the need to set them on your lobby server which would result in the client re-downloading the pack even when it already had it enabled!

It also has the ability to set the pack for each server individually and it even detects if the server behind the Velocity has send a pack itself and resets the pack to the global or server’s pack if the player switches to another server!

You can use my [Bungee Resourcepacks](https://modrinth.com/plugin/bungeeresourcepacks) plugin if you use the BungeeCord proxy and [World Resourcepacks](https://modrinth.com/plugin/worldresourcepacks) if you are looking for a Spigot/Paper version. It lets you set the pack per world and is compatible with this one.

**Please check if there are newer [development builds](https://ci.minebench.de/job/resourcepacksplugins/) before reporting issues!**

> Please note that the Vanilla Minecraft client only applies server resource packs that are smaller than **250MiB**! (50MiB before 1.15, 100MiB before in 1.18)
>
> Also certain new **SSL certificates** for URLs (like Let’s Encrypt) do not work with the old Java version shipped with Minecraft (Java 1.8.0_51, [a bug report](https://bugs.mojang.com/browse/mc-143768) regarding that has been filed with Mojang) so you’ll have to either use a different certificate or a non encrypted download (not recommended!)

**Note:** This plugin only works on clients with versions above 1.8!

### **Features**

* Set different server resourcepacks per server or whole Velocity network
* Multiple pack support (on 1.20.3+)
* Sending the pack before the player joins the server (on 1.20.3+)
* Match server names with regex!
* Commands to configure the plugin ingame
* Language system with messages depending on the locale of the client
* Simplified compoment/json message formatting syntax ([MineDown](https://wiki.phoenix616.dev/library:minedown:syntax))
* Configurable delay before sending the pack to a player
* Remembers which pack a user has currently applied and doesn’t resend on server switch (broken on 1.20.2, 1.20.3+ has that fixed)
* Let the user set the pack himself. The pack can be re-applied on each login and will be used for resets on servers that don’t have the pack
* Inform the user which pack the server send them if it was done automatically
* [ResourcePackSendEvent](https://docs.phoenix616.dev/resourcepacksplugins/de/themoep/resourcepacksplugin/velocity/events/resourcepacksendevent.html) and [ResourcePackSelectEvent](https://docs.phoenix616.dev/resourcepacksplugins/de/themoep/resourcepacksplugin/velocity/events/resourcepackselectevent.html) for developers to react on the sending or selecting of a pack in their own plugins
* Send the correct pack format depending on the client’s version with pack-variants either via the version, protocol number or pack format id.
* Automatically generates the sha1 hashes!
* Compatible with [AuthMe Reloaded](https://www.spigotmc.org/resources/authme-reloaded.6269/), AuthMeVelocity, [OpenLogin](https://www.spigotmc.org/resources/openlogin-1-7x-1-19x.57272/), NLogin, [LibrePremium](https://www.spigotmc.org/resources/librepremium-proxy-authorization-plugin-automatic-login-2fa.101040/), JPremium.
Do you need it to be compatible with more plugins? [Contact me](https://github.com/phoenix616/resourcepacksplugins/issues/new)!

### **Commands**
To execute every /vrp command you need the `velocityresourcepacks.command` permission!

**/vrp reload [resend]** – `velocityresourcepacks.command.reload` – Reloads the config file; resends the packs to every online player if the 2nd argument is “resend”

**/vrp version** – `velocityresourcepacks.command.version` – Shows the version of this plugin

**/vrp generatehashes** – `velocityresourcepacks.command.generatehashes` – Manually generate the resource pack hashes

**/vrp addpack ** – `velocityresourcepacks.command.addpack` – Add a new pack

**/vrp pack ** – `velocityresourcepacks.command.pack` – View and edit an existing pack

**/vrp listassignments** – `velocityresourcepacks.command.listassignments` – View all server assignments

**/vrp deleteassignment ** – `velocityresourcepacks.command.deleteassignment` – Delete a server assignment

**/vrp assignment ** – `velocityresourcepacks.command.assignment` – View and edit a server assignment

**/vrp globalassignment** – `velocityresourcepacks.command.globalassignment` – View and edit the global assignment

**/resetpack [] []** – `velocityresourcepacks.command.resetpack` – Reset the pack (of a player) to the empty one or the stored pack. (Like what would happen if you joined a server without any pack) If is set to false the stored pack of the player is reset too.

To execute every /usepack command you need the `velocityresourcepacks.command.usepack` permission!

To execute it for other players you need `velocityresourcepacks.command.usepack.others`!

To have access to a specific pack a player needs the `velocityresourcepacks.pack.` permission or the one defined for the pack in it’s config section!

**/usepack** – List all packs available to you

**/usepack []** – Send a specific pack to yourself or another player

### **Config**

The config.yml allows you to configure everything you can do set up via the commands and a lot more, take a look at the commands in the [file on GitHub](https://github.com/phoenix616/resourcepacksplugins/blob/master/velocity/src/main/resources/velocity-config.yml) for an explanation on all options! (Some might only be available on the [latest development builds](https://ci.minebench.de/job/ResourcepacksPlugins/)!

### **About the client freeze**
> **This should no longer be an issue starting with 1.20.3!**

When a server resource pack is send to a client it will shortly freeze after the download is complete. (Same as manually applying a local pack) This happens because the client has to reload all resources, check which resources overlap and do some other calculation and manipulation with them. (Like stitching all the textures together to a single image like they were in the first texture pack format) It’s not a download issue as the client will locally cache the pack files and not re-download them if their hash didn’t change.

How long this takes generally depends on the PC’s performance and the size of the textures (HD packs take longer) that are used in all resource packs that the player has applied. (So even if the server resource pack doesn’t contain any HD textures or textures at all the client will still completely reload all locally applied resource packs) This is something that has to be fixed in the client by Mojang for example by only reloading resources that changed.

**1.14, 1.15 and 1.16 have some major improvements there and 1.20.3 basically fixed it all so suggest players to use these if they have issues with your server resourcepack!**

### **Dev-Resources**
The source is available on [GitHub](https://github.com/phoenix616/resourcepacksplugins) and licensed under the [GPLv3](https://github.com/phoenix616/resourcepacksplugins/blob/master/license).
Development builds can be found on the Minebench.de [Jenkins](http://ci.minebench.de/job/resourcepacksplugins/).
There are also some [Javadocs](http://docs.phoenix616.dev/resourcepacksplugins/) if you intend to develop plugins based on mine.

### **Support**
You can receive support in the [resource discussion thread on PaperMC](https://forums.papermc.io/threads/velocityresourcepacks.30/), the [GitHub issue tracker](https://github.com/phoenix616/resourcepacksplugins/issues), [my IRC channel](https://irc.phoenix616.dev/), or [my Discord](https://phoenix616.dev/discord).

#####

*This resource is distributed without any warranty or liability by the author. Read more about it [here](https://github.com/Phoenix616/ResourcepacksPlugins/blob/master/LICENSE#L589-L610)*

VelocityReport

[![image](https://i.imgur.com/46IouRo.png)](https://github.com/Syrent/VelocityReport)
[![image](https://i.imgur.com/J9wNr1T.png)](https://modrinth.com/plugin/velocityvanish)
[![image](https://i.imgur.com/I5r8RZg.png)](https://modrinth.com/plugin/enhancedvelocity)
[![image](https://i.imgur.com/B4jL8Hr.png)](https://discord.gg/SW3NeujBmh)

## Easy to install
There isn’t that many usable Report plugin out there and there is an almost zero usable report plugin for Velocity networks. VelocityReport also supports multiple platforms like Spigot, Paper, Purpur, etc… as a back-end server.
## Feature packed
Everything you want and need from a report plugin for your Minecraft server is right here! There are a lot of features like BookGUI, different report stages, rewards, RGB/gradient/component messages, custom report reasons, and much more…
Also, there is a bunch of API methods and events that you can use to create addons for the plugin and add new features.
## Quality support
You’re able to [join our Discord](https://discord.gg/VZk2XU3kFg) and get help very quickly, up to instantly.
## Up to date
The plugin is not abandoned. It is constantly getting updated to fix reported bugs and get new optimizations that can help it run as smoothly as possible, whilst still doing what you want it to do.
## Multiple database types
You can use MySQL and SQLite as your database type.
## High performance
Unlike other plugins where “high performance” often means your CPU usage will be high, VelocityReport has an async database update that means there is no lag spike and high thread loads on your server.

VelocityPteroPower

# VelocityPteroPower
![Static Badge](https://img.shields.io/badge/Velocity-green)
[![forthebadge](https://forthebadge.com/images/badges/works-on-my-machine.svg)](https://forthebadge.com)


buymeacoffee





Please join the Discord if you have questions or for support!

**Manage your game servers with ease!** VelocityPteroPower connects your Velocity proxy to Pterodactyl, Pelican Panel, or Mc Server Soft, allowing for dynamic starting and stopping of your game servers.

**For detailed information on configuration, commands, and permissions, please visit our [Docs Page](https://docs.pluginz.dev/).**

## Key Features
– **Multi-Panel Support**: Works with Pterodactyl, Pelican Panel, and Mc Server Soft.
– **Dynamic Server Management**:
– Automatically start servers when a player attempts to connect.
– Automatically stop idle servers after a configurable timeout.
– Manual control via commands (`/ptero start`, `/ptero stop`, `/ptero restart`).
– **Whitelist Integration**:
– Fetch and enforce server whitelists from Pterodactyl/Pelican panels.
– Reload whitelists on the fly with `/ptero whitelistReload`.
– **Efficient & Safe**:
– Respects panel API rate limits (Pterodactyl/Pelican/Mc Server Soft).
– Handles forced host connections, redirecting players to a limbo server.
– **Update Notifications**: Stay informed about new plugin versions.
– **Configurable**:
– Fine-tune server startup/shutdown behavior.
– Customize logging levels.
– Per-server settings for timeouts, join delays, and whitelist enforcement.

## Commands
– `/ptero start `
– `/ptero stop `
– `/ptero restart `
– `/ptero reload`
– `/ptero whitelistReload`
– `/ptero stopIdle`
– `/ptero forcestopall`

## Permissions
– `ptero.start`
– `ptero.stop`
– `ptero.restart`
– `ptero.whitelistReload`
– `ptero.reload`
– `ptero.stopIdle`
– `ptero.forcestopall`
– `ptero.bypass` (to bypass VPP whitelist checks if enabled)

## Installation
1. Download the latest `.jar` file from [Modrinth](https://modrinth.com/plugin/velocitypteropower).
2. Place the `.jar` file into your Velocity server’s `plugins` folder.
3. Restart your Velocity server.
4. Configure the plugin by editing `config.yml` in the `plugins/VelocityPteroPower` folder. **See the [Docs Page](https://docs.pluginz.dev/) for detailed configuration instructions.**

## Support
For issues, suggestions, or help, please [open an issue on GitHub](https://github.com/TubYoub/VelocityPteroPower/issues/new) or join our [Discord Server](https://discord.pluginz.dev).

## Contributing
Interested in contributing? Join our [Discord](https://discord.pluginz.dev) to discuss your ideas or submit a pull request!

## License
This project is licensed under the [MIT License]([https://github.com/Tubs-Pluginz/VelocityPteroPower/blob/dev/LICENSE).

[![forthebadge](https://forthebadge.com/images/badges/powered-by-black-magic.svg)](https://forthebadge.com)

VelocityPlayerListQuery

# VelocityPlayerListQuery

A Velocity plugin that shows current players in the server list.

Inspired by .

## Configuration options

| option | default | description |
| ————————– | ————- | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————– |
| `playerListMode` | `”REPLACE”` | Configure how players are shown in the player list.

|
| `serverListEntryFormat` | `”%1$s”` | Configure how players are shown in the server list.

|
| `maxListEntries` | `16` | Configure how many players are shown in the server list. `<= 0` for unlimited (for backwards compatibility). | | `replaceOnlinePlayerCount` | `false` | Should the online player count be replaced with the number of players currently connected to Velocity? Useful when using `ping-passthrough = "all"`. | | `replaceMaxPlayerCount` | `false` | Should the maximum player count be replaced with the Velocity configured amount? Useful when using `ping-passthrough = "all"`. | | `fillMissingVersionInfo` | `false` | Should the version information be replaced with what is set in `versionProtocol` and `versionName`, when no version is detected? Useful when the backend server/s is/are unavailable or still starting. |
| `replaceVersionInfo` | `false` | Should the version information always be replaced with what is set in `versionProtocol` and `versionName`? Extends `fillMissingVersionInfo`. Useful when using `ping-passthrough = “all”`. |
| `versionProtocol` | `4` (= 1.7.2) | The protocol number to be set. You can find all available protocol versions at . Used by `fillMissingVersionInfo` and `replaceVersionInfo`. |
| `versionName` | `”Velocity”` | The version name to be set. Used by `fillMissingVersionInfo` and `replaceVersionInfo`. |

Velocity Discord

# Velocity Discord

Chat from all servers gets bridged with a discord channel

## Features

– Configurable
– Webhooks or embeds or normal text for messages
– Player count in bot status
– List command
– Templating syntax for all messages
– Death and Advancement messages shown
– Server start/stop messages
– Server status in channel topic
– Reload command for config changes while the server is running

> **Note**
> This requires a [companion Velocity plugin](https://github.com/unilock/YepLib)
> and [companion backend mod/plugin](https://github.com/unilock/YepTwo) for advancement/death messages

## Installation

1. Create a bot application [here](https://discordapp.com/developers/applications/)
– Go to the `Bot` tab and click `Add bot`
2. Enable the `SERVER MEMBERS INTENT` and `MESSAGE CONTENT INTENT` under `Privileged Gateway Intents`
3. Copy the bot’s token, you might have to click `Reset Token` first
4. Install the plugin on your server, start the server once, then stop the server again
5. Open the plugin config file at `plugins/discord/config.toml`
6. Under `[discord]`, paste your token in place of `TOKEN`
7. Under `[discord]`, paste the channel id you want to use
– To get a channel id, you have to enable developer mode in Discord
– Open Discord settings, go to `Advanced`, then turn on `Developer Mode`
– Now right-click the channel you want to use and click `Copy ID`
8. Set any additional config options you want
9. Start the server and check if it works

### For Webhooks

1. Create a webhook in the channel you want to use
– Right-click the channel, click `Edit Channel`, go to `Integrations`, click `Create Webhook`
– Copy the webhook URL
2. Paste the webhook URL under `[discord.webhook]` in the config file

### For advancements/deaths

1. Install the [YepLib](https://github.com/unilock/YepLib) velocity plugin alongside this plugin
2. Install the [YepTwo](https://github.com/unilock/YepTwo) backend mod/plugin on each of your backend servers that you want to
receive advancements/deaths from

### Configuration

The config file is generated at `plugins/discord/config.toml`. See [here](https://github.com/fooooooooooooooo/VelocityDiscord/wiki/Configuration) for the default config

VelocityCoolList

### [Hangar page](https://hangar.papermc.io/atikiNBTW/VelocityCoolList)

VelocityCoolList is a simple and easy-to-use plugin for Minecraft Velocity servers that allows you to create a whitelist based on nicknames.

## Commands and permissions
The main command is “`/vclist“`, it shows you information about VelocityCoolList, below are its arguments:
| Argument| Description | Permission |
|———|——————————————-|—————|
| enable | Enables whitelist. | vclist.admin |
| disable | Disables whitelist. | vclist.admin |
| add | Add player to the whitelist. | vclist.manage |
| remove | Remove player from the whitelist. | vclist.manage |
| list | Gives you a list of whitelisted players. | vclist.manage |
| reload | Reload plugin. | vclist.admin |
| clear | Clears the whitelist. | vclist.manage |
| status | Get the status of the plugin. | vclist.admin |

Aliases: “`/vcl“`, “`/velocitycoollist“`

## Colors and formatting
This plugin supports MiniMessage modern formatting, which allows you to make gradients and many other things.
Here is what this formatting supports, its documentation is in config and [here](https://docs.advntr.dev/minimessage/format.html#standard-tags)!

![picture1](https://docs.advntr.dev/_images/rainbow_1.png) ![picture2](https://docs.advntr.dev/_images/newline_1.png) ![picture3](https://docs.advntr.dev/_images/insertion_1.png)

VelocityChat

# VelocityChat

– [中文](https://github.com/MapleDust/VelocityChat/blob/v1.8/README.md)
– English

A Cross-server chat plugin for Velocity proxy

## Features

– Cross-server chat
– (configurable, default true) Enable color code
. check [Minecraft Wiki](https://minecraft.wiki/w/Formatting_codes) for
more information
, use `&` instead of `§` in game.
– `/vchat local` Send local message (to current server), alias (configurable) `/lc`.
– `/vchat broadcast` Send global message, alias (configurable) `/br`.
– Message of player joined, left and switch server.
– (configurable, default false) Send sample players when client refreshing multiplayer games.
– (configurable, default false) Show all proxy players on tab list.
– (configurable, default true) enable command `glist`.
– (configurable, default true) enable default global chat.
– (configurable) Send local message if chat message is starts with matched string.
– (configurable) translations

## Files

Locate in `plugins/VelocityChat`

### Configuration `config.toml`

– See in the file

### Langs

#### Default `langs/default/*.properties`

– The default language file is now forced to refresh

#### Custom `langs/custom/*.properties`

– You can replace any default translation here.

Some of the translations:

– Fallback chat format:`qu_an.chat.message.chat.default=`

– Server exclusive chat format:`qu_an.chat.message.chat.server.=`
– Examples:
– `qu_an.chat.message.chat.server.lobby=§8[§r{0}§8|§r{1}]§r<{2}§r> {3}`
– `qu_an.chat.message.chat.server.survival=§8[§r{0}§8]§r<{2}§r> {3}`
– Use fallback chat format if missing.

– Server name:`qu_an.chat.server.name.=`
– Examples:
– `qu_an.chat.server.name.lobby=Lobby`
– `qu_an.chat.server.name.survival=§aSurvival Server`
– Use server id if missing.

VelocityBlockVersion

VelocityBlockVersion

modrinth
hangar
velocity
ghpages
discord-singular
buymeacoffee-singular

A simple Velocity plugin to whitelist/blacklist versions from connecting to your network. This let’s you block or allow certain versions.

## Features
* Whitelist/blacklist versions from connecting.
* Custom disconnect message.

## Documentation
Visit the [wiki](https://docs.hyper.lol/plugins/velocityblockversion/about/) for help.

## License
This plugin is released under GNU General Public License v3. See [LICENSE](https://github.com/hyperdefined/VelocityBlockVersion/blob/master/LICENSE).

Velocity Web API

# Velocity Web API

![Release](https://img.shields.io/badge/release-compiled-blue)
![License](https://img.shields.io/badge/license-MIT-blue)

![Screenshot](https://2lz.pro/assets/github/vwapiss2.png)

Lightweight HTTP API for Velocity proxies. Expose player lists, per-server counts, per-player details, etc. Ideal for websites, bots or other monitoring applications. I built it for my own uses, but it might help someone else out too.

## Quick Install

– Drop the compiled plugin JAR into your Velocity `plugins/` folder.
– Start (or restart) your proxy; the plugin will create its data folder and a `config.cfg` (if missing) in the plugin data directory.

## Configuration

– The plugin creates a `config.cfg` in its data folder on first run. Available keys:
– `port` : port the HTTP server listens on (default `25576`).
– `bindAddress` : interface/address to bind the HTTP server (default `0.0.0.0` to listen on all IPv4 interfaces; set to `127.0.0.1` for local-only access).
– `checkUpdates` : enable automatic Hangar update checks (default `true`).
– `snapshotUpdates` : include snapshot/unstable updates in checks (default `false`).
– `debugEnabled` : show debug messages (`logger.debug`) in the proxy console when `true` (default `false`).
– `allowedOrigins` : CORS allowed origins for HTTP API access (comma-separated, or * for all) (default `*`).

## Tested With

– Velocity 3.x (expects `velocity-api` on the runtime classpath)

## Endpoints

All JSON endpoints return `Content-Type: application/json; charset=utf-8` unless otherwise noted.

– `/`
– Serves the embedded `index.html` (browser-friendly).
– Example URL: `http://localhost:25576/`

– `/playerlist`
– Purpose: list connected players with basic metadata and a total count.
– Example URL: `http://localhost:25576/playerlist`
– Sample response:

“`json
{
“count”: 2,
“players”:
[
{“username”:”Alice”,”uuid”:”…”,”currentServer”:”lobby”},
{“username”:”Bob”,”uuid”:”…”,”currentServer”:”minigames”}
]
}
“`

– `/count`
– Purpose: return the total number of connected players.
– Example URL: `http://localhost:25576/count`
– Sample response:
“`json
{
“count”: 42
}
“`

– `/player/` or `/player?username=`
– Purpose: fetch detailed info for a connected player (exact-case lookup).
– Example URLs:
– `http://localhost:25576/player/Notch`
– `http://localhost:25576/player?username=Notch`
– Notes: returns `400` if username is missing; `404` if the player is not connected.
– Sample response:

“`json
{
“username”:”Notch”,
“uuid”:”…”,
“currentServer”:”lobby”,
“ping”:42,
“sessionDurationSeconds”:360
}
“`

– `/servers`
– Purpose: returns a mapping of server names to player counts.
– Example URL: `http://localhost:25576/servers`
– Sample response:
“`json
{
“lobby”: 5,
“minigames”: 12
}
“`

– `/health`
– Purpose: lightweight health check for monitoring.
– Example URL: `http://localhost:25576/health`
– Sample response:
“`json
{
“status”: “ok”
}
“`

## Commands

– `/vwapi reload` : reloads the `config.cfg` from the plugin data directory and restarts the HTTP server if the `port` or `bindAddress` have changed.
– `/vwapi version` : prints the plugin version (from the plugin metadata).
– `/vwapi debug [on|off]` : toggle or explicitly set debug logging at runtime. When enabled, the plugin prints detailed debug messages and HTTP access lines to the console.
– `/vwapi status` : shows the current HTTP server status (running/not running), the bound host and port, and an example URL you can visit (falls back to `localhost` when bound to all interfaces).
– `/vwapi help` : prints a short help listing the available `/vwapi` subcommands and usage examples.

## Permissions

– `vwapi.admin` : required to use the `/vwapi` commands.

## Notes & Behavior

– Player lookup is exact-case and only returns connected players.
– The HTTP server binds to `bindAddress`; by default this is `0.0.0.0` (all interfaces). Change to `127.0.0.1` for local-only access or a specific IP if desired.
– When you change `bindAddress` or `port` and run `/vwapi reload`, the plugin will restart the HTTP server automatically to apply the new bind/port (a full proxy restart is no longer required for those changes).

## Troubleshooting

– If the HTTP server does not start, check the proxy logs for errors about port binding or resource issues.
– Ensure `velocity-api` is available at runtime and that the plugin is placed in the correct `plugins/` folder.

## License & Support

– Licensed under the MIT License.
– If you need any help or support, please contact me on [our Discord](https://discord.2lz.pro/).