SlashServer

# SlashServer

A stupid simple pluign to let your players connect to servers by doing /

Features:
* I don’t know… You can /creative if you have a creative server.

Commands:
* / – Send a player to a server

SkyeNetwork Velocity

# SkyeNetV – SkyeNet Velocity Plugin

A comprehensive Velocity plugin for the SkyeNet Minecraft server network, providing server management utilities and rules system.

## Version 2.1

### New Features
– **Server Rules System**: Complete rules management with JSON-based configuration
– **MiniMessage Support**: Rich text formatting with gradients and colors
– **Admin Commands**: Full CRUD operations for rule management
– **Flexible Configuration**: JSON-based rules storage with customizable headers and footers

## Installation

1. Download the latest `SkyeNetV-x.y.z.jar` from releases
2. Place the JAR file in your Velocity `plugins/` directory
3. Restart your Velocity proxy server
4. The plugin will create necessary configuration files in `plugins/skyenetv/`

## Features

### 🛡️ Server Rules System
– **Dynamic Rule Management**: Add, edit, and remove rules on-the-fly
– **Rich Text Formatting**: Full MiniMessage support for colorful text
– **Permission-Based Access**: Admin-only commands with role-based security
– **JSON Configuration**: Easy-to-edit rules storage
– **Customizable Headers/Footers**: Personalize your rules display

### 🎨 MiniMessage Formatting
The plugin supports the full MiniMessage specification for rich text formatting:
– **Colors**: ``, ``, ``, etc.
– **Gradients**: `Amazing Text`
– **Decorations**: ``, ``, ``
– **Combined Effects**: `Important Rule`

## Commands

### `/rules` – Server Rules Management

#### Public Commands
– **`/rules`** – Display all server rules to the player

#### Admin Commands (Requires `skyenetv.rules.admin` permission)
– **`/rules add “” “<description>“`** – Add a new rule<br /> – Example: `/rules add “No Griefing” “Destroying other players’ builds is prohibited”`</p> <p>– **`/rules remove <id>`** – Remove a rule by its ID number<br /> – Example: `/rules remove 3`</p> <p>– **`/rules edit <id> “<title>” “<description>“`** – Edit an existing rule<br /> – Example: `/rules edit 1 “No Hacking” “Using unauthorized modifications is strictly forbidden”`</p> <p>– **`/rules header <text>`** – Set the header text displayed above rules<br /> – Example: `/rules header “<gradient:gold:yellow>SkyeNet Server Rules</gradient>“`</p> <p>– **`/rules footer <text>`** – Set the footer text displayed below rules<br /> – Example: `/rules footer “<gray>Thank you for following our rules!</gray>“`</p> <p>– **`/rules reload`** – Reload rules from the configuration file</p> <p>## Permissions</p> <p>| Permission | Description | Default |<br /> |————|————-|———|<br /> | `skyenetv.rules.admin` | Access to all rule management commands | OP only |</p> <p>## Configuration</p> <p>### Rules Configuration (`plugins/skyenetv/rules.json`)</p> <p>The rules are stored in JSON format with the following structure:</p> <p>“`json<br /> {<br /> “header”: “<gradient:gold:yellow>SkyeNet Server Rules</gradient>“,<br /> “footer”: “<gray>Thank you for following our rules!</gray>“,<br /> “rules”: [<br /> {<br /> “id”: 1,<br /> “title”: “<red>No Hacking”,<br /> “description”: “Using unauthorized modifications or exploits is strictly prohibited.”<br /> },<br /> {<br /> “id”: 2,<br /> “title”: “<yellow>Be Respectful”,<br /> “description”: “Treat all players with respect. No harassment, bullying, or discrimination.”<br /> }<br /> ]<br /> }<br /> “`</p> <p>### Default Rules</p> <p>The plugin comes with example rules that demonstrate MiniMessage formatting:<br /> 1. **No Hacking** – Prohibition of unauthorized modifications<br /> 2. **Be Respectful** – Guidelines for player interaction<br /> 3. **No Griefing** – Protection of player builds<br /> 4. **Follow Chat Rules** – Communication guidelines<br /> 5. **No Advertising** – Server promotion restrictions</p> <p>## MiniMessage Examples</p> <p>Here are some formatting examples you can use in your rules:</p> <p>### Basic Colors<br /> “`<br /> <red>Red text</red><br /> <blue>Blue text</blue><br /> <green>Green text</green><br /> <yellow>Yellow text</yellow><br /> <gray>Gray text</gray><br /> “`</p> <p>### Gradients<br /> “`<br /> <gradient:red:blue>Gradient from red to blue</gradient><br /> <gradient:gold:yellow>Golden gradient</gradient><br /> <gradient:#ff0000:#00ff00>RGB gradient</gradient><br /> “`</p> <p>### Text Decorations<br /> “`<br /> <bold>Bold text</bold><br /> <italic>Italic text</italic><br /> <underlined>Underlined text</underlined><br /> <strikethrough>Strikethrough text</strikethrough><br /> “`</p> <p>### Combined Effects<br /> “`<br /> <red><bold>Important Warning!</bold></red><br /> <gradient:gold:yellow><italic>Special Announcement</italic></gradient><br /> “`</p> <p>## Development</p> <p>### Building from Source</p> <p>1. Clone the repository<br /> 2. Ensure you have Java 17+ and Maven installed<br /> 3. Run `mvn clean package`<br /> 4. The compiled JAR will be in the `target/` directory</p> <p>### Project Structure<br /> “`<br /> src/main/java/me/pilkeysek/skyenetv/<br /> ├── SkyeNetV.java # Main plugin class<br /> ├── commands/<br /> │ └── RulesCommand.java # Rules command handler<br /> └── config/<br /> └── RulesConfig.java # Rules configuration manager<br /> “`</p> <p>## Support</p> <p>– **GitHub Issues**: Report bugs and request features<br /> – **Discord**: Join our community server<br /> – **Website**: https://skyemc.net</p> <p>## License</p> <p>This project is licensed under the MIT License.</p> <p>## Authors</p> <p>– **NobleSkye** – Project Lead<br /> – **PilkeySEK** – Core Developer<br /> – **SkyeNetwork Team** – Contributors</p> <p>—</p> <p>*SkyeNetV v2.1 – Enhancing your Velocity server experience*</p> </article> <article> <h1>SkinsRestorer</h1> <p># <center>SkinsRestorer</p> <p>### <center>![documentation](https://skinsrestorer.net/docs) ![discord](https://skinsrestorer.net/discord) ![crowdin](https://translate.skinsrestorer.net/)</p> <p>## What is SkinsRestorer?<br /> SkinsRestorer is a plugin that restores skins for offline mode servers & networks that gives the players ability to change their skins by typing a single command.</p> <p>## Where can I use SkinsRestorer?</p> <p>![bukkit](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/bukkit_vector.svg) ![spigot](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/spigot_vector.svg) ![paper](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/paper_vector.svg) ![purpur](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/purpur_vector.svg)</p> <p>![velocity](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/velocity_vector.svg) ![bungeecord](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/bungeecord_vector.svg) ![waterfall](https://cdn.jsdelivr.net/npm/@intergrav/devins-badges@3/assets/cozy/supported/waterfall_vector.svg)</p> <p>## How can I install SkinsRestorer?</p> <p>*It’s easy to install SkinsRestorer!*</p> <p>All the steps are detailed in our installation guide.</p> <p>## What are the Commands and Permissions?</p> <p>Read the official documentation for a list of commands and permissions.</p> <p>## What if I need support?<br /> If you need any support you can **join our Discord server,**<br /> so we can help you out 🙂</p> <p>![Discord Banner](https://skinsrestorer.net/discord)</p> <p>## Meet the Team:<br /> * xknat – Developer<br /> * Pistonmaster – Developer<br /> * SloPlays – Website & backend<br /> * mono21400 – support</p> <details> <summary>Retired Staff</summary> <p>* Logics – Maintainer<br /> * Angel_0 – support<br /> * riflowth – Skinsystem intergration dev<br /> * fezerngodo – Skinsystem intergration dev<br /> * McLive – Retired dev<br /> * Th3Tr0LLeR – Retired Founder<br /> * Blackfire62 – Retired dev<br /> * DoNotSpamPls – Retired dev<br /> * HyperGaming18 – Retired support</p> </details> <p>## Stats</p> <p>### Bukkit</p> <p>![Bukkit bStats](http://bstats.org/plugin/bukkit/skinsrestorer)</p> <p>### BungeeCord</p> <p>![BungeeCord bStats](http://bstats.org/plugin/bungeecord/skinsrestorer)</p> <p>### Velocity</p> <p>![Velocity bStats](https://bstats.org/plugin/velocity/skinsrestorer) </p> <p>## Want to support us and the plugin?</p> <p>We have spent much of our time working on SkinsRestorer, we made it free, so that any server could enjoy it.<br /> Please consider donating to us if you would like to thank us. This allows us to continue working on this project.</p> <p>![kofi](https://ko-fi.com/skinsrestorer) ![paypal](https://skinsrestorer.net/donate)</p> <p>—</p> <p><img decoding="async" align="right" src="https://enderdash.com/logo.png" height="150" width="150"></p> <p>### ✨ Are you looking for an advanced administration panel for your server?</p> <p>EnderDash allows you to manage your existing Minecraft servers using an advanced dashboard by installing a single plugin, batteries included. Run commands (with tab completion), read logs, manage files, invite your whole team, manage players, Ocelot (AI Assistant), works with your existing Infrastructure/Panels and much more.</p> <p>Check it out: https://enderdash.com</p> <p>—</p> <p>end, no seriously just give us a star already ^w^.</p> </article> <article> <h1>Skcrew</h1> <p>![CREW](https://github.com/user-attachments/assets/accfbeb9-8923-4482-a8bb-3f79373f39fc)</p> <p>## **Skcrew** – A **Skript**<i class="fas fa-link"></i> addon, expanding the capabilities of the language.</p> <p>Skcrew partially includes the following third-party code:<br /> > **skript-db** fork by Govindas<br /> > **skript-gui** | Modified<br /> > **bitshift**</p> <p>—</p> <p>Addon usage highlights:<br /> – Working with files and folders<br /> – Bitwise and logical operations with numbers<br /> – Sending and creating gui forms through **floodgate** <i class="fas fa-link"></i><br /> – Simplified creation of in-game GUIs<br /> – Parsing and executing code from text<br /> – Drawing on maps<br /> – Managing player permissions<br /> – Forcing a player to execute commands with operator permissions<br /> – **InventoryDragEvent** <i class="fas fa-link"></i> and its related expressions<br /> – Asynchronous/synchronous web requests<br /> – Retrieving the server’s hardware information<br /> – Interaction with SQL-like databases<br /> – Manipulating strings using RegEx (Regular Expression)<br /> – Retrieving the player’s version via **ViaVersion** <i class="fas fa-link"></i><br /> – World management: create, upload, copy, delete<br /> – Proxy communication between servers ( **Velocity** <i class="fas fa-link"></i>, **BungeeCord** <i class="fas fa-link"></i> )<br /> – Packet handling: creating, sending, receiving, editing</p> <p>—</p> <p>### Support for servers</p> <p>| Spigot, Paperㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ| BungeeCord, Velocity ㅤㅤㅤㅤ |<br /> |—————————————|————————————————|<br /> | Java 8 + | Java 8 + |<br /> | Minecraft 1.8.8 – 1.21.x |<br /> | Skript 2.6 – 2.11 + | |</p> <p>—</p> <p>### Documentations</p> <p>– **Official Documentation**<br /> – Skript Hub:</p> <p> ![SkriptHubViewTheDocs](http://skripthub.net/docs/?addon=Skcrew)</p> </article> <article> <h1>Synkai IP Limiter</h1> <p># Advanced Synkai IP Limiter</p> <p>A powerful Velocity proxy plugin that prevents multiple accounts from joining your server using the same IP address. Includes account binding, alt-account detection, and Discord webhook notifications.</p> <p>—</p> <p>## Features</p> <p>– 🔒 **IP-Based Player Limiting** – Restrict concurrent connections per IP address<br /> – 🔐 **Account Binding** – Bind player accounts to their IP address<br /> – 🚫 **Alt-Account Detection** – Automatically detect and prevent alt accounts<br /> – 🔑 **Permission-Based Bypass** – Allow ops and VIPs to bypass restrictions<br /> – 📢 **Customizable Messages** – Color code support (&c, &4, etc.)<br /> – 🔔 **Discord Webhook Support** – Get real-time notifications of violations<br /> – ⚪ **IP Whitelist** – Configure trusted IPs with custom limits<br /> – ⏰ **Binding Expiration** – Set binding duration (never, 1 week, 1 month)<br /> – 🐛 **Debug Mode** – Enhanced logging for troubleshooting</p> <p>—</p> <p>## Installation</p> <p>1. Download the latest compiled JAR file from the build directory<br /> 2. Place it in your Velocity proxy’s `plugins/` directory<br /> 3. Restart your Velocity proxy server<br /> 4. Configuration file will be auto-generated at `plugins/IPLimit/config.yml`</p> <p>—</p> <p>## Configuration</p> <p>Edit `plugins/IPLimit/config.yml` to customize the plugin:</p> <p>“`yaml<br /> # IP Limit Configuration</p> <p># Max players allowed per IP (This limits concurrent sessions for the valid account)<br /> max-players-per-ip: 1</p> <p># Permission to bypass checks (Ops usually have this)<br /> bypass-permission: “iplimit.bypass”</p> <p># Message shown when kicked due to IP limit/Binding (Supports Color Codes like &c, &4)<br /> kick-message: “&cYou are not allowed to join with this IP! 1 Account per IP limit.”</p> <p># Message shown when kicked for using an Alt account<br /> alt-kick-message: “&cAlt accounts are not allowed! This IP is bound to another account.”</p> <p># Binding expiration policy (never, 1w, 1m)<br /> binding-expiration: “never”</p> <p># Discord webhook settings (optional)<br /> discord-webhook-enabled: false<br /> discord-webhook-url: “webhookurl here”<br /> discord-webhook-username: “Advanced Synkai IP limiter”<br /> discord-webhook-embed-color: 16711680</p> <p># Whitelisted IPs (These IPs bypass all checks)<br /> whitelisted-ips:<br /> – “192.168.1.1”<br /> – “10.0.0.1”</p> <p># Optional limits for whitelisted IPs (overrides normal max)<br /> whitelisted-ip-limits:<br /> “127.0.0.1”: 3</p> <p># Debug mode (prints more info to console)<br /> debug: false<br /> “`</p> <p>### Configuration Options</p> <p>| Option | Type | Description | Default |<br /> |——–|——|————-|———|<br /> | `max-players-per-ip` | Integer | Maximum players allowed per IP | 1 |<br /> | `bypass-permission` | String | Permission node to bypass checks | `iplimit.bypass` |<br /> | `kick-message` | String | Message when player hit IP limit | Customizable |<br /> | `alt-kick-message` | String | Message for alt accounts | Customizable |<br /> | `binding-expiration` | String | Binding duration: `never`, `1w`, `1m` | `never` |<br /> | `discord-webhook-enabled` | Boolean | Enable Discord notifications | `false` |<br /> | `discord-webhook-url` | String | Discord webhook URL | `webhookurl here` |<br /> | `discord-webhook-username` | String | Bot username for webhooks | Advanced Synkai IP limiter |<br /> | `discord-webhook-embed-color` | Integer | Embed color (RGB decimal) | 16711680 |<br /> | `whitelisted-ips` | List | IPs that bypass all checks | – |<br /> | `whitelisted-ip-limits` | Map | Custom limits for specific IPs | – |<br /> | `debug` | Boolean | Enable debug console output | `false` |</p> <p>—</p> <p>## Permissions</p> <p>| Permission | Description | Default |<br /> |———–|————-|———|<br /> | `iplimit.bypass` | Bypass IP limit and binding checks | Ops |<br /> | `iplimit.admin` | Access admin commands | Ops |</p> <p>—</p> <p>## Commands</p> <p>“`bash<br /> /iplimit [subcommand]<br /> “`</p> <p>### Subcommands<br /> – `info` – Show player IP binding information<br /> – `reload` – Reload configuration from disk<br /> – `unbind <player>` – Remove IP binding for a player<br /> – `whitelist <ip>` – Add IP to whitelist<br /> – `debug [on|off]` – Toggle debug mode</p> <p>—</p> <p>## Discord Webhook Setup</p> <p>To get real-time notifications of IP violations:</p> <p>1. Create a Discord webhook in your server settings<br /> 2. Copy the webhook URL<br /> 3. Edit `config.yml`:<br /> “`yaml<br /> discord-webhook-enabled: true<br /> discord-webhook-url: “https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN”<br /> “`<br /> 4. Customize the webhook username and embed color as desired<br /> 5. Reload the plugin with `/iplimit reload`</p> <p>—</p> <p>## How It Works</p> <p>1. **First Connection** – Player joins with their IP, account is bound to that IP<br /> 2. **Same IP, Same Account** – ✅ Allowed (logged in again)<br /> 3. **Same IP, Different Account** – ❌ Kicked (alt account detected)<br /> 4. **Different IP, Same Account** – ⚠️ Allowed (new IP, rebinding)<br /> 5. **Whitelisted IP** – ✅ Always allowed<br /> 6. **Bypass Permission** – ✅ Ops and VIPs bypass all checks</p> <p>—</p> <p>## Features in Detail</p> <p>### Account Binding<br /> Once a player joins, their account is bound to their IP address. This prevents other accounts from using the same IP.</p> <p>### Binding Expiration<br /> Configure how long bindings remain active:<br /> – `never` – Bindings are permanent<br /> – `1w` – Bindings expire after 1 week<br /> – `1m` – Bindings expire after 1 month</p> <p>### IP Whitelist<br /> Add trusted IPs (proxy, testing, corporate networks) to bypass all checks:<br /> “`yaml<br /> whitelisted-ips:<br /> – “192.168.1.1”<br /> – “10.0.0.1”<br /> “`</p> <p>Set custom limits for whitelisted IPs:<br /> “`yaml<br /> whitelisted-ip-limits:<br /> “127.0.0.1”: 5 # Allow 5 players from localhost<br /> “`</p> <p>### Debug Mode<br /> Enable debug logging to troubleshoot issues:<br /> “`yaml<br /> debug: true<br /> “`</p> <p>Check console for detailed information about:<br /> – Player connections<br /> – IP bindings<br /> – Permission checks<br /> – Webhook requests</p> <p>—</p> <p>## Troubleshooting</p> <p>### Players Getting Kicked Unexpectedly<br /> 1. Check the player’s IP: `/iplimit info <player>`<br /> 2. Verify whitelisted IPs if needed<br /> 3. Check if player has `iplimit.bypass` permission<br /> 4. Enable debug mode for more info</p> <p>### Discord Webhook Not Working<br /> 1. Verify the webhook URL is correct<br /> 2. Check `discord-webhook-enabled: true`<br /> 3. Ensure the webhook hasn’t been deleted from Discord<br /> 4. Check console for error messages with debug enabled</p> <p>### Config Not Updating<br /> 1. Use `/iplimit reload` to reload configuration<br /> 2. Ensure YAML formatting is valid<br /> 3. Check file permissions on config.yml</p> </article> <article> <h1>SimpleWhitelist</h1> <p># SimpleWhitelist<br /> **SimpleWhitelist** is an *essential plugin* for your private server.</p> <p>### Why should you choose this plugin?<br /> * No hassles, players in the white list are stored by their nicknames;<br /> * There is support for the most used server cores (proxy & not);<br /> * Fully customizable messages;<br /> * Easy to use.</p> <p>### How to start using plugin?<br /> 1. Disable Minecraft’s whitelist in `server.properties` (`white-list=false`);<br /> 2. Put plugin in `plugins` folder (or in `mods` for mod loaders);<br /> 3. Start your server;<br /> 4. Enable whitelist using `/swl enable`;<br /> 5. Add yourself to whitelist using `/swl add <player_name>` command.</p> <p>### Commands:<br /> * `/swl add/remove <player_name>` – add or remove player from whitelist (case-sensitive if set);<br /> * `/swl list` – show list of whitelisted players;<br /> * `/swl enable/disable` – enable or disable plugin;<br /> * `/swl reload` – reload plugin.</p> <p>### Permission:<br /> `simplewhitelist.command` – for all commands</p> </article> <article> <h1>SimpleVelocityTools</h1> <p>A simple velocity-system with various features</p> <p>## Features<br /> – Send players to other servers.<br /> – Find players on the network.<br /> – Get send to the lobby using /lobby.<br /> – Send global alerts.</p> <p>## Commands<br /> – Use **/alert <message>** to send an global alert.<br /> – Use **/send <player/*> <server>** to send a player to another server.<br /> – Use **/find <player>** to find a player on the network.<br /> – Use **/lobby** to get send to the lobby.</p> <p>## Permissions<br /> – **simplevelocitytools.alert** – Allows you to use /alert <message>.<br /> – **simplevelocitytools.send** – Allows you to use /send <player> <server>.<br /> – **simplevelocitytools.find** – Allows you to use /find <player>.<br /> – **simplevelocitytools.lobby** – Allows you to use /lobby.</p> <details> <summary>View config.yml</summary> <p>“`<br /> # SimpleVelocityTools by Losterixx<br /> # Version: 1.0.0 | MC-Version: 1.21.1<br /> #<br /> # Note: This plugin utilizes MiniMessage for color codes and message formatting.<br /> # For more information on MiniMessage, visit: https://docs.advntr.dev/minimessage/format.html</p> <p>lobbyServer: Lobby</p> <p>messages:<br /> alert: “<dark_gray>[<dark_red><bold>!</bold> <red>Alert<dark_gray>] <reset>{message}”<br /> alert-no-args: “<red>Please use <yellow>/alert <message><red>!”<br /> find-player-not-found: “<red>The player <yellow>{player} <red>could not be found!”<br /> find-player-on-server: “<gray>The player <yellow>{player} <gray>is on server <yellow>{server}<gray>!”<br /> find-server-error: “<red>Could not retrieve the server of <yellow>{player}<red>!”<br /> lobby-not-player: “<red>This command can only be executed by players!”<br /> lobby-no-args: “<red>Please use <yellow>/lobby<red>!”<br /> lobby-sending: “<gray>Sending you to Lobby…”<br /> send-no-args: “<red>Please use <yellow>/send <player/*> <server><red>!”<br /> send-server-not-found: “<red>The server <yellow>{server} <red>could not be found!”<br /> send-all-players: “<yellow>All players <gray>are being sent to <yellow>{server}<gray>!”<br /> send-player-sent: “<gray>The player <yellow>{player} <gray>is being sent to <yellow>{server}<gray>!”<br /> send-player-not-found: “<red>The player <yellow>{player} <gray>could not be found!”<br /> “`</p> <p>## Contact</p> <p>If you encounter any issues or bugs, or have a<br /> request for a new feature, please contact me via Discord or join my Discord-Server.</p> <p>> My discord-name is **Losterixx**.</p> <p>> My Discord-Server: Link</p> </article> <article> <h1>SimpleStaffChat</h1> <p>![Banner](https://i.imgur.com/rfrfd9i.png)<br /> ![Features](https://i.imgur.com/nLKYGaj.png)<br /> – Fully customizable, meaning you can change the messages and settings of the plugin inside the configuration files.<br /> – Light and efficient, won’t cause any sort of lag towards your server!<br /> – Staff join and quit messages.<br /> – Automatic Config Updates. No need to manually update file properties.<br /> – Supports multiple platforms: Spigot, Velocity and Folia.<br /> – Discord Logging using webhooks support in discord.yml<br /> – MiniMessage support (Using non-strict mode, automatically converts legacy & color codes)</p> <p>Note: This plugin does not and will never give support to cracked servers.<br /> ![Commands and Permissions](https://i.imgur.com/EZdK3IH.png)<br /> Commands</p> <p> /staffchat(/sc) – Send messages to your staff privately<br /> /staffchattoggle(/sctoggle) – Toggle sending messages to your staff privately<br /> /staffchatreload(/screload) – Reload your config files<br /> /adminchat(/ac) – Send messages to your admins privately<br /> /devchat(/dc) – Send messages to your developers privately<br /> /adminchattoggle(/actoggle) – Toggle sending messages to your admins privately<br /> /devchattoggle(/dctoggle) – Toggle sending messages to your developers privately<br /> /chat <staff|dev|admin|all> – Toggle sending messages to a chat<br /> /schide <staff|dev|admin|all> – Allows you to mute/hide messages from either one or all staff chats.</p> <p>Permissions</p> <p> simplestaffchat.command.help – Allows you to see the help page<br /> simplestaffchat.command.staffchat – Allows you to use /staffchat<br /> simplestaffchat.command.toggle – Allows you to use /staffchattoggle<br /> simplestaffchat.command.reload – Allows you to use /staffchatreload<br /> simplestaffchat.command.adminchat – Allows you to use /adminchat<br /> simplestaffchat.command.adminchat.toggle – Allows you to use /adminchattoggle<br /> simplestaffchat.command.devchat – Allows you to use /devchat<br /> simplestaffchat.command.devchat.toggle – Allows you to use /devchattoggle<br /> simplestaffchat.command.hide – Allows you to use /schide<br /> simplestaffchat.command.chat – Allows you to use /chat<br /> simplestaffchat.staffchat.see – Allows you to see all staffchat messages<br /> simplestaffchat.staffchat.symbol – Allows you to use the symbol to use staffchat<br /> simplestaffchat.adminchat.see – Allows you to see all adminchat messages<br /> simplestaffchat.adminchat.symbol – Allows you to use the symbol to use adminchat<br /> simplestaffchat.devchat.see – Allows you to see all devchat messages<br /> simplestaffchat.devchat.symbol – Allows you to use the symbol to use devchat<br /> simplestaffchat.join – Sends a join message when a staff member joins<br /> simplestaffchat.switch – Sends a switch message when a staff member switches to a different server on the network (BungeeCord/Velocity only)<br /> simplestaffchat.quit – Sends a join message when a staff member leaves the server</p> <p>All commands are customizable from the commands.yml file. (Available in version 3.0 or higher)</p> <p>![Screenshots](https://i.imgur.com/0TEFgN4.png)<br /> ![Screenshot #1](https://i.imgur.com/nHwMsI8.png)<br /> ![Extra Info](https://i.imgur.com/d2MjpMr.png)</p> <p>Outdated Tutorial<br /> <iframe width="560" height="315" src="https://www.youtube.com/embed/I2bu53PppwQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe></p> <p>All artwork on this page was created by me.</p> <p>### Placeholders<br /> – %player% – Get the player name<br /> – %displayname% – Get the player display name<br /> – %server% – Get the player server<br /> – %message% – Get the message<br /> – %arrow% – Get an arrow for a message<br /> – %arrow_2% – Get alt arrow for a message<br /> – %star% – Get a star for a message<br /> – %circle% – Get a circle for a message<br /> – %luckperms_prefix% – Get the player’s luckperms prefix<br /> – %luckperms_suffix% – Get the player’s luckperms suffix</p> <p>### Dependencies<br /> PlaceholderAPI (Optional)</p> <p>SignedVelocity (Required when using Velocity it must be installed on all Spigot/Paper servers too)</p> <p>### Install<br /> 1. Download plugin<br /> 2. Place the .jar file in your plugins folder<br /> 3. Restart your server<br /> 4. Enjoy!</p> <p>Note: Only install it in either all backend servers or in the proxy not both the plugin will not work properly.</p> <p>### Discord<br /> Need help? Have suggestions? Join the discord!<br /> https://discord.gg/EFeSKPg739</p> <p>![BStats Spigot](https://bstats.org/signatures/bukkit/SimpleStaffChat%20-%20Spigot.svg)<br /> ![BStats Bungee](https://bstats.org/signatures/bungeecord/SimpleStaffChat%20-%20Bungee.svg)<br /> ![BStats Velocity](https://bstats.org/signatures/velocity/SimpleStaffChat%20-%20Velocity.svg)</p> <p>Icon from Flaticon</p> </article> <article> <h1>SimpleProxyChat</h1> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/SimpleProxyChat.png?raw=true" alt="SimpleProxyChat Logo"/> </p> <p><center><br /> This is a Bungeecord Chat Sync, Velocity Chat Sync, and Proxy Chat Sync plugin. It is a simple plugin to allow <b>global</b> <i>cross-server</i> communication and messaging with support for <b>PlaceholderAPI</b>, <b>LuckPerms</b>, <b>LiteBans</b>, <b>AdvancedBan</b>, <b>NetworkManager</b>, and <b>Discord</b>.<br /> </center></p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Installation.png?raw=true" alt="installation"/> </p> <p>### With PlaceholderAPI<br /> 1) You **must** use the *helper plugin* which you can download here.<br /> 1) Drag the helper plugin to each **Spigot/Paper/Bukkit** server that you want PlaceholderAPI support on.<br /> * You do not need any additional configuration on the Spigot/Paper/Bukkit server as long as you have PlaceholderAPI installed.<br /> 1) Set `use-helper` to `true` in the `config.yml` for the proxy configuration. This will be in your **BungeeCord/Velocity** server.<br /> 1) Restart or reload the plugin! `/spc-reload`</p> <p>> For **PlaceholderAPI** support, the helper plugin is required. Additionally, **PlaceholderAPI placeholders** can only be used for **Minecraft chat messages**. It will **not work** for join/leave messages.</p> <p>### Without Discord<br /> 1) Simply place the plugin in your `plugins` folder on **BungeeCord/Waterfall/Velocity** and restart your proxy!</p> <p>### With Discord<br /> 1) Go to discord.com/developers and select **New Application**. You can select *any* name you want.<br /> 1) Go to the **OAuth2** section.<br /> 1) Go to the **OAuth2 URL Generator** and give it the **bot** scope.<br /> 1) Under **bot permissions** select;<br /> – Manage Channels (**REQUIRED**: General Permissions)<br /> – Send Messages (**REQUIRED**: Text Permissions)<br /> – Manage Messages (**REQUIRED**: Text Permissions)<br /> – Read Message History (**REQUIRED**: Text Permissions)<br /> – *+ Any others that you want to add…*<br /> 1) Copy the **Generated URL** at the bottom.<br /> 1) Paste the generated URL into a web browser.<br /> 1) Invite the bot to your server.<br /> 1) Go back to discord.com/developers.<br /> 1) Select your bot.<br /> 1) Click on **bot**.<br /> 1) Click **Reset Token** and copy the token somewhere safe.<br /> 1) Scroll down to **Privileged Gateway Intents**.<br /> 1) Select **SERVER MEMBER INTENT** and **MESSAGE CONTENT INTENT**.<br /> 1) Place the plugin in the `plugins` folder on **BungeeCord/Velocity**.<br /> 1) Start your server once *fully*, then stop it. There *will* be errors, this is normal.<br /> 1) In the generated `ProxyChat/config.yml` file, paste your **Bot Token** and choose the appropriate channel you want messages being sent to.<br /> 1) Restart your proxy!</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Features.png?raw=true" alt="features"/> </p> <p>* **Global Network Chat**<br /> * **LuckPerms Support**<br /> * **LiteBans Support**<br /> * **AdvancedBan Support**<br /> * **NetworkManager Support**<br /> * **Discord Support**<br /> * **Velocity/Waterfall/BungeeCord Support**<br /> * **Colored Chat**<br /> * **Cross-Server Communication**<br /> * **PlaceholderAPI Support**<br /> * **…and more!**</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Configuration.png?raw=true" alt="configuration"/> </p> <p>**config.yml**<br /> “`YAML<br /> # ==========================================================<br /> # INFORMATION<br /> # HEX Values are Supported<br /> # Example: <#FFFFFF>Some text</#FFFFFF> this is a message!<br /> # Supports Mini-Message/Legacy Color Codes<br /> # ==========================================================</p> <p># True if you will be using Discord. The reload command does not work with this.<br /> use-discord: false</p> <p># Discord Bot Token (IGNORE IF use_discord = false).<br /> BOT-TOKEN: “TOKEN_HERE”</p> <p># Channel to send Discord messages to (IGNORE IF use_discord = false).<br /> CHANNEL-ID: “GLOBAL_CHANNEL_ID”</p> <p>bot-activity:<br /> # Valid Types: ONLINE, DO_NOT_DISTURB, IDLE, INVISIBLE<br /> status: ONLINE<br /> # Valid Types: PLAYING, STREAMING, LISTENING, WATCHING, COMPETING, CUSTOM_STATUS<br /> type: “CUSTOM_STATUS”<br /> # Valid placeholders are %online% and/or %max-players% (UPDATES EVERY 5 MINUTES)<br /> text: “%online%/%max-players% – SimpleProxyChat by beanbeanjuice”</p> <p># The amount of seconds to check if a server is online/offline.<br /> # Smaller numbers can cause errors. Beware.<br /> server-update-interval: 3</p> <p># Use this if you want to change the default aliases.<br /> # It MUST be the same name you have in your bungee/velocity config.<br /> # Simply set it to disabled: disabled to disable it.<br /> aliases:<br /> ServerInConfigExample: ServerAliasExample<br /> hub: Hub1<br /> smp: smp1</p> <p># Whether to use the permission system.<br /> # Some permissions (denoted with ➕) are always active even if this is false.<br /> # simpleproxychat.read.chat – Read chat messages.<br /> # simpleproxychat.read.join – Read join messages.<br /> # simpleproxychat.read.leave – Read leave messages.<br /> # simpleproxychat.read.fake – Read the fake join/leave messages. Players must also have the REAL join/leave permission.<br /> # simpleproxychat.read.switch – Read switch messages.<br /> # simpleproxychat.read.update – Read update messages. ➕<br /> # simpleproxychat.toggle.chat – Toggle proxy chat for a single server. ➕<br /> # simpleproxychat.toggle.chat.all – Toggle proxy chat for all servers. ➕<br /> # simpleproxychat.reload – Reload the config. ➕<br /> # simpleproxychat.ban – Ban a player from the proxy. ➕<br /> # simpleproxychat.unban – Unban a player from the proxy. ➕<br /> # simpleproxychat.whisper – Whisper to another player on the proxy. ➕<br /> # simpleproxychat.broadcast – Broadcast a message to everyone on the server. ➕<br /> use-permissions: false</p> <p># Only messages that start with this character will be sent through the plugin.<br /> # Set to ” to disable.<br /> # Example: If it is set to ‘$’, then when a player sends $hello, it will be sent through the proxy.<br /> proxy-message-prefix: ”</p> <p># Whether to send if the statuses of the servers connected to the proxy when the proxy starts up.<br /> # THIS IS FOR DISCORD MESSAGES ONLY.<br /> use-initial-server-status: true</p> <p># Whether to send a fake join/leave message when vanishing/unvanishing.<br /> use-fake-messages: true</p> <p># Format: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html<br /> # Timezone: https://www.joda.org/joda-time/timezones.html<br /> timestamp:<br /> # If your server is prone to getting off-sync on the time you can use an API.<br /> # WARNING: Using the API will make messages somewhat longer to send.<br /> # Additionally, the maximum accuracy will only be up to 1 minute, rather than seconds.<br /> use-api: false<br /> format: “hh:mm a”<br /> timezone: “America/Los_Angeles”</p> <p># True if you will be using the helper plugin.<br /> use-helper: false</p> <p>update-notifications: true</p> <p># It is HIGHLY recommended to use a more robust proxy-wide banning system such as LiteBans or AdvancedBan.<br /> # However, if you would rather a light-weight, simple, banning system. You can enable it here.<br /> # A FULL PROXY RESTART IS REQUIRED TO USE THIS.<br /> use-simple-proxy-chat-banning-system: false</p> <p># This will store and re-send the last few chat messages when a player switches servers.<br /> # This is here because sometimes Velocity/Bungee does not keep the previous messages when switching.<br /> # This WILL retain old formatting if you change the formatting prior to reloading.<br /> send-previous-messages-on-switch:<br /> enabled: false<br /> amount: 15</p> <p># These require a restart in order to take place.<br /> commands:<br /> reload-aliases:<br /> – “spcreload”<br /> chat-toggle-aliases:<br /> – “chattoggle”<br /> ban-aliases:<br /> – “spcban”<br /> unban-aliases:<br /> – “spcunban”<br /> whisper-aliases:<br /> – “spc-msg”<br /> reply-aliases:<br /> – “spc-r”<br /> broadcast-aliases:<br /> – “spc-bc”<br /> – “broadcast”</p> <p># Disable servers from sending/receiving proxy messages.<br /> disabled-servers:<br /> – example1</p> <p># DO NOT TOUCH THIS<br /> file-version: 15<br /> “`</p> <p>**messages.yml**<br /> “`YAML<br /> # ==========================================================<br /> # INFORMATION<br /> # HEX Values are Supported<br /> # Example: <#FFFFFF>Some text</#FFFFFF> this is a message!<br /> # Supports Mini-Message/Legacy Color Codes<br /> # ==========================================================</p> <p># Prefix for the plugin. %plugin-prefix% usable anywhere.<br /> plugin-prefix: “&8[<bold><rainbow>SimpleProxyChat&r&8]”</p> <p># Minecraft Stuff<br /> minecraft:<br /> join:<br /> enabled: true<br /> message: “&e%player% &ahas joined the network. (%server%)”<br /> leave:<br /> enabled: true<br /> message: “&e%player% &chas left the network. (%server%)”<br /> chat:<br /> enabled: true<br /> message: “&8[&3%server%&8] &e%player% &9» &7%message%”<br /> vanished: “&cYou cannot send proxy messages while vanished. Your message must end with a ‘&e/&c’ to speak.”<br /> switch:<br /> enabled: true<br /> default: “&e%player% &7moved from &c%from% &7to &a%to%&7.”<br /> no-from: “&e%player% &7moved &7to &a%to%&7.”<br /> whisper:<br /> send: “&8[&dyou&8] &f⇒ &8[&d%receiver%&8] &9» &e%message%”<br /> receive: “&8[&d%sender%&8] &f⇒ &8[&dyou&8] &9» &e%message%”<br /> error: “&c/spc-whisper (user) (message)”<br /> discord:<br /> enabled: true<br /> message: “**%server%** %player% » %message%”<br /> embed:<br /> use: false<br /> title: “[%server%] %player%”<br /> message: “%message%”<br /> color: “#FFC0CB”<br /> use-timestamp: true<br /> command:<br /> no-permission: “%plugin-prefix% &cSorry, you do not have permission to run this command.”<br /> unknown: “%plugin-prefix% &cUnknown command.”<br /> must-be-player: “%plugin-prefix% &cYou must be a player to run this command.”<br /> reload: “%plugin-prefix% &aThe plugin has been successfully reloaded!”<br /> chat-lock:<br /> usage: “%plugin-prefix% &cCorrect usage is &a/spc-chat all lock/unlock &c or &a/spc-chat lock/unlock”<br /> single:<br /> locked: “%plugin-prefix% &6%server% &cwill no longer send proxy chat messages.”<br /> unlocked: “%plugin-prefix% &6%server% &awill now send proxy chat messages.”<br /> all:<br /> locked: “%plugin-prefix% &cAll servers will no longer send proxy chat messages.”<br /> unlocked: “%plugin-prefix% &aAll servers will now send proxy chat messages.”<br /> proxy-ban:<br /> usage: “%plugin-prefix% &c/(un)ban (player)”<br /> banned: “%plugin-prefix% &c%player% &7has been banned.”<br /> unbanned: “%plugin-prefix% &c%player% &7has been unbanned.”<br /> login-message: “&cYou have been banned from the proxy.”<br /> broadcast:<br /> usage: “%plugin-prefix% &c/spc-broadcast (message)”<br /> message: “%plugin-prefix% &8[&a&lBROADCAST&r&8] &6%message%”</p> <p># Discord Stuff<br /> discord:<br /> join:<br /> enabled: true<br /> message: “%player% has joined the network. (%server%)”<br /> use-timestamp: true<br /> # Incompatible with use-timestamp.<br /> use-embed: true<br /> leave:<br /> enabled: true<br /> message: “%player% has left the network. (%server%)”<br /> use-timestamp: true<br /> # Incompatible with use-timestamp.<br /> use-embed: true<br /> switch:<br /> enabled: true<br /> message: “%player% has switched from %from% to %to%.”<br /> use-timestamp: true<br /> # Incompatible with use-timestamp.<br /> use-embed: true<br /> chat:<br /> enabled: true<br /> minecraft-message: “&8[&bDiscord&8] %role% &f%user% &9» &7%message%”<br /> topic:<br /> online: “There are %online% players online.”<br /> offline: “The proxy is offline.”<br /> proxy-status:<br /> enabled: true<br /> messages:<br /> enabled: “✅ Proxy enabled!”<br /> disabled: “⛔ Proxy disabled.”<br /> title: “Server Status”<br /> message: “Status: ”<br /> online: “Online ✅”<br /> offline: “Offline ⛔”<br /> use-timestamp: true</p> <p># Console Stuff – Uses Minecraft Messages<br /> console:<br /> chat: true<br /> join: true<br /> leave: true<br /> switch: true<br /> discord-chat: true<br /> server-status: true</p> <p># The message for any updates that are sent.<br /> # The plugin-prefix is automatically appended to the beginning of this message.<br /> update-message: “&7There is an update! You are on &c%old%. New version is &a%new%&7: &6%link%”</p> <p># DO NOT TOUCH THIS<br /> file-version: 10<br /> “`</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Commands.png?raw=true" alt="commands"/> </p> <p>* `/spc-reload` – Reloads the config files.<br /> * `/spc-chat` – Lock/unlock the chat.<br /> * `/spc-whipser` – Send a private message to someone.<br /> * `/spc-reply` – Reply to a private message without specifying a user.<br /> * `/spc-ban` – Ban a player from the proxy.<br /> * `/spc-unban` – Unban a player from the proxy.<br /> * `/spc-broadcast` – Broadcast a message to every player on the network.</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Permissions.png?raw=true" alt="permissions"/> </p> <p>* `simpleproxychat.read.chat` – Read chat messages.<br /> * `simpleproxychat.read.join` – Read join messages.<br /> * `simpleproxychat.read.leave` – Read leave messages.<br /> * `simpleproxychat.read.fake` – Read fake join/leave messages. Must have the real permission too.<br /> * `simpleproxychat.read.switch` – Read switch messages.<br /> * `simpleproxychat.read.update` – Read update notifications.<br /> * `simpleproxychat.toggle.chat` – Toggle proxy chat for a single server.<br /> * `simpleproxychat.toggle.chat.all` – Toggle proxy chat for all servers.<br /> * `simpleproxychat.reload` – Reload the config.<br /> * `simpleproxychat.ban` – Ban someone.<br /> * `simpleproxychat.unban` – Unban someone.<br /> * `simpleproxychat.whisper` – Private messaging permissions.<br /> * `simpleproxychat.broadcast` – Broadcast a message to everyone on the server.</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Placeholders.png?raw=true" alt="placeholders"/> </p> <p>* `%plugin-prefix%` – The plugin’s designated prefix.<br /> * `%server%` – The current connected server. Uses the alias if one is specified.<br /> * `%original_server%` – Same as `%server%`, but does not use the alias.<br /> * `%to%` – The current connected server. Uses the alias if one is specified.<br /> * `%original_to%` – Same as `%to%`, but does not use the alias.<br /> * `%from%` – The server the player just disconnected from. Uses the alias if one is specified.<br /> * `%original_from%` – Same as `%from%`, but does not use the alias.<br /> * `%player%` – The player’s Minecraft username.<br /> * `%escaped_player%` – The escaped player’s Minecraft username. (Adds ‘\’ before the ‘_’ to prevent italics.)<br /> * `%sender%` – The person sending the private message. **Private Messaging Only**<br /> * `%receiver%` – The person receiving the private message. **Private Messaging Only**<br /> * `%user%` – The player’s Discord username.<br /> * `%nick%` – The player’s Discord nickname.<br /> * `%role%` – The player’s Discord role.<br /> * `%prefix%` – The player’s prefix. **LuckPerms Only**<br /> * `%suffix%` – The player’s suffix. **LuckPerms Only**<br /> * `%message%` – The player’s message.<br /> * `%epoch%` – This gets the current time (in milliseconds). Formats can be used like this. An example would be `<t:%epoch%>`. **Discord Only**<br /> * `%time%` – Similar to `%epoch%`, but uses a special formatting and timezone found in `config.yml`.<br /> * `%online%` – **Discord Status Only**<br /> * `%max-players%` – **Discord Status Only**</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Caveats.png?raw=true" alt="caveats"/> </p> <p>1) As of right now, vanish support is only available on *BungeeCord/Waterfall*. The plugin will still function as normal, but if you go into vanish then it won’t send a fake join/leave message.<br /> 1) In order for prefixes and suffixes to work, you **must** have LuckPerms installed on the proxy. Then, you can use `%prefix%` and `%suffix%`.<br /> 1) `%epoch%` and the timestamps only work in certain places on Discord. As an alternative, you can select some of the embeds to have `use-timestamp: true`. This is out of my control sadly… 😔</p> <p>—</p> <p align="center"> <img decoding="async" src="https://github.com/beanbeanjuice/SimpleProxyChat/blob/master/Images/Finished/Statistics.png?raw=true" alt="statistics"/> </p> <p>### Velocity Statistics<br /> ![velocity statistics](https://bstats.org/signatures/velocity/SimpleProxyChat.svg)</p> <p>### BungeeCord/Waterfall Statistics<br /> ![bungeecord/waterfall statistics](https://bstats.org/signatures/bungeecord/SimpleProxyChat.svg)</p> </article> <article> <h1>SimpleLimbo</h1> <p># SimpleLimbo</p> <p>A lightweight virtual limbo server plugin for Velocity proxy using LimboAPI.</p> <p>## Features</p> <p>– **Multiple Limbo Servers** – Create unlimited virtual limbo instances with different configurations<br /> – **Auth Plugin Support** – Compatible with JPremium and other authentication plugins<br /> – **Fallback System** – Automatically catch players when backend servers go down<br /> – **AFK Detection** – Move idle players to a dedicated limbo server<br /> – **Custom Worlds** – Load schematic files for limbo environments<br /> – **Rich Display** – Titles, action bars, boss bars, and chat messages<br /> – **Auto Reconnect** – Automatically attempt to reconnect players to backend servers<br /> – **Velocity Bridge** – Register virtual servers that redirect to limbos</p> <p>## Requirements</p> <p>– Velocity 3.3.0+<br /> – LimboAPI 1.1.27+<br /> – Java 17+</p> <p>## Installation</p> <p>1. Download LimboAPI and place it in your Velocity plugins folder<br /> 2. Download SimpleLimbo and place it in your Velocity plugins folder<br /> 3. Restart Velocity<br /> 4. Configure `plugins/simplelimbo/config.yml`</p> <p>## Configuration</p> <p>### Basic Limbo Setup</p> <p>“`yaml<br /> limbos:<br /> auth:<br /> enabled: true<br /> dimension: “OVERWORLD”<br /> gamemode: “ADVENTURE”<br /> world-time: 6000</p> <p> spawn:<br /> x: 0.0<br /> y: 100.0<br /> z: 0.0<br /> yaw: 0.0<br /> pitch: 0.0</p> <p> settings:<br /> read-timeout: 30000<br /> should-rejoin: true<br /> should-respawn: false<br /> disable-falling: true<br /> disable-falling-delay-ms: 5000</p> <p> commands:<br /> – “login”<br /> – “register”</p> <p> display:<br /> on-join:<br /> chat: “&eUse /login or /register”<br /> title:<br /> enabled: true<br /> title: “&eAuthentication”<br /> subtitle: “&7Please authenticate”<br /> “`</p> <p>### Velocity Bridge (Auth Plugin Compatibility)</p> <p>For plugins like JPremium that expect players to be on a named server:</p> <p>“`yaml<br /> velocity-bridge:<br /> enabled: true<br /> register-aliases: true<br /> aliases:<br /> auth: “auth” # Maps server name “auth” to limbo “auth”<br /> “`</p> <p>Then in your auth plugin config, set the limbo server to `auth`.</p> <p>### Anti-Fall Tuning</p> <p>– `disable-falling` keeps players from dropping after join (Y lock mode).<br /> – `disable-falling-delay-ms` controls when anti-fall starts.<br /> – If players get slow join or “Loading Terrain” delay, increase `disable-falling-delay-ms` (for example: `1200`, `1500`, `2000`).</p> <p>### Settings Notes</p> <p>– `should-rejoin: true` keeps LimboAPI rejoin flow enabled (recommended for stability).<br /> – `should-respawn: false` avoids extra respawn packet during join.</p> <p>### Fallback System</p> <p>Automatically catch players when backend servers crash:</p> <p>“`yaml<br /> auto-triggers:<br /> fallback:<br /> enabled: true<br /> limbo: “fallback”<br /> kick-patterns:<br /> – “.*server.*closed.*”<br /> – “.*timed out.*”<br /> message: “&cServer offline. Moved to fallback.”<br /> “`</p> <p>### AFK System</p> <p>Move idle players to a dedicated limbo:</p> <p>“`yaml<br /> auto-triggers:<br /> afk:<br /> enabled: true<br /> limbo: “afk”<br /> idle-time: 300<br /> check-interval: 30<br /> exempt-permission: “simplelimbo.afk.exempt”<br /> “`</p> <p>### Custom World Files</p> <p>Load schematic files for limbo environments:</p> <p>“`yaml<br /> limbos:<br /> lobby:<br /> world-file:<br /> enabled: true<br /> type: “SCHEMATIC”<br /> path: “plugins/simplelimbo/worlds/lobby.schem”<br /> offset:<br /> x: 0<br /> y: 64<br /> z: 0<br /> light-level: 15<br /> “`</p> <p>## Commands</p> <p>| Command | Permission | Description |<br /> | ———————————— | ——————- | ———————— |<br /> | `/simplelimbo send <player> <limbo>` | `simplelimbo.admin` | Send a player to a limbo |<br /> | `/simplelimbo list` | `simplelimbo.admin` | List all limbo servers |<br /> | `/simplelimbo reload` | `simplelimbo.admin` | Reload configuration |</p> <p>## Permissions</p> <p>| Permission | Description |<br /> | ———————— | ———————— |<br /> | `simplelimbo.admin` | Access to admin commands |<br /> | `simplelimbo.afk.exempt` | Exempt from AFK trigger |</p> <p>## Auth Plugin Compatibility</p> <p>SimpleLimbo includes compatibility features for authentication plugins that call `player.getCurrentServer()`:</p> <p>1. Set `fake-server-name` in your limbo config to a valid Velocity server name<br /> 2. Enable the velocity-bridge with matching alias<br /> 3. Configure your auth plugin to use this server name as the limbo server</p> <p>Example for JPremium:</p> <p>“`yaml<br /> # SimpleLimbo config.yml<br /> velocity-bridge:<br /> aliases:<br /> auth: “auth”</p> <p>limbos:<br /> auth:<br /> fake-server-name: “auth”<br /> # … other settings<br /> “`</p> <p>“`yaml<br /> # JPremium configuration.yml<br /> limboServerNames: [auth]<br /> mainServerNames: [lobby]<br /> “`</p> <p>## Building from Source</p> <p>“`bash<br /> git clone https://github.com/ItsAzni/SimpleLimbo.git<br /> cd SimpleLimbo<br /> ./gradlew shadowJar<br /> “`</p> <p>The compiled JAR will be in `build/libs/`.</p> <p>## License</p> <p>MIT License</p> <p>## Credits</p> <p>– LimboAPI by Elytrium<br /> – Velocity by PaperMC</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-74370302"></div><script id="gt_widget_script_74370302-js-before"> window.gtranslateSettings = /* document.write */ window.gtranslateSettings || {};window.gtranslateSettings['74370302'] = {"default_language":"en","languages":["ar","az","bn","bg","hr","cs","da","nl","en","fi","fr","de","el","iw","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-74370302","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_74370302-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="/mod-category/velocity/page/20/" data-gt-orig-domain="minecraft.vpesports.com" data-gt-widget-id="74370302" 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>