Velocity Redis Whitelist

UUID based whitelist for Velocity. Uses Redis as a storage backend.
Uses Redis sets named “whitelist.main”.
External apps, e.g. bots may add/remove from this whitelist.

Compatible with [BungeeSafeguard](https://github.com/Luluno01/BungeeSafeguard) with [Redis-BSG](https://github.com/Luluno01/redis-bsg) addon.

Velocity Queue

# SecVers Queue System

A powerful Velocity queue system supporting multiple priority queues with full LuckPerms integration.

## FEATURES

– Supports multiple queues: Premium, VIP, Default, and Softban
– Fully compatible with LuckPerms MySQL database
– Modular queue enabling/disabling via config
– Automatic fallback to limbo server
– Queue priority processing: Premium -> VIP -> Default -> Softban (after 5min)
– Individual queue position messages for each player
– Designed for cracked and premium servers, with LibreLogin Support
– Lightweight, optimized for 500+ concurrent queued players

## HOW IT WORKS

1. Player joins the limbo/queue server (configure this in Velocity with limboserver setting).
2. The queue system checks the player’s group via LuckPerms database (MySQL only).
3. The player is assigned to their respective queue:
– Premium -> VIP -> Default -> Softban
4. Every tick (5s by default), the system checks if the target server is online and has available slots.
5. Players are sent to the target server based on queue priority.

## CONFIGURATION (config.yml)

“`yaml
# SecVers Queue config.yml

# Enable LuckPerms support.
# Requires a MySQL or MariaDB connection without SSL.
enablelp: false

# The server players join to wait in queue
limboserver: queue

# The target server players will be sent to
targetserver: survival

# Group configuration
# Group names are retrieved from the ‘luckperms_user_permissions’ table.
# Example: use ‘premium’ not ‘group.premium’.
Groups:
softban: badgroup
default: default
vip: vip
premium: premium
displayname_softban: badgroup
displayname_default: default
displayname_vip: VIP
displayname_premium: Premium

# Queue settings
# Enable or disable queues individually
# SoftbanQueueEnabled defaults to allowing join after 5 minutes if other queues are empty
QueueGroupSettings:
premiumQueueEnabled: true
vipQueueEnabled: true
QueueEnabled: true
SoftbanQueueEnabled: true

# Database connection for LuckPerms integration
database:
host: 127.0.0.1
port: 3306
name: luckperms
user: root
pass: ”
“`

## EXAMPLE FLOW

1. Player joins the limbo server queue.
2. Queue system retrieves their group from LuckPerms MySQL.
3. Adds them to their queue (Premium -> VIP -> Default -> Softban).
4. Every 5 seconds:
– Checks target server status
– Moves next player in priority order if slots are available.

## NOTES

– LuckPerms support requires MySQL or MariaDB.
– Softban queue enforces a 5-minute wait if other queues are empty.
– Designed for Velocity and supports LibreLogin setups.

Player Logger

This is a comprehensive player statistics tracking plugin for Velocity proxy servers that allows administrators to monitor and lookup player information across multiple backend servers.

**What’s New in Version 1.0.0:**

**Initial Release Features:**
– Complete player data tracking system with UUID, names, IPs, and timestamps
– Dual storage support – Choose between local JSON files or MySQL database
– Real-time playtime tracking – Automatic session tracking with accurate playtime calculation
– Online/Offline status system – Visual status indicators for player availability
– Server tracking – Records current server for online players and last server for offline players
– Click-to-connect functionality – Join players directly from lookup results
– Live playtime updates – Current session time is included when viewing player stats

**Administrative Tools:**
– **Lookup Commands** – Two aliases for flexibility (`/lookup` and `/playerlookup`)
– **Permission System** – Separate permissions for lookups and data deletion
– **Real-Time Data** – Playtime updates automatically include current session

**Commands:**
– `/lookup ` – Display detailed player statistics including status, server, playtime, and more
– `/playerlookup ` – Alias for `/lookup` command
– `/deletedata ` – Request deletion of all player data (requires confirmation)
– `/deletedata confirm` – Confirm data deletion within 30 seconds

**Permissions:**
– `playerlogger.lookup` – Permission to use lookup commands
– `playerlogger.delete` – Permission to delete player data (separate for security)

**Tracked Data:**
The plugin tracks comprehensive player information:
– **Player Name** – Current and historical usernames
– **UUID** – Unique player identifier
– **IP Address** – Last known IP address
– **First Login** – Timestamp of first connection
– **Last Seen** – Most recent activity timestamp
– **Online Status** – Current online/offline state with visual indicators
– **Current Server** – Live server location with click-to-join (online players)
– **Last Server** – Most recent server location (offline players)
– **Playtime** – Total playtime with automatic session tracking

**Storage Options:**
Choose between JSON files or MySQL database:

**JSON Mode (Default):**
– Simple file-based storage in `playerdata.json`
– No external dependencies required
– Perfect for smaller networks
– Automatic file creation and updates

**MySQL Mode:**
– Scalable database storage with HikariCP connection pooling
– Ideal for larger networks and multiple proxy instances
– Automatic table creation and schema updates
– Support for special characters in passwords
– Connection pooling for optimal performance

**Technical Highlights:**
– **Async Operations** – All database queries run asynchronously using CompletableFuture
– **Session Tracking** – Automatic playtime calculation with session management
– **Live Updates** – Playtime includes current session when viewing online players
– **HikariCP Pooling** – Optimized connection management for MySQL
– **Schema Migration** – Automatic database updates for new features
– **Click Events** – Adventure API integration for interactive server names
– **Color Support** – Full Minecraft color code support with `&` formatting

**Supported Versions:**
– Velocity 3.3.0 and higher (Java 17+)
– Minecraft 1.17, 1.18, 1.19, 1.20, 1.21

**Important when setting up:**
1. Choose your storage type in `config.yml` (local or mysql)
2. If using MySQL, configure database credentials with proper permissions
3. Restart the proxy server to initialize storage
4. Assign `playerlogger.lookup` permission to administrators
5. Assign `playerlogger.delete` permission only to trusted staff
6. Customize messages in `messages.yml` to match your server’s style

Just send me a message on [Discord](https://discord.com/invite/vVrpvBEfeQ) if you have any questions, suggestions, or requests for new plugins.

Velocity Limbo Handler

# ⚡ Velocity Limbo Handler

🌀 A smart **limbo & queue handler** for [Velocity](https://velocitypowered.com)
Keeps your players connected, calm, and coming back even when backend servers crash.

![GitHub release](https://img.shields.io/github/v/release/akselglyholt/velocity-limbo-handler?style=for-the-badge)
![GitHub downloads](https://img.shields.io/github/downloads/akselglyholt/velocity-limbo-handler/total?style=for-the-badge&color=blue)
![Servers](https://img.shields.io/bstats/servers/26682?style=for-the-badge&color=blue)
![License](https://img.shields.io/github/license/akselglyholt/velocity-limbo-handler?style=for-the-badge&color=green)
![Modrinth](https://img.shields.io/modrinth/dt/velocity-limbo-handler?style=for-the-badge&logo=modrinth&label=Modrinth%20Downloads)

## ✨ Why VelocityLimboHandler?

* 🚦 **Per-Server Smart Queue** – players only wait for the server they were on, not behind others stuck elsewhere
* 📢 **Queue Updates** – automatic position notifications keep players informed
* 🔒 **Protected Limbo** – blocks unwanted commands to prevent bypasses
* 🛠️ **Maintenance Support** – respects whitelist & bypass permissions
* 🤝 **LibreLogin Ready** – seamless integration with authentication

👉 Full setup & advanced features in the [Wiki](https://github.com/AkselGlyholt/velocity-limbo-handler/wiki).

## 🧩 Compatibility

* 🖥️ **Proxy:** Velocity (all recent versions)
* 🎮 **MC Versions:** 1.8 → 1.21+
* 📜 **License:** GPL-3.0

## 🚀 Quick Install

1. Grab the latest `.jar` from [Releases](https://github.com/akselglyholt/velocity-limbo-handler/releases).
2. Drop it into your Velocity `plugins` folder.
3. Restart the proxy (config files will generate).
4. Adjust `config.yml` + `messages.yml` to your liking.
5. Restart once more — done! 🎉

## ⚙️ Config Highlights

“`yaml
# config.yml
limbo-name: “limbo” # The name of your limbo server
direct-connect-server: “lobby” # Where to send direct connections
task-interval: 3000 # Queue processing interval (milliseconds)
queue-notify-interval: 30 # How often to tell players their position
disabled-commands: [“server”,”hub”] # Commands blocked in limbo
“`

👉 Messages can be tweaked in `messages.yml` so your players see exactly what you want.

## 🖧 Proxy Setup Example

“`toml
[servers]
default = “lobby”
limbo = “limbo”

[forced-hosts]
“pvp.example.com” = [“pvp”, “limbo”]
“build.example.com” = [“build”, “limbo”]
“`

## 🛡️ Permissions & Integrations

* Players get queued automatically, no setup required.
* Commands blocked per config.
* LibreLogin support ensures login/auth flow isn’t broken.
* Maintenance plugins are respected (bypass logic included).

## 🤝 Contributing

Pull requests are welcome! Just follow the style already in place.
Check `CONTRIBUTING.md` for details.

## 📖 License

Licensed under **GPL-3.0** — free to use, modify, and share under the same license.

velocity-hub-command

The velocity-hub plugin adds the /hub command to the velocity network for easy return if a hub server or similar is present.Simply add it to the velocity server and the /hub command will run on all connected servers!

The `/hub`command is added across the entire Velocity network. There is no need to add the plugin to Paper servers or other server connected to Velocity.

The game version is for all versions supported by Velocity 3.4.0-SNAPSHOT as it is added to the proxy server only. The game version must be specified and is specified, but see the [PaperMC website](https://docs.papermc.io/velocity/server-compatibility/) for details.
# Installation
1. Download the latest release of the plugin
2. Put velocity-hub-x.x-SNAPSHOT.jar in /plugins directory of velocity

This completes the process!
# Config reference
– hubServerName
Specify the destination server. This is the server name listed in servers in velocity.toml. (Usually, the hubServerName is the same as the server name listed in the try=[] brackets.)

### Message custom
We support Japanese, Russian, and other languages. If there are any languages that we do not support, please let us know via GitHub issue!
MiniMessage is supported. If you write like `hub`
, it will be displayed in red. See [here](https://docs.papermc.io/misc/tools/minimessage-web-editor) for details.
You can test the display at the following sites.
[https://webui.advntr.dev/](https://webui.advntr.dev/)
[https://minecraft.menu/minecraft-rgb-generator](https://minecraft.menu/minecraft-rgb-generator)
– transferMessage
Sets the message to be sent to the player who used the command during the transfer.
– alreadyConnectedMessage
Sets the message if the player using the command is on the server designated as the forwarding destination.
– serverNotAvailableMessage
Sets the message when the specified server is unavailable.

# Issue and question
If the plugin does not work properly, try deleting config.json.
Problems and questions feature request [here](https://github.com/stellarcielo/velocity-hub/issues).

Velocity/hub

# Velocity/hub

This plugin, written for networks running velocity, adds the ability for users, to use the /hub command, to return to the lobby.
The available servers for lobbies are configurable, and the first available server on the list will be used to transfer players to it.

With additional permissions, it is possible, to transfer other players to the lobby, using the /hub command.

# Permissions

To protect the unappropriated use of the /hub command, we have set some permissions.

### vhub.command.hub

This permission protects the whole base of the /hub command.

### vhub.command.hub.others

This permission protects the /hub command.
For the use to send other players to the hub, both, this and the base permission are required at the same time.

# Configuration

This plugin provides a configuration file in the json format.
The content is the list of server names, which are your lobby.
On trying to connect to the lobby, the plugin picks the first available server and sends the target player to it.

# Dependencies

This plugin requires the availability of the Kotlin 1.8.21 library, we recommend using the [MCKotlin](https://modrinth.com/plugin/mckotlin) because it supports Velocity as well.
But you are free to use any other platform supported Kotlin library provider as well!

# Have fun

You are welcome to use the plugin on your velocity server!

Velocity Friends

This is a friends system for Velocity proxy servers that allows players to manage friendships, send messages, and interact across multiple servers.

> **What’s New in Version 1.4.0:**
>
> **Version & Status System:**
> – Built-in version checker with live update notifications and download links
> – Activity status system (Active/AFK/DND) with colored status indicators
> – Compatibility checker for Velocity versions
>
> **Enhanced Friend Interactions:**
> – Accept friend requests from offline players
> – Clickable friend names for quick messaging
> – DND mode blocks incoming messages
> – Status dots with hover text for all player states
>
> **Configuration Improvements:**
> – `disable_empty_messages` – Auto-disable empty config messages (default: true)
> – All messages, colors, and hover texts fully customizable
> – Tab-completion for /friend status command
>
> **Quality of Life:**
> – Improved error handling for empty messages
> – Better visual feedback and notifications
> – Minor bug fixes and performance improvements

**Commands:**
– `/friend add ` – Send a friend request
– `/friend accept ` – Accept a friend request (works with offline players)
– `/friend deny ` – Deny a friend request
– `/friend remove ` – Remove a friend
– `/friend list` – View all friends with online status and server location (click to join!)
– `/friend requests` – Show pending friend requests
– `/friend msg ` – Send a private message
– `/friend reply ` – Reply to the last message
– `/friend broadcast ` – Message all online friends
– `/friend status [active|afk|dnd]` – Set your activity status
– `/friend settings` – Open the interactive settings menu
– `/friend version` – Check plugin version and updates
– `/friend reload` – Reload configuration (admin only)

**Permissions:**
– friends.use – Basic permission to use the friends system
– friends.reload – Permission to reload the plugin configuration

**Settings Menu:**
Players can customize their experience with toggleable options:
– Friend Requests – Enable/disable receiving friend requests
– Notifications – Toggle friend online/offline notifications
– Messages – Enable/disable friend messages
– Status Message – Set a custom status visible to friends

**Plugin Messaging API:**
The plugin provides a complete API for Spigot/Paper servers to interact with the friends system:

**Available Requests:**
– GET_FRIENDS – Retrieve all friends with names and online status
– GET_ONLINE_FRIENDS – Get only online friends
– GET_SETTINGS – Fetch a player’s settings and status message
– UPDATE_SETTING – Change player settings from backend servers
– GET_PENDING_REQUESTS – List all pending friend requests
– ARE_FRIENDS – Check if two players are friends

**Automatic Events:**
– FRIEND_ONLINE – Triggered when a friend comes online
– FRIEND_OFFLINE – Triggered when a friend goes offline
– FRIEND_SERVER_SWITCH – Notified when a friend switches servers (NEW in 1.2.0)
– FRIEND_REQUEST – Sent when receiving a new friend request
– SETTING_CHANGED – Notified when settings are updated

**Storage Options:**
Choose between JSON files or MySQL database:

JSON Mode (Default):
– Simple file-based storage
– No external dependencies
– Perfect for smaller networks

MySQL Mode:
– Scalable database storage
– HikariCP connection pooling
– Ideal for larger networks
– Tables: friendships, pending_requests, player_settings, player_names

**Features:**
– Cross-server friend system for Velocity networks
– Live version checker – Stay updated with automatic version notifications
– Activity status system – Active, AFK, and DND modes with visual indicators
– Server display – See which server each friend is on
– Click-to-join – Instantly join your friends by clicking their server
– Offline support – Accept friend requests from offline players
– Server switch tracking with clickable notifications
– Private messaging between friends
– Broadcast messages to all online friends
– Customizable settings per player
– Offline player name display
– Console logging for moderation
– MySQL support with connection pooling
– JSON fallback for simplicity
– Plugin Messaging API for custom integrations
– Automatic username caching
– Interactive settings menu
– Configurable notifications (join/leave/server switch)
– Flexible message customization with auto-disable for empty entries

**PlaceholderAPI Support (New!):**

Use the included companion plugin to display friend data in scoreboards, holograms, chat, and more:

**Available Placeholders:**
– %friends_online% # Number of online friends
– %friends_total% # Total number of friends
– %friends_offline% # Number of offline friends
– %friends_online_list% # Comma-separated online friends
– %friends_online_servers% # Unique servers count

**Supported Velocity Version:**
Velocity 3.3.0 and higher (Java 17+)

**Important when setting up:**
1. Choose your storage type in `config.yml` (json or mysql)
2. If using MySQL, configure database credentials
3. Restart the proxy server
4. Optionally integrate with Spigot/Paper plugins using the Plugin Messaging API

Just send me a message on [Discord](https://discord.com/invite/vVrpvBEfeQ) if you have any questions, suggestions, or requests for new plugins.

Velocity Discord

# Discord-Velocity
This plugin sends messages to a Discord channel when the proxy starts/stops and when players join/leave.

**Configuration**
– Place the bot token and channel id in `plugins/DiscordVelocity/config.yml` (the plugin will create a default file on first run).
– You can customize messages in the same file. Supported placeholders:
– `{player}` – the player’s username (underscores are escaped to avoid unintended italics)
– `{velocity_online}` – number of players currently connected to the proxy

Messages are YAML strings and may include Discord emoji and markdown like `**bold**` — player underscores are escaped but emoji and bold remain functional.

### **Notes**
– Requires Java 17 and a Velocity 3.4.0-SNAPSHOT compatible proxy.

Velocity-CommandLimiter

# What Is This
Powerful Plugin that manipulates all commands under proxy or proxies to control display and execution!
limit and disable command!

# How To Use
### Before Installation
Basically, it is recommended to use with permission management plug-ins such as LuckPerms.

## How To Setup
Put the downloaded plugin into the Velocity plugin folder and run it once.

Then the default config will be generated.

### Config

The settings described in `[[permissions]]` in config will be applied to players who have the permissions described in `[[permissions]]`.

If a player has multiple permissions due to group inheritance in LuckPerms, etc., all settings will be activated, so the settings with the most restrictions will be given priority.

For example, if `default` is set to `commands = [“help”, “list”]` and `guest` inherits the default permissions, then even if `guest` is set to `commands = [“list”]`, `help `is not available!

“`toml
# Permission to view and execute all commands `commandlimiter.admin` for the following
allAllowed = “admin”
# Restrict the display and execution of all commands by players who do not have any privileges, or
limitNoPermissionsPlayer = true

# Configuration of commands available for each permission node
[[permissions]]
# Value of permission node `commandlimiter.default` for the following
nodeName = “default”
# Enable whitelist or not?
# If false, it will be in blacklist format
whiteList = true
# For whitelist, only the commands described below can be displayed and executed
# If blacklisted, only the commands described below will be restricted
# Commands containing subcommands can be filtered by wildcards or regular expressions
commands = [“help”, “list”, “me*”, “msg*”, “teammsg*”, “tell*”, “tm*”, “trigger*”, “w*”, “random*”]
“`

### Permission Node
The root of the permission node for this plugin is `commandlimiter`.

If you want to set it up with LuckPerms etc., you need to set it up as follows

> Example of LuckPerms settings saved in yaml
“`yaml
name: default
permissions:
– commandlimiter.default:
value: true
“`

## Command
The following commands are available

| Command |Alias | Description | Required Permission Nodes |
|—————————|————-|————————————————-|———————–|
| `/commandlimiter-reload` | `/cl-reload` | Reload the plugin config to reflect the settings | `commandlimiter.admin`|

> ⚠️Attention⚠️

Even if you reload the configuration with the command, the client will display the commands as they were before they were configured** until you reconnect to the server.

This is due to the fact that the client gets the commands that are available when connecting to the server.

# Support SNS
SNSList: [https://kuwa.dev/](https://kuwa.dev/)

Twitter(x): [https://x.com/kuwamain](https://x.com/kuwamain)

Discord Support Server: [https://kuwa.app/discord/support](https://kuwa.app/discord/support)

> Japanese
# What Is This
プロキシやプロキシ下にある全てのコマンドを操作して表示と実行を制御する強力なPlugin

# How To Use
### 導入前に
基本的にはLuckPerms等の権限管理プラグインと利用することをお勧めいたします

## 設定方法
ダウンロードしたプラグイン本体を、Velocityのプラグインフォルダに入れ、一度起動します

そうすることでデフォルトのconfigが生成されます

### Configの説明

config内の`[[permissions]]`に記述した権限を持つプレイヤーに記述した設定が反映されるようになります

LuckPermsのグループ継承等で複数の権限を持つプレイヤーの場合、すべての設定が有効化されるため、制限が多い設定が優先されます

例を言うと、`default`に`commands = [“help”, “list”]`が設定されていて、`guest`がデフォルトの権限を継承するようになっている場合、たとえ`guest`が`commands = [“list”]`のように設定されていても`help`を利用することはできません

“`toml
# 全てのコマンドの表示と実行を許可する権限 以下の場合`commandlimiter.admin`
allAllowed = “admin”
# 権限を何も持っていないプレイヤーのすべてのコマンドの表示と実行を制限するか
limitNoPermissionsPlayer = true

# 各 permission node で利用できるコマンドの設定
[[permissions]]
# permission node の値 以下の場合`commandlimiter.default`
nodeName = “default”
# ホワイトリストを有効にするか
# falseの場合はブラックリスト形式になる
whiteList = true
# ホワイトリストの場合は、以下に記述したコマンドのみ表示と実行が可能になる
# ブラックリストの場合は記述したコマンドのみ制限される~~~~
# サブコマンドを含むコマンドの場合、ワイルドカードや正規表現でフィルタ可能
commands = [“help”, “list”, “me*”, “msg*”, “teammsg*”, “tell*”, “tm*”, “trigger*”, “w*”, “random*”]
“`

### Permission Node
このプラグインの permission node の root は `commandlimiter` になっています

LuckPerms等で設定する場合は以下のように設定する必要があります

> LuckPermsの設定をyamlで保存するようにしている場合の例
“`yaml
name: default
permissions:
– commandlimiter.default:
value: true
“`

## Command
以下のコマンドが利用可能なコマンドです

| コマンド |エイリアス | 説明 | 必要なPermissionノード |
|—————————|————-|————————————————-|———————–|
| `/commandlimiter-reload` | `/cl-reload` | プラグインのconfigを再読み込みして設定を反映します | `commandlimiter.admin`|

> ⚠️注意⚠️

コマンドで設定を再読み込みしたとしても、コマンドの表示に関しては**サーバーに再接続するまでクライアントでは設定前の表示**になります

これはクライアントがサーバー接続時に利用できるコマンドを取得する仕様のためです

Velocity Carbon Discord

# Velocity Carbon Discord
Bridging [Carbon](https://modrinth.com/plugin/carbon) chat channels to Discord.

Carbon must be installed on the proxy to use this plugin. If you use Carbon on your backend servers, please use their DiscordSRV compatibility.

## Features
– Highly configurable
– Webhooks or bot messages for chat
– Display player count in bot status
– Ping discord users from in-game
– Reply to in-game messages from Discord
– Handle separate chat channel mappings (E.g. one channel for global chat, one channel for staff chat)
– Customisable Minecraft Avatar display
– Link discord attachments in-game
– Status messages on server start and shutdown, as well as player join, leave or change server
– Formats Xaero’s Minimap shared waypoints in Discord

## Installation
1. Create a discord bot application [here](https://discordapp.com/developers/applications/)
– Click `Add application` and then go to the `Bot` tab
2. Enable the `SERVER MEMBERS INTENT` and `MESSAGE CONTENT INTENT` under `Privileged Gateway Intents`
3. Go to the `OAuth2` tab and copy the `CLIENT ID`
4. Create an invite link for your new bot [here](https://discordapi.com/permissions.html)
– Enable permissions: `View Channels`, `Send Messages` and `Read Message History`
– Paste the copied `CLIENT ID` into the field on the page
– Click the generated link to invite your bot to your discord server
3. Go to the `Bot` tab and copy the bot token, you may need to click `Reset Token` first
4. Install the plugin on your server, start the server once to generate the config and stop the server again.
5. Open the plugin config files at `plugins/velocitycarbondiscord/config.yaml`
6. Replace where it says `TOKEN` with the bot token you copied previously
7. Edit the channel mapping to include the carbon channels and discord channels IDs you want to link
8. Set any additional config options you want
9. Start the server

## Support

Support for Carbon and Velocity Carbon Discord can be obtained in the [Carbon discord server](https://discord.gg/S8s75Yf). For Velocity Carbon Discord issues, please ping `@Jarva`

## Configuration
Default config generated on startup:
“`yaml
discord:
token: ‘TOKEN’
# Available placeholders:
messages:
# Additional placeholders:
chat_message: ‘:
# Additional placeholders:
join_message: ‘** joined **’
leave_message: ‘** left **’
# Additional placeholders: N/A
disconnect_message: ‘** was disconnected**’
# Additional placeholders:
disconnect_server_message: ‘** was disconnected from **’
# Additional placeholders:
server_switch_message: ‘** moved from to **’
# Available placeholders: N/A
shutdown_message: ‘**Proxy shutting down**’
start_message: ‘**Ready for connections**’
# Additional placeholders: <description><br /> advancement_default_message: “**<username>** has just earned the achievement [<title>]** _(<description>)_”<br /> advancement_challenge_message: “**<username>** has completed the challenge [<title>]** _(<description>)_”<br /> advancement_goal_message: “**<username>** has reached the goal [<title>]** _(<description>)_”<br /> advancement_task_message: “**<username>** has made the advancement [<title>]** _(<description>)_”<br /> # Additional placeholders: <displayname> <message><br /> death_message: “**<message>**”<br /> webhook:<br /> # Available placeholders: <displayname> <username> <uuid><br /> avatar_url: ‘https://crafatar.com/renders/head/<uuid>?overlay’<br /> username: ‘<username>‘<br /> # Available placeholders: <message><br /> message: ‘<message>‘<br /> show_bot_messages: false<br /> show_attachments_ingame: true<br /> show_activity: true<br /> # Available placeholders: <amount><br /> activity_text: ‘with <amount> players online’<br /> enable_mentions: true<br /> enable_everyone_and_here: false<br /> prefer_webhook: true<br /> # Available placeholders: <message> <nickname> <role_color> <username><br /> minecraft:<br /> # Additional placeholders: <attachments> <discord_format> <reply_format> <username_format><br /> format: ‘<discord_format> <reply_format><username_format> <dark_gray>» <reset><message><attachments>‘<br /> discord_format: ‘<dark_gray>(<color:#7289da>discord<dark_gray>)<reset>‘<br /> username_format: ‘<color:<role_color>><hover:show_text:<username>><nickname></hover><reset>‘<br /> mention_format: ‘<color:<role_color>><underlined>@<nickname></underlined></color>‘<br /> # Additional placeholders: <reply_message> <reply_nickname> <reply_role_color> <reply_url> <reply_username><br /> reply_format: ‘<dark_gray><click:open_url:<reply_url>>[<color:#4abdff>←<color:<reply_role_color>><hover:show_text:<reply_username>><reply_nickname></hover><dark_gray>]</click><reset> ‘<br /> # Additional placeholders: <attachment_url><br /> attachment_format: ‘<dark_gray><click:open_url:<attachment_url>>[<color:#4abdff>Attachment<dark_gray>]</click><reset>‘<br /> channels:<br /> – name: ‘carbon:global’<br /> enabled: true<br /> broadcast_events: true<br /> discord:<br /> webhook:<br /> url: ‘WEBHOOK_URL’<br /> channel_id: ‘CHANNEL_ID’<br /> – name: ‘carbon:staff’<br /> enabled: true<br /> minecraft:<br /> format: ‘<discord_format> <gray>✦</gray> <username_format> <dark_gray>» <aqua><message><attachments>‘<br /> discord:<br /> webhook:<br /> url: ‘WEBHOOK_URL’<br /> channel_id: ‘CHANNEL_ID’<br /> “`</p> <p>## Credits<br /> – fooooooooooooooo: Creation of [Velocity Discord](https://modrinth.com/plugin/velocitydiscord/) which heavily inspired the features, and this README<br /> – Draycia: Creator of [Carbon](https://modrinth.com/plugin/carbon), as well as provided lots of help figuring out implementation details</p> </article> </main> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/minecraft/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <div class="gtranslate_wrapper" id="gt-wrapper-65318213"></div><script id="gt_widget_script_65318213-js-before"> window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['65318213'] = {"default_language":"en","languages":["ar","az","bn","bg","hr","cs","da","nl","en","fi","fr","de","el","hu","id","it","ja","kk","ko","fa","pl","pt","ro","ru","sl","es","sv","th","uk","uz","vi"],"url_structure":"sub_directory","flag_style":"2d","wrapper_selector":"#gt-wrapper-65318213","alt_flags":[],"custom_domains":{"ru":"minecraft.vpesports.games"},"float_switcher_open_direction":"top","switcher_horizontal_position":"left","switcher_vertical_position":"bottom","flags_location":"\/wp-content\/plugins\/gtranslate\/flags\/"}; //# sourceURL=gt_widget_script_65318213-js-before </script><script src="https://minecraft.vpesports.com/wp-content/plugins/gtranslate/js/float.js?ver=3.1.1" data-no-optimize="1" data-no-minify="1" data-gt-orig-url="/loader/velocity/page/10/" data-gt-orig-domain="minecraft.vpesports.com" data-gt-widget-id="65318213" defer></script><script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://minecraft.vpesports.com/wp-includes/js/wp-emoji-release.min.js?ver=7.0"}} </script> <script type="module"> /*! This file is auto-generated */ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))}); //# sourceURL=https://minecraft.vpesports.com/wp-includes/js/wp-emoji-loader.min.js </script> </body> </html>