VeloAuth

VeloAuth

# VeloAuth

[![Modrinth](https://img.shields.io/badge/Modrinth-00AF5C?style=for-the-badge&logo=modrinth&logoColor=white)](https://modrinth.com/plugin/veloauth)
[![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/e2RkPbc3ZR)
[![License](https://img.shields.io/github/license/rafalohaki/veloauth?style=for-the-badge)](LICENSE)
[![bStats](https://img.shields.io/badge/bStats-Tracked-blue?style=for-the-badge)](https://bstats.org/plugin/velocity/VeloAuth)

**Complete Velocity authentication plugin** with intelligent nickname protection, premium auto-login, and secure offline player management.

## What is VeloAuth?

VeloAuth is a comprehensive authentication system for Velocity proxy that handles all player authorization before they reach your backend servers. It works with any limbo server to provide a smooth login experience while protecting nickname ownership through intelligent conflict resolution.

## Key Features

– 🔒 **Intelligent Nickname Protection** – Premium nicknames are reserved unless already registered by cracked players
– ⚡ **Premium Auto-Login** – Mojang account owners skip authentication automatically
– 🔄 **Automatic Nickname Change Detection** – Detects when a premium player renames their Mojang account and updates the database record automatically
– 🛡️ **Secure Offline Auth** – BCrypt password hashing with brute-force protection
– 📱 **Optional Floodgate Support** – Bedrock players can bypass the auth server when Floodgate integration is enabled
– 🗺️ **Forced Hosts Support** – Players connect via custom domains (e.g., `pvp.server.com`) and are properly routed to their intended server *after* authentication
– 🚫 **Smart Command Hiding** – Authentication commands (`/login`, `/register`) are completely hidden from tab-completion once the player is logged in
– 🚀 **High Performance** – Three-layer premium resolution cache: in-memory → database → external API, with 24-hour premium status retention
– 🔄 **Conflict Resolution** – Smart handling of premium/cracked nickname conflicts
– 📊 **Admin Tools** – Complete conflict management with `/vauth conflicts`
– 🗄️ **Multi-Database** – MySQL, PostgreSQL, H2, SQLite
– 🌍 **17 Languages** – EN, PL, DE, FR, RU, TR, SI, FI, ZH_CN, ZH_HK, JA, HI, VI, KO, TH, ID, PT_BR
– 🔄 **LimboAuth Compatible** – 100% database compatibility (no migration needed)
– 📢 **Discord Alerts** – Webhook notifications for security events
– 🧵 **Virtual Threads** – Built on Java 21 for maximum performance
– 📈 **bStats Analytics** – Anonymous usage statistics via bStats

## Requirements

– **Java 21 or newer**
– **Velocity proxy** (API 3.4.0+)
– **Limbo server**: NanoLimbo, LOOHP/Limbo, LimboService, PicoLimbo, hpfxd/Limbo, or any other
– **Database**: MySQL, PostgreSQL, H2, or SQLite

## Quick Setup

### Installation

1. Download VeloAuth from Modrinth
2. Place the file in your Velocity `plugins/` folder
3. Start Velocity – the plugin will create a `config.yml` file
4. Stop Velocity and configure your database and auth server name in `plugins/VeloAuth/config.yml`
5. Restart Velocity

**Note:** Floodgate support is disabled by default. Enable it only if you actually use Geyser/Floodgate.

### Velocity Config

Configure your `velocity.toml` with your limbo/auth server and backend servers:

“`toml
[servers]
limbo = “127.0.0.1:25566” # Auth/limbo server (NanoLimbo, LOOHP/Limbo, etc.)
lobby = “127.0.0.1:25565” # Typical backend server
survival = “127.0.0.1:25567” # Another backend server

try = [“lobby”, “survival”] # Order matters. Do NOT put ‘limbo’ here.

[forced-hosts]
# VeloAuth fully respects Velocity’s forced hosts!
# Players connecting via this IP will be sent to limbo to login,
# and then seamlessly transferred to ‘survival’ instead of ‘lobby’.
“survival.example.com” = [“survival”]
“`

**Important:** The `try` configuration controls where authenticated players are redirected by default. VeloAuth automatically skips the `limbo` server and selects the first available backend server, **unless** the player used a `forced-host` domain, in which case they are natively routed to their intended destination!

### Discord Webhooks

VeloAuth supports Discord notifications for security events (failed login bursts, brute-force attempts, premium resolution failures). Configure the webhook URL in `config.yml` under `alerts.discord`.

### Database Config

Supported: H2 (out-of-box), MySQL, PostgreSQL, SQLite

## Player Commands

| Command | Description | Restrictions |
|———|————-|————–|
| `/register ` | Create new account | Hidden after login. No premium nicknames |
| `/login ` | Login to your account | Hidden after login. Works for all players |
| `/changepassword ` | Change your password | Must be logged in |

## Admin Commands

| Command | Permission | Description |
|———|————|————-|
| `/unregister ` | `veloauth.admin` | Remove player account (resolves conflicts) |
| `/vauth reload` | `veloauth.admin` | Reload configuration |
| `/vauth cache-reset [player]` | `veloauth.admin` | Clear authorization cache |
| `/vauth stats` | `veloauth.admin` | Show plugin statistics |
| `/vauth conflicts` | `veloauth.admin` | List nickname conflicts |

## How It Works

### Authentication Flow
1. **Player connects** to Velocity
2. **VeloAuth checks** in-memory authorization cache (instant, no I/O)
3. If **not in memory**, checks **database premium cache** (persistent across restarts)
4. If **not in DB cache**, resolves via **Mojang/Ashcon API** in parallel using virtual threads
5. If **not premium**, player is sent to the **auth server** (unless Floodgate Bedrock bypass applies)
6. Player types **/login** or **/register**
7. **VeloAuth verifies** credentials with BCrypt
8. Player is **redirected to backend server** via `try` configuration

### Premium Resolution (3 layers)
“`
Connect → [In-memory cache] → [Database cache] → [Mojang/Ashcon API]
~0ms ~1ms ~200-500ms
“`
All API calls run in parallel on virtual threads. Results are cached in the database and survive proxy restarts.

### Nickname Change Detection
When a premium player logs in with a different username than what is stored (Mojang account rename), VeloAuth automatically detects the mismatch and updates the database record, keeping the UUID-to-username mapping accurate without any admin intervention.

### Nickname Protection System
– **Premium nicknames are reserved** unless already registered by cracked players
– **Conflict resolution** when premium players use cracked-registered nicknames
– **Admin tools** for managing nickname conflicts
– **Automatic blocking** of cracked players trying premium nicknames

## LimboAuth Migration

VeloAuth is **100% compatible** with LimboAuth databases:

1. Stop LimboAuth on your backend servers
2. Install VeloAuth on Velocity
3. Configure VeloAuth to use the same database as LimboAuth
4. Start Velocity – all existing accounts will work automatically

## Contributing

Contributions are welcome! Please open an issue or PR.

## Support

Need help? Found a bug? Open an issue on GitHub or join our Discord server.

## License

This project is licensed under the **MIT License**

VCustomBrand

# VCustomBrand

[![Discord](https://img.shields.io/discord/899740810956910683?color=7289da&label=Discord)](https://discord.gg/5NMMzK5mAn)

Customize the brand to display to players on your Velocity network with [MiniPlaceholders](https://modrinth.com/plugin/miniplaceholders) support

[![](https://www.bisecthosting.com/partners/custom-banners/6fa909d5-ad2b-42c2-a7ec-1c51f8b6384f.webp)](https://www.bisecthosting.com/4drian3d?r=ModVCustomBrand)

## Installation
– Download VCustomBrand from [Modrinth](https://modrinth.com/plugin/vcustombrand)
– Drag and drop on your Velocity plugins folder
– Optionally install MiniPlaceholders together with any expansion
– Start the server

## Command
### `/vcustombrand reload`
Permission: `vcustombrand.command`

## Demonstration

This video makes use of the [Expressions](https://modrinth.com/plugin/expressions-expansion) and [Player](https://modrinth.com/plugin/player-expansion) expansions of [MiniPlaceholders](https://modrinth.com/plugin/miniplaceholders)

## Limitations

The brand field in the client only supports plain text, not components, so no HEX colors or gradients can be used

VConsoleLinker

# VConsoleLinker

[![Discord](https://img.shields.io/discord/899740810956910683?color=7289da&label=Discord)](https://discord.gg/5NMMzK5mAn)
[![Telegram](https://img.shields.io/badge/Telegram-Support-229ED9)](https://t.me/Adrian3dSupport)
[![Telegram](https://img.shields.io/badge/Telegram-Updates-229ED9)](https://t.me/Adrian3dUpdates)

Link your Velocity console to a Discord channel via WebHooks

[![](https://www.bisecthosting.com/partners/custom-banners/6fa909d5-ad2b-42c2-a7ec-1c51f8b6384f.webp)](https://www.bisecthosting.com/4drian3d?r=ModVConsoleLinker)

## Installation
– Download VConsoleLinker from Modrinth
– Drag and drop on your plugins folder
– Start the server
– Configure the Channel ID and the WebHook token in the settings

*Library used for Discord webhooks* [JDWebHooks](https://github.com/4drian3d/JDWebHooks)

## Discord WebHook Configuration

![](https://cdn.discordapp.com/attachments/914493736891842640/1179112054972489898/image.png?ex=657898ac&is=656623ac&hm=0de1dec5e04a4eb15bd30ff8310942676a912215e285f5641e83e22b60b47b67&)

1. Copy the URL of the WebHook.
2. Extract the ID and Token from the URL as shown in the image.
3. Put those fields in the specific configuration options.
4. Restart your proxy

VelocityChatClear

# Velocity Clear Chat

An extremely simple and lightweight plugin, designed to clear chat on the proxy side.

You are also able to clear on server swap, which may be useful to some users. Read the configuration for more info. Default configuration can be found here:

“`hocon
# Velocity Clear Chat Configuration
# This file contains settings for the chat clearing plugin.
# Modify these values as needed.
#
# If there is a message, you can set it to “” to disable it, you can use MiniMessage too.

# If velocity returns invalid information, this message will be displayed.
chat-clear-failed-message=”Failed to get server info

# The message to send when the chat is cleared by an admin.
# You can use if you would like to display who cleared the chat.
chat-cleared-message=”Chat has been cleared by an admin

# On player swap, should we clear the chat history?
clear-on-server-swap=true

# The message to display if “clear-on-server-swap” is enabled
clear-on-server-swap-message=””

# The permission an admin needs to clear the chat.
clear-permission=”lncvrt.velocityclearchat.clear”

# The number of lines the chat clearer will send.
lines=100
“`

**If you are wondering why this *velocity plugin* is not supported on BungeeCord/Waterfall, WaterFall is EOL and BungeeCord is obsolete. Velocity is the best server proxy solution out there at the moment.**

VanishBridge

# VanishBridge
![](https://repo.loapu.dev/api/badge/latest/releases/dev/loapu/vanishbridge/vanishbridge-api?color=40c14a&name=API&prefix=v)

VanishBridge is a simple plugin that provides information about vanished players on a proxy level. It is designed to be used by other plugins to provide a better experience for players.

Currently, VanishBridge supports the following proxy software:
– [Velocity](https://velocitypowered.com/)

And the following backend server software:
– [Paper](https://papermc.io/)

If you miss your proxy or backend server software, feel free to open an issue or create a pull request.

## For Server Owners

### Installation
The installation of VanishBridge could not be easier.

1. Download the version required for your proxy software (e.g. Velocity) from the [releases page](https://modrinth.com/plugin/vanishbridge/versions?l=velocity).
2. Drop the downloaded jar into your proxy’s `plugins` folder.
3. Restart your proxy.
4. Download the version required for your backend server software (e.g. Paper) from the [releases page](https://modrinth.com/plugin/vanishbridge/versions?l=paper).
5. Drop the downloaded jar into every server’s `plugins` folder.
6. Restart your server’s.
7. Enjoy!

### Configuration
No configuration needed!

## For Developers

> ⚠️ The repository is currently not available. It will be available again later in January.

### Installation

#### Maven
“`xml

loapu-releases
Loapu Maven Repository
https://maven.loapu.dev/releases


dev.loapu.vanishbridge
vanishbridge-api
1.0

“`

#### Gradle
“`
repositories {
maven(“https://repo.loapu.dev/releases”)
}
dependencies {
implementation(“dev.loapu.vanishbridge:vanishbridge-api:VERSION”)e
}
“`

### [JavaDocs](https://repo.loapu.dev/javadoc/releases/dev/loapu/vanishbridge/vanishbridge-api/latest)

### Usage

#### Checking if VanishBridge is installed (Velocity)

“`java
@Plugin(
id = “velocityexample”,
name = “VelocityExample”,
version = “1.0.0”,
dependencies = {
@Dependency(id = “vanishbridge”, optional = true)
}
)
public class VelocityExample
{
// Make sure to add this to your plugin class if you declared VanishBridge as optional
public boolean isVanishBridgeInstalled()
{
return proxyServer.getPluginManager().isLoaded(“vanishbridge”);
}

// Now you can use VanishBridge
public void example()
{
if (!isVanishBridgeInstalled()) return;
VanishBridge vanishBridge = VanishBridgeProvider.get();
}
}
“`

#### Getting a list of vanished players
“`java
import dev.loapu.vanishbridge.api.VanishBridge;
import dev.loapu.vanishbridge.api.model.VanishBridgePlayer;
import dev.loapu.vanishbridge.api.VanishBridgeProvider;

public class Example {
// It’s really that easy
public List vanishedPlayers = VanishBridgeProvider.get().vanishedPlayers();
}
“`

That’s it! You can now use VanishBridge in your plugin.

vane

[![MIT License](https://img.shields.io/badge/license-MIT-informational.svg)](./LICENSE)
[![Join us on Discord](https://img.shields.io/discord/907277628816388106.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/RueJ6A59x2)
[![Features](https://img.shields.io/badge/link-Features-informational.svg)](https://oddlama.github.io/vane/)
[![Installation Guide](https://img.shields.io/badge/wiki-Installation-informational.svg)](https://github.com/oddlama/vane/wiki/Installation-Guide)
[![FAQ](https://img.shields.io/badge/wiki-FAQ-informational.svg)](https://github.com/oddlama/vane/wiki/FAQ)

# About vane

Vane is a plugin-suite which provides many immersive and lore friendly additions to vanilla minecraft.
It will run on any [PaperMC](https://papermc.io) based minecraft server.

[**For a comprehensive feature overview, visit the official website.**](https://oddlama.github.io/vane/)

– 🎆 Lore friendly and properly integrated immersive features.
Vane augments the classic vanilla experience, and doesn’t try to replace it.
Generally, player’s are not supposed to notice which features were introduced by vane.
– 🚀 Countless quality-of-life, gameplay and system improvements
– ⚙️ Fully-configurable. Disable or configure anything you dislike
– 🛠️ Several carefully designed custom items
Many custom enchantments for a selection of tools, including the elytra
– 🌌 The best portals you can imagine. Expensive but worthwile for long distance travel. Supports all entities including minecarts!
– 📜 A simple but powerful region system for grief protection
– 🗺️ [BlueMap](https://bluemap.bluecolored.de/), [Dynmap](https://www.spigotmc.org/resources/dynmap%C2%AE.274/) and [Pl3xMap](https://github.com/BillyGalbreath/Pl3xMap) integration
– [And a lot more!](https://oddlama.github.io/vane/)

## 📷 Gallery

Visit the [**Gallery on Modrinth**](https://modrinth.com/mod/vane/gallery) to view a selection of features or
refer to [**the official website**](https://oddlama.github.io/vane/) for a complete overview.






(And a whole lot more!)

## 📥 Installation

If you are setting up a new server, check out our [Server Installer](https://oddlama.github.io/minecraft-server)
for an easy way to properly setup a minecraft server with vane, autostart, 3D online map, and more awesome features.

Simply download the plugin zip file from here or from [GitHub](https://github.com/oddlama/vane/releases/latest) and extract the .jar files into the `plugins/` directory. Make sure that:

– You are using the correct Paper (or Purpur) server version (compatible versions are listed in the title on the download page)
– Beware that `vane-velocity` is not a classical server plugin, but a plugin for the velocity proxy! Use it only if you know what you are doing.

For a comprehensive guide, visit the [Installation Guide](https://github.com/oddlama/vane/wiki/Installation-Guide) on the wiki.

## ❓ FAQ

Please refer to the [FAQ](https://github.com/oddlama/vane/wiki/FAQ) in the wiki.

## ✅ Acknowledgements & 3rd-party software

I would like to thank the following projects and people maintaining them:

– [Spigot](https://www.spigotmc.org/) for the awesome baseline server software.
– [PaperMC](https://papermc.io/) for the valuable additions missing from Spigot, and for Waterfall.
– [DynmapCoreAPI](https://github.com/webbukkit/DynmapCoreAPI) (Apache-2.0), dynmap integration
– [BlueMapAPI](https://github.com/BlueMap-Minecraft/BlueMapAPI) (MIT), [BlueMap](https://bluemap.bluecolored.de/) integration
– [Quark](https://quarkmod.net) (CC-BY-NC-SA 3.0) Assets and texts for the Slime Bucket

#### Included software

The following projects will be included in the compilation step:

– [org.json](https://github.com/stleary/JSON-java) (MIT), Java json implementation
– [SnakeYAML](https://bitbucket.org/snakeyaml/snakeyaml) (Apache-2.0), Java YAML 1.1 implementation
– [ronmamo reflections](https://github.com/ronmamo/reflections) (WTFPL), Java reflection helper
– [PacketWrapper](https://github.com/dmulloy2/PacketWrapper) (LGPL3), only specific parts are included
– [bStats](https://bstats.org/) (LGPL3), plugin metrics

v4Guard Anti VPN


Your safety is important to us.

Today, many servers have zero protection against fraud, VPNs, proxies, and peer-to-peer networks. v4Guard has come to the Minecraft communities to change this and offer a quality solution at an affordable price.

# Features

– We’re a **cloud based** solution, meaning near zero impact on your infrastructure resources
– Update all settings in **real time**, with **no restarts** and **no configuration** files. All customization is done via a **web dashboard**.
– You’re able to **whitelist** usernames and IP addresses completely if you want to allow anonymization services to certain users, or if you think there’s an error.
– Fast and **efficient support** team, if you have any questions, issue or feedback, just reach out through your **dedicated support channel** or via a ticket.
– You can **search** for **user profiles**, or **IP address profiles** to get historical information, VPN usage statistics, version and game information, etc…
– Do you have a big team? We support **sub users**, just invite them to your team and give them access to all or certain features by using our **permission system**.
– We have an addon called **Account Shield** that will help you prevent account theft and allow you to restrict access to certain accounts within specific IP address, subnet or even 2FA!
– Easily manage **automated accounts** powered by **AFK console clients** (such as MinecraftAFK) thanks to our partnerships and incorporated settings + contextual information.
– Use our own **API** implementation to be able to create **your own implementations**: discord bots for whitelisting players, extracting information, custom 2FA workflows…
– Allow connections from trusted game boosters such as ExitLag, NoPing, etc…

## Mobile Providers
Unlike similar services, v4Guard has an enhanced mobile hotspot detection and integrated 100+ mobile carriers. This feature helps you tailor your protection: choose specific providers to block, ensuring uninterrupted access for larger player bases and easily customize your experience.






## Local Blacklist
You can also manage your in-game moderation with our Local Blacklist feature, which gives your team a new seamless and centralised management possibilities for your local blockages.





## Manage all information unified in a single service.
It has never been so easy to see so much information about your community summarized in just a click.

– **Detailed Information** Access a user’s profile to see all his detailed information in one click.
– **Custom Rules** Control the flow of your traffic as you wish in a very innovative way.
– **Residential Detection** Say goodbye to bad actors who use P2P networks to bypass with residential IPs.
– **Machine Learning** Automated algorithms and processes for effective and pioneering protection.

# Installation
1. Download the latest version here, or in our [GitHub](https://github.com/v4guard/connector/releases/latest) respository
2. Drop the plugin on your proxy’s plugins folder, and restart the server
3. Click on the dashboard link printed in the console
4. On the website, click on your company name
5. Voilà, we’ll be processing your players right away.

# Large clients who trust us

We are proud to say that small to large communities trust our service and use it every day to enhance their protection. Compared to other services, v4Guard offers the best service customized to your needs.

![Some of our customers](https://cdn.v4guard.io/illustrations/1cbd62b8b8c847f8c20c0579c9cb91cc2382d3b0.png)

and many more…

V-Monitor

V-Monitor Logo

# V-Monitor – Player Activity & Server Status Monitor for Velocity

[![GitHub release](https://img.shields.io/github/release/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/releases)
[![GitHub issues](https://img.shields.io/github/issues/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/issues)
[![GitHub license](https://img.shields.io/github/license/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/blob/main/LICENSE)

## I. Introduction
V-Monitor is a lightweight Velocity proxy plugin (internal codename: Arona-01) designed to monitor player join, leave, and server-switch activities. It provides convenient commands for both players and administrators to query the online player list and detailed backend server information.

## II. Key Features
– **Player Activity Monitoring**: Real-time tracking of player login, logout, and server switching events
– **Online Status Query**: Commands to view the list of online players and their server distribution
– **Server Information Query**: Retrieve detailed information about the Velocity proxy and all sub-servers
– **Plugin Information Management**: List loaded plugins and view detailed information
– **Player Data Query**: View specific player’s activity history and total playtime statistics
– **Multi-language Support**: Support for multiple languages with easy extension
– **Flexible Configuration**: Customize server aliases and language settings via configuration files
– **Data Persistence**: Store player activity data using SQLite or MySQL
– **WebSocket Support**: Real-time player activity push via WebSocket (planned)

## III. Installation Guide
1. Download the latest plugin JAR from the [Release Page](https://github.com/MC-Nirvana/V-Monitor/releases/latest).
2. Place the downloaded JAR file into your Velocity proxy server’s `plugins` folder.
3. Start the Velocity proxy server. The plugin will automatically generate default configuration and language files.
4. Edit the configuration and language files as needed.
5. Reload the plugin configuration (`/vm reload`) or restart the server for changes to take effect.
6. Enjoy the convenience brought by V-Monitor!

## IV. Plugin Usage (Commands)
The main command is `/vmonitor`, with alias `/vm`.

| Command | Example Usage | Permission Node | Description |
|———————————–|——————————————————|——————|——————————————|
| `help` | `/vm help` | `none` | Get general help information for plugin. |
| `reload` | `/vm reload` | `vmonitor.admin` | Reload the plugin configuration. |
| `version` | `/vm version` | `vmonitor.admin` | Get the plugin version information. |
| `server list [all or serverName]` | `/vm server list all` or `/vm server list lobby` | `none` | List players on all or a specific server.|
| `server info [all or serverName]` | `/vm server info all` or `/vm server info lobby` | `none` | Get detailed info for all or one server. |
| `plugin list` | `/vm plugin list` | `vmonitor.admin` | List all loaded plugins. |
| `plugin info [all or pluginID]` | `/vm plugin info all` or `/vm plugin info V-Monitor` | `vmonitor.admin` | Get details for all or one plugin. |
| `player info [playerID]` | `/vm player info MC_Nirvana` | `vmonitor.admin` | Get details for a specific player. |
| `player switch [playerID]` | `/vm player switch MC_Nirvana` | `vmonitor.admin` | Get server switch logs for a player. |

*By default, players with OP permissions and the console have all permission nodes.*

## V. Configuration File (config.yml)
When the plugin starts, it will generate a `config.yml` file in the `plugins/v-monitor/` directory.
Below is an example configuration file with details:
“`yaml
# V-Monitor Configuration

# Plugin basic settings
plugin-basic:
# Default language settings
language:
# Default language
# Support language: zh_cn, zh_tw, en_us
default: “zh_cn”
# Data storage settings
data-storage:
# Database type
# Supported types: sqlite, mysql
type: “sqlite”
# SQLite database configuration
sqlite:
# SQLite database file path
path: “data.db”
# MySQL connection configuration
mysql:
# MySQL server address
host: “localhost”
# MySQL server port
port: 3306
# MySQL database name
database: “v_monitor”
# MySQL database username
username: “root”
# MySQL database password
password: “password”
# MySQL custom parameter configuration
# Parameter format: database setting item: value
# Example:
# parameters:
# useSSL: “false”
parameters: []
# HikariCP database connection pool configuration
hikari:
# Maximum number of connections
maximum-pool-size: 32
# Minimum idle connections
minimum-idle: 16
# Connection timeout
# Unit: milliseconds
connection-timeout: 30000
# Idle connection lifetime
# Unit: milliseconds
idle-timeout: 600000
# Maximum lifetime
# Unit: milliseconds
max-lifetime: 1800000

# Server info settings
server-info:
# Server name
name: “My Velocity Server”
# Server aliases
# Parameter format: actual server name: “alias”
# Supports setting aliases for multiple servers at the same time
# Example:
# aliases:
# lobby: “hub”
# game: “minigames”
aliases: []

# Report settings
report:
# Enable report feature
# If enabled, reports will be generated automatically at the specified time
enabled: true
# Auto clean report
auto-clean-report: true
# Output directory
output-directory: “Reports”
# Report generation time
# Format is HH:mm
# Note: Time should be in 24-hour format
# Example: Generate report every day at 4 PM
# schedule-time: “16:00”
schedule-time: “16:00”
“`
You can edit this file to customize the plugin’s behavior and message content. For the complete default configuration, refer to the file generated when the plugin runs for the first time.

## VI. Language Files (lang/*.yml)
Language files are stored in `plugins/v-monitor/lang/` in YAML format.
Each `.yml` file corresponds to a language and contains all text messages and format templates output by the plugin. You can freely edit these files and use MiniMessage format to customize colors, styles, and content.

## VII. Data Storage (data.db)
The plugin generates an SQLite3 database file named `data.db` in the `plugins/v-monitor/` directory.
This file stores information about players who have connected to the proxy server, uniquely identified by their **UUID**. **Do not manually edit this file.**
You can switch to MySQL by editing the configuration file.

## VIII. Building from Source
To build the plugin from source, you need JDK 17+ and Gradle.

### 8.1 Build Steps
1. Clone the repository: `git clone https://github.com/MC-Nirvana/V-Monitor.git`
2. Enter the repository directory: `cd V-Monitor`
3. Run the build command: `./gradlew build`
4. Find the generated JAR file in the `build/libs/` directory

### 8.2 Development Environment Setup
– IntelliJ IDEA is recommended for development
– Ensure Gradle dependencies are downloaded after importing the project

## IX. Contribution & Support
You are welcome to submit bug reports and feature suggestions via GitHub Issues.

### 9.1 How to Contribute
– Submit code improvements and new features
– Improve documentation and translations
– Report bugs and security issues
– Participate in discussions and provide feedback

### 9.2 Pull Request Best Practices
1. Fork the project and create a feature branch
2. Write clear commit messages
3. Ensure code meets project coding standards
4. Add appropriate test cases
5. Keep each Pull Request focused on a single feature or fix

### 9.3 Developer Resources
– The project follows the standard Git workflow
– Ensure your code passes all tests before submitting a Pull Request
– Maintain consistent coding style, following the existing code structure

## X. Project Roadmap
– [ ] Complete WebSocket real-time data push feature
– [ ] Provide a web-based admin interface

## XI. License
This project is licensed under the [GPL-3.0 license](LICENSE).

## XII. Author’s Note
This is my first time developing a server-side plugin for Minecraft Java Edition. Although AI-assisted coding was used during development and code quality still has room for improvement, I will continue to optimize it. Originally, this plugin was developed for my own Minecraft Java Edition server, but I hope it can be helpful for other server administrators as well.

## XIII. Support & Feedback
If you like this project, please consider:
– Giving it a Star ⭐
– Sharing it on social media
– Participating in discussions and providing valuable feedback

### 13.1 Sponsorship
If you would like to support the ongoing development and maintenance of this project, you can sponsor it via:

– [Mianbaoduo](https://mbd.pub/o/MC_Nirvana) – For users in mainland China
– [PayPal](https://paypal.me/WHFNirvana) – For overseas users

Your sponsorship will be used for:
– Maintaining project infrastructure
– Taking the author out for fries at the pier 🙂

UserLoginProxy

Autologin feature for [UserLogin](https://www.spigotmc.org/resources/userlogin.80669/) 2.12.1+ and [NukeLogin](https://codeberg.org/BratishkaErik/NukeLogin) 0.0.4+.

Here, the “main plugin” refers to the UserLogin or NukeLogin.

Suppose you have a proxy and three servers: `lobby`, `survival` and `mini-games`. The `lobby` server has the “main plugin” installed, and here (and only here!) players log in (or register) and teleport through portals to other servers.

Let’s imagine that some player, BratishkaErik, joined the server, authorized on `lobby`, and went to the `survival` portal. Then, he decided to go to the `mini-games` server, but he needed to go via the `lobby` server:

* Without autologin support: BratishkaErik must log in manually as if he were offline on `lobby` the whole time he was on the `survival` server. This can be annoying for some players.
* With autologin support: BratishkaErik logged in automatically as if he were online on the `lobby` the whole time he was on the `survival` server. Player don’t need to do anything and he can go straight to the `mini-games` portal.

Note that in the second scenario `ipCache` setting from “main plugin” config is not respected.

# How to install

## Jar-files

* Download “main plugin” and put it into plugins folder of your auth server.
* Download UserLoginProxy and put it into plugins folder of your Velocity 3 or BungeeCord proxy (**not auth server!**).

## Configuration

* For “main plugin”: enable `autologin` setting in `config.yml`:

“`yaml
bungeeCord:
# …
autoLogin: true
“`

* For this plugin: add backend server(s) (where “main plugin” is installed) to the `auth-servers` list in `config.yml`:

“`yaml
auth-servers:
– ‘lobby’
– ‘another_lobby’
“`

Finally, restart servers. Now players will be logged in automatically when changing server to `lobby` or `another_lobby`.

# Permissions and Commands

There are no permissions. There is only one command, `/userloginproxy` (alias `/ulp`), that re-reads config.

# License
This plugin is licensed under “GNU GPL v3 or later” license. Release jars includes relocated [DazzleConf 1.2.1](https://github.com/A248/DazzleConf/tree/1.2.1), which is licensed under “GNU LGPL v3 or later” license.

userencrypt

# UserEncrypt

[View documentation](https://h01.in/projects/userencrypt)

## Secure Your Offline-Mode Server and Prevent Username Theft!

Running an “offline-mode” Minecraft server comes with a critical vulnerability: anyone can join using any username, including an administrator’s. UserEncrypt is a lightweight, powerful plugin designed to eliminate this risk, ensuring the security and integrity of your server community.

### The Problem
On offline servers without Mojang or Microsoft authentication, player accounts are susceptible to impersonation. A malicious user could log in with your admin username, gain full control, and cause irreversible damage. Your players’ inventories and progress are also at risk from impersonators.

### The Solution
UserEncrypt tackles this problem head-on by assigning each player a unique, irreversible username on their first login. This ensures that a player’s identity is permanently secured, preventing anyone else from logging in as them.

For example, a player named “batman” might be permanently assigned the username “bat7852”. In-game, they will always be known as “bat7852”. If another person tries to connect as “batman”, the plugin will recognize that the original player is already registered with a unique ID, effectively blocking the impersonation attempt.

## Features

* **Username Encryption:** The core feature automatically transforms a player’s original username into a unique and un-guessable alias. This new, secure username is consistently applied every time the player joins.
* **Unique Username Storage Mode:** As an alternative, you can assign a unique, human-readable username to each player, which is then stored in a database. This offers a more user-friendly approach while maintaining the same robust level of security.

## Why Choose UserEncrypt?

* **Prevent Username Theft:** The primary goal of UserEncrypt is to eliminate the risk of impersonation, especially of server operators with elevated privileges.
* **Enhanced Security:** By providing a reliable solution to a critical security flaw, UserEncrypt creates a more stable and secure environment for your server.
* **Player Safety:** Protect your players’ inventories, progress, and identities from would-be thieves and griefers.
* **Peace of Mind:** Server owners and administrators can manage their communities without the constant fear of their accounts being compromised.

## A Word from a Server Owner

> “Running an offline server always came with the constant worry of someone logging in with my admin username. Since installing UserEncrypt, that fear is gone. My players feel safer knowing their inventories and progress are protected from impersonators, and my staff can manage the server without the risk of their accounts being compromised. It’s an essential plugin for any offline-mode server that is serious about security and player safety.”

## Technical Details

* **Core Language:** Kotlin
* **Build Tool:** Gradle
* **Proxy Support:** Velocity
* **Version Control:** Open-source and managed on Git & GitHub.