# PlayerBlockLife

## English Version

### 🎮 Introduction
PlayerBlockLife is a unique Minecraft plugin that adds a novel gameplay mechanic to servers. Each player has 5 life blocks buried underground, which use the player's skin as their texture. When other players dig up all these blocks, the player dies.

### ✨ Features
- 🎭 Uses player skins as block textures
- ⚡ Real-time skin loading without pre-generation
- 🔄 Asynchronous data processing for optimal performance
- 📊 Complete health system and status effects
- 🎯 Beautiful particle effects and sounds
- 🔧 Highly configurable game rules
- 🗺️ Multi-world and region protection support
- 💾 Multiple data storage options
- 👨💼 Comprehensive admin tools

### 🚀 Quick Start

#### Installation
1. Download the plugin from the ./Releases folder or https://gt.funmc.cn/xiaobai/PlayerBlockLife/releases
2. Place the JAR file in your server's `plugins` folder
3. Restart your server

#### Player Commands
```bash
# Set your life blocks
/setlifeblocks

# View block locations
/checklifeblocks

# Reset block positions
/setlifeblocks reset
```

#### Admin Commands
```bash
# Reload configuration
/pblreload

# Delete player blocks
/pbldelete <playername>

# Revive eliminated player
/pblrevive [playername]

# View plugin statistics
/pblstats

# Set blocks for other player
/setlifeblocks other <playername>
```

### ⚙️ Configuration
The plugin configuration is located at `plugins/PlayerBlockLife/config.yml`. Key sections include:
- **blocks**: Block-related settings
- **game**: Game rules and mechanics
- **skin**: Skin system configuration
- **storage**: Data storage options
- **messages**: Customizable messages
- **effects**: Visual and audio effects
- **protection**: Protection and security settings

### 🛠️ Building from Source
If you want to build the plugin yourself:

#### Prerequisites
- Java 17 or higher
- Gradle 8.7 or higher
- IntelliJ IDEA (recommended) or another Java IDE

#### Build Steps
1. Clone or download the source code
2. Open the project in IntelliJ IDEA
3. Wait for Gradle to sync dependencies
4. Run the `shadowJar` task in the Gradle panel
5. The compiled JAR will be in `build/libs/`

### 📦 Releases
Pre-compiled versions are available in the ./Releases folder or https://gt.funmc.cn/xiaobai/PlayerBlockLife/releases. We recommend downloading from there for stable builds.

### 🎯 Gameplay

#### Basic Rules
1. Each player starts with 5 life blocks
2. Blocks are buried underground near the player's location
3. Blocks use the player's skin as their texture
4. Other players can dig up these blocks
5. When all blocks are dug up, the player dies
6. Players can move freely while their blocks remain

#### Strategies
- 🎮 Hide your blocks in hard-to-find locations
- 🔍 Search for other players' blocks
- ⚔️ Form alliances or engage in competition
- 🏃 Keep moving to avoid being tracked
- 🎯 Target the most threatening players first

### 🐛 Troubleshooting

#### Common Issues
1. **Skins not loading**
    - Check network connectivity
    - Ensure players have been online before
    - Verify skin cache directory permissions

2. **Blocks not placing**
    - Ensure there's enough space around
    - Check world protection settings
    - Review console error messages

3. **Plugin not loading**
    - Verify Java version compatibility
    - Check server version matches
    - Ensure dependencies are complete

### 🤝 Contributing
We welcome contributions! Please:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Submit a pull request

### 📄 License
This project is licensed under the MIT License. See the LICENSE file for details.

---

## 中文版本

### 🎮 简介
PlayerBlockLife 是一个独特的Minecraft插件，为服务器增加了一种新颖的游戏玩法。每个玩家拥有5个生命方块，这些方块埋藏在地下，并使用玩家的皮肤作为材质。当其他玩家挖完这些方块时，该玩家就会死亡。

### ✨ 特色功能
- 🎭 使用玩家皮肤作为方块材质
- ⚡ 实时皮肤加载，无需预生成
- 🔄 异步数据处理，不影响服务器性能
- 📊 完整的生命值系统和状态效果
- 🎯 精美的粒子效果和音效
- 🔧 高度可配置的游戏规则
- 🗺️ 支持多世界和地区保护
- 💾 多种数据存储方式
- 👨💼 完善的管理员工具

### 🚀 快速开始

#### 安装方法
1. 从./Releases文件夹或者https://gt.funmc.cn/xiaobai/PlayerBlockLife/releases下载插件
2. 将JAR文件放入服务器的`plugins`文件夹
3. 重启服务器

#### 玩家命令
```bash
# 设置你的生命方块
/setlifeblocks

# 查看方块位置
/checklifeblocks

# 重置方块位置
/setlifeblocks reset
```

#### 管理员命令
```bash
# 重载配置
/pblreload

# 删除玩家方块
/pbldelete <玩家名>

# 复活被淘汰的玩家
/pblrevive [玩家名]

# 查看插件统计
/pblstats

# 为其他玩家设置方块
/setlifeblocks other <玩家名>
```

### ⚙️ 配置说明
插件配置文件位于 `plugins/PlayerBlockLife/config.yml`。主要配置项包括：
- **blocks**: 方块相关设置
- **game**: 游戏规则和机制
- **skin**: 皮肤系统配置
- **storage**: 数据存储选项
- **messages**: 可自定义的消息
- **effects**: 视觉和音频效果
- **protection**: 保护和安全性设置

### 🛠️ 从源码构建
如果你想自己构建插件：

#### 环境要求
- Java 17 或更高版本
- Gradle 8.7 或更高版本
- IntelliJ IDEA（推荐）或其他Java IDE

#### 构建步骤
1. 克隆或下载源代码
2. 在IntelliJ IDEA中打开项目
3. 等待Gradle同步依赖
4. 在Gradle面板中运行 `shadowJar` 任务
5. 编译后的JAR文件位于 `build/libs/`

### 📦 发布版本
预编译的版本可以在 ./Releases 文件夹或https://gt.funmc.cn/xiaobai/PlayerBlockLife/releases中找到。我们建议从这里下载以获得稳定版本。

### 🎯 游戏玩法

#### 基本规则
1. 每个玩家初始有5个生命方块
2. 方块埋藏在玩家位置附近的地下
3. 方块使用玩家的皮肤作为材质
4. 其他玩家可以挖掘这些方块
5. 当所有方块被挖光时，玩家死亡
6. 玩家在方块未被挖完时可以自由移动

#### 策略技巧
- 🎮 将方块隐藏在难以找到的地方
- 🔍 寻找其他玩家的方块
- ⚔️ 与其他玩家结盟或对抗
- 🏃 保持移动，避免被追踪
- 🎯 优先攻击威胁最大的玩家

### 🐛 故障排除

#### 常见问题
1. **皮肤无法加载**
    - 检查网络连接
    - 确保玩家之前在线过
    - 检查皮肤缓存目录权限

2. **方块无法放置**
    - 确保周围有足够空间
    - 检查世界保护设置
    - 查看控制台错误信息

3. **插件无法加载**
    - 确认Java版本兼容性
    - 检查服务器版本匹配
    - 确保依赖完整

### 🤝 贡献指南
我们欢迎贡献！请按以下步骤：
1. Fork 代码仓库
2. 创建功能分支
3. 进行修改
4. 提交拉取请求

### 📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。