VelocityPacker

A easy plugin to send onetime a resourcepack over a proxy for velocity

76

Quick challenge

How far can you run before the mobs catch you?

VelocityPacker

Velocitypacker

A Velocity plugin that automatically sends resource packs to players and stores their acceptance status in a SQLite database.

✨ Features

- 🔄 Detailed Logs - Pack is sent on every proxy join - 📊 Detailed Logs - Persistent storage of acceptance status - 🚫 Detailed Logs - Players cannot connect to servers until pack is accepted/declined - ⚡ Detailed Logs - Automatic connection to first server after successful acceptance - 🔒 Detailed Logs - No re-sending when switching between backend servers - 🎛️ Detailed Logs - Easy customization of all settings - 📋 Detailed Logs - Comprehensive information about pack status

🚀 Installation

1. Download Plugin

```bash

Clone repository

git clone https://github.com/TheLion102009/Velocitypacker.git cd Velocitypacker

Build plugin

./gradlew clean shadowJar ```

2. Install JAR

You can find the compiled JAR in `build/libs/Velocitypacker-0.1.jar`.

Copy this file to the `plugins/` folder of your Velocity server.

3. Start Server

Restart your Velocity server. The configuration file will be created automatically.

⚙️ Configuration

The `config.yml` is automatically created in the `plugins/velocitypacker/` folder:

```yaml

Resource pack URL (REQUIRED)

Must be a direct download URL to a .zip file

resourcePackUrl: https://example.com/resourcepack.zip

SHA-1 hash of the resource pack (OPTIONAL)

Format: 40 hexadecimal characters (e.g. a1b2c3d4e5f6...)

Leave empty if you don't want to use a hash

resourcePackSha1: ""

Message shown to the player

Supports Minecraft color codes with §

resourcePackPrompt: "§aPlease accept the resource pack to play!"

Kick player if the resource pack is declined

kickOnDecline: true

Kick player if the download fails

kickOnFailedDownload: true

Kick message (supports color codes with §)

kickMessage: "§cYou must accept the resource pack to play!" ```

Generate SHA-1 Hash

Windows: ```powershell certutil -hashfile resourcepack.zip SHA1 ```

Linux/Mac: ```bash sha1sum resourcepack.zip ```

🔧 How It Works

Player Join Process:

1. Pack declined → Resource pack is sent immediately 2. Pack declined → Player stays in resource pack screen 3. Pack declined → Automatic connection to first available server 4. Pack declined → Player is kicked (if configured)

Server Switch Process:

- Proxy rejoin → No re-sending (stored in session) - Proxy rejoin → Pack is sent again (new session)

Database:

- Stored data: `plugins/velocitypacker/resourcepack.db` - Stored data: UUID, acceptance status, timestamp

📋 Logs

The plugin provides detailed logs:

``` [INFO] Initializing Velocitypacker... [INFO] Configuration loaded [INFO] Database initialized [INFO] Event listener registered [INFO] Sent resource pack to player Spieler123 [INFO] Player Spieler123 successfully downloaded the resource pack [INFO] Connecting Spieler123 to lobby ```

🛠️ Technical Details

- Shadow Plugin: 3.4.0-SNAPSHOT - Shadow Plugin: 2.0.20-Beta1 - Shadow Plugin: 3.45.0.0 - Shadow Plugin: 2.2 - Shadow Plugin: For dependency bundling

🏗️ Build

```bash

Full build with all dependencies

./gradlew clean shadowJar

Compile only (without Shadow)

./gradlew build ```

The final JAR is approximately 16 MB in size and contains all necessary dependencies.

📝 Important Notes

- Database Backup: Must be a direct `.zip` download URL - Database Backup: Players can freely switch between backend servers - Database Backup: Data is automatically cleaned up on disconnect - Database Backup: SQLite file can be easily copied/backed up

🐛 Troubleshooting

Plugin doesn't load

- Make sure Velocity 3.4.0-SNAPSHOT is running - Check if all dependencies are correctly bundled

Resource pack is not sent

- Check the `resourcePackUrl` in the configuration - Make sure the URL is accessible

Players are not forwarded

- Check the server logs for errors - Make sure backend servers are available

📜 License

Created by thelion

🤝 Support

For questions or problems: - Create an issue in the GitHub repository - Check the logs for error messages - Make sure all dependencies are correctly installed

---

Good luck with your Velocitypacker plugin! 🎮

ADS