Drwei's PetManager

A powerful and feature-rich pet management plugin for Paper Minecraft servers. This plugin allows players to bind mobs as pets with custom names, colors, behaviors, potion effects, attributes, team sharing, and advanced features.

15

Quick challenge

How far can you run before the mobs catch you?

Drwei's PetManager

Drwei's PetManager

A powerful and feature-rich pet management plugin for Paper Minecraft servers. This plugin allows players to bind mobs as pets with custom names, colors, behaviors, potion effects, attributes, team sharing, and advanced features like TRUCK collision damage mode and RIDEABLE mode.

Features

Core Features

- Team System: Bind any living entity as your pet with custom name and color - Team System: Support for Minecraft color codes, color names, and hex colors - Team System: follow, stay, attack, guard, wander - Team System: Apply custom potion effects to pets - Team System: Modify pet attributes like health, speed, damage, etc. - Team System: Respawn dead pets with all their data preserved - Team System: Share pets with team members

Advanced Features

- Multi-language Support: Collision damage system when riding pets - Normal mode: Damage based on speed (0-255) - SECKILL mode: Always 255 damage - Multi-language Support: Ride any mob, including flying creatures - WASD controls for movement - Space to jump/fly up - Shift to exit - Flying creatures support vertical movement - Multi-language Support: Apply all positive potion effects and set max health to 2048 - Multi-language Support: Automatic data persistence every 5 minutes - Multi-language Support: Adjust settings without server restart - Multi-language Support: English and Chinese

Installation

1. Download the latest version from the Releases page or this Modrinth page. 2. Place the `DrweiPetManager-<version>.jar` file in your server's `plugins` folder 3. Restart your server 4. Configure the plugin in `plugins/DrweiPetManager/config.yml`

Requirements

- Java Version: 1.21.1 - Java Version: Paper API 1.21.1 or higher - Java Version: 21

Commands

Player Commands

| Command | Description | Permission | |---------|-------------|------------| | `/pet` | Show help message | `petbinder.use` | | `/pet bind <type> <distance> <name> [public] [color]` | Bind a mob as pet | `petbinder.bind` | | `/pet list` | List your pets | `petbinder.list` | | `/pet portal [index]` | Teleport pet to you | `petbinder.portal` | | `/pet rename <index> <name> [color]` | Rename pet | `petbinder.rename` | | `/pet team <create|join|leave|info|addpet> [args]` | Manage pet teams | `petbinder.team` | | `/pet behavior <index> <follow|stay|attack|guard|wander>` | Set pet behavior | `petbinder.behavior` | | `/pet effect <index> <effect|invincible> [duration] [amplifier]` | Apply potion effects | `petbinder.effect` | | `/pet attribute <index> [attribute] [value]` | Modify pet attributes | `petbinder.attribute` | | `/pet unbind [index]` | Release pet | `petbinder.unbind` | | `/pet respawn` | Respawn dead pet | `petbinder.respawn` | | `/pet version` | Show plugin version | `petbinder.use` |

Admin Commands

| Command | Description | Permission | |---------|-------------|------------| | `/pet op list` | List all pets on server | `petbinder.op` | | `/pet op remove <player>` | Remove all pets from player | `petbinder.op` | | `/pet op config <action> [args]` | Dynamic configuration | `petbinder.op` | | `/pet op reload` | Reload configuration | `petbinder.op` | | `/pet op save` | Save pet data manually | `petbinder.op` | | `/pet op load` | Load pet data manually | `petbinder.op` |

Configuration

Basic Configuration

```yaml language: zh # Language: en or zh max-bind-distance: 10 # Maximum binding distance in blocks teleport-with-owner: true # Pets teleport with owner protect-from-all-damage: false # Protect pets from all damage remove-on-quit: false # Remove pets when owner quits ```

Permissions & Limits

```yaml permissions: max-pets-per-player: 0 # 0 = unlimited allowed-commands: bind: true list: true portal: true rename: true team: true behavior: true effect: true attribute: true unbind: true respawn: true allowed-features: truck: true rideable: true invincible: true seckill: true public-pets: true team-system: true blocked-entity-types: [] # Entities that cannot be bound max-truck-damage: 0 # 0 = unlimited ```

Usage Examples

Binding a Pet

``` /pet bind nearest 10 MyPet public &a ```

This binds the nearest mob within 10 blocks as a pet named "MyPet" with green color.

Setting Pet Behavior

``` /pet behavior 1 follow ```

This sets pet #1 to follow mode.

Making Pet Invincible

``` /pet effect 1 invincible ```

This applies all positive potion effects to pet #1.

Enabling TRUCK Mode

``` /pet attribute 1 truck 0.5 false ```

This enables TRUCK mode for pet #1 with minimum speed 0.5 blocks/sec.

Enabling SECKILL Mode

``` /pet attribute 1 truck 0.5 true ```

This enables SECKILL mode (always 255 damage) for pet #1.

Making Pet Rideable

``` /pet attribute 1 rideable ```

This enables rideable mode for pet #1.

Creating a Team

``` /pet team create MyTeam ```

This creates a new team named "MyTeam".

Adding Pet to Team

``` /pet team addpet MyTeam 1 ```

This adds pet #1 to the team "MyTeam".

Data Persistence

The plugin uses dual storage mechanism:

1. File Persistence: Real-time storage in entity NBT data 2. File Persistence: YAML file storage at `plugins/DrweiPetManager/pets.yml`

Auto-save runs every 5 minutes. You can also manually save/load using admin commands.

Building from Source

Prerequisites

- Java 21 - Maven 3.6+

Build Commands

```bash

Clone the repository

git clone https://github.com/herbrine8403/DrweiPetManager.git cd DrweiPetManager

Build the plugin

mvn clean package

The JAR file will be in target/DrweiPetManager-Beta0.1.0.jar

```

Permissions

All permissions use the prefix `petbinder.`:

- `petbinder.use` - Basic usage permission - `petbinder.bind` - Bind pets - `petbinder.list` - List pets - `petbinder.portal` - Teleport pets - `petbinder.rename` - Rename pets - `petbinder.team` - Manage teams - `petbinder.respawn` - Respawn pets - `petbinder.behavior` - Set pet behavior - `petbinder.effect` - Add potion effects - `petbinder.attribute` - Modify attributes - `petbinder.unbind` - Release pets - `petbinder.op` - Admin commands (default: OP only)

Support

- Issues: Report bugs and feature requests on Issues or %%MD1%%

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

- Paper API: Drwei - Paper API: Paper API

Changelog

Beta0.1.0

- Initial beta release - Core pet binding and management features - Team system - TRUCK mode with SECKILL support - RIDEABLE mode - Auto-save mechanism - Dynamic configuration - Multi-language support (English/Chinese)

ADS