add item commands

This commit is contained in:
2026-04-01 18:18:05 +08:00
commit c9ae8e02e1
246 changed files with 51813 additions and 0 deletions

206
README.md Normal file
View File

@@ -0,0 +1,206 @@
# BedwarsRel - 指令商店物品扩展版
基于 [BedwarsRel](https://github.com/BedwarsRel/BedwarsRel) 的改进版本,添加了**指令商店物品**功能支持。
[![License](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Minecraft](https://img.shields.io/badge/Minecraft-1.12.2-green.svg)](https://www.minecraft.net/)
[![API](https://img.shields.io/badge/API-Spigot%201.12-orange.svg)](https://www.spigotmc.org/)
## 📋 项目说明
本项目是 BedwarsRel 的分支版本,在保留原项目所有功能的基础上,添加了**商店物品执行指令**功能。这使得服务器管理员可以配置特殊的商店物品,当玩家购买时执行自定义命令而非给予物品。
### 原项目信息
- **原作者**: BedwarsRel-Team
- **原仓库**: https://github.com/BedwarsRel/BedwarsRel
- **原许可证**: GNU General Public License v3.0
## ✨ 新增功能
### 1. 指令商店物品支持
`shop.yml` 中配置带命令的商店物品:
```yaml
shop:
special:
item: STICK
name: "§d特殊商店"
order: 1
offers:
- reward:
- item: STONE
amount: 1
name: "§c测试命令物品"
commands:
- 'say %player% 购买了命令物品'
- 'give %player% diamond 1'
price:
- type: IRON_INGOT
amount: 4
```
### 2. 支持两种配置格式
**格式1 - 扩展格式**(推荐):
```yaml
reward:
- item: LINGERING_POTION
amount: 1
name: "§c力量药水"
lore:
- '§7效果: 力量 I'
effects:
- type: STRENGTH
duration: 180
amplifier: 1
```
**格式2 - 标准格式**
```yaml
reward:
- type: STONE
amount: 1
meta:
display-name: "§c测试物品"
```
### 3. 与 BedwarsXP 兼容
修改后的版本同时支持 BedwarsXP 经验商店插件,在经验模式下也能正常使用指令商店物品。
## 📥 安装说明
### 前置要求
- Spigot/Paper 1.12.2 服务器
- Java 8 或更高版本
### 安装步骤
1. 下载 `BedwarsRel-1.3.6.jar`
2. 将 jar 文件放入服务器的 `plugins/` 目录
3. 重启服务器
4. 编辑 `plugins/BedwarsRel/shop.yml` 添加带命令的商店物品
5. 使用 `/bw reload` 重载配置
## 🔧 配置示例
### 完整 shop.yml 示例
```yaml
shop:
blocks:
item: SANDSTONE
name: "§e方块"
order: 10
lore:
- "§7建筑方块"
offers:
# 普通物品
- reward:
- type: SANDSTONE
amount: 4
price:
- type: BRONZE
amount: 1
meta:
display-name: "§c青铜"
# 命令物品示例
- reward:
- item: STONE
amount: 1
name: "§c传送物品"
lore:
- "§7点击传送到基地"
commands:
- 'tp %player% 0 100 0'
- 'say %player% 使用了传送物品!'
price:
- type: IRON_INGOT
amount: 2
meta:
display-name: "§7铁锭"
weapons:
item: DIAMOND_SWORD
name: "§c武器"
order: 20
offers:
- reward:
- type: DIAMOND_SWORD
amount: 1
meta:
enchants:
DAMAGE_ALL: 1
price:
- type: GOLD_INGOT
amount: 4
meta:
display-name: "§6金锭"
```
## 🏗️ 构建说明
### 环境要求
- Maven 3.6+
- Java 8
- Git
### 构建步骤
```bash
# 克隆仓库
git clone https://git.lnkos.cn/atob/BedwarsRel.git
cd BedwarsRel-CommandShop
# 构建项目
mvn clean package -DskipTests
# 生成的 jar 文件位于:
# plugin/target/BedwarsRel-1.3.6.jar
```
### 模块说明
- `common/` - 核心代码模块
- `v1_12_r1/` - 1.12.2 版本 NMS 适配
- `plugin/` - 最终打包模块
## 📜 许可证
本项目基于 [GNU General Public License v3.0](LICENSE) 发布。
### 改进内容版权声明
本改进版本在 BedwarsRel 原项目基础上添加了以下功能:
- 指令商店物品支持
- 改进的物品匹配逻辑
- BedwarsXP 插件兼容性支持
所有新增代码同样遵循 GPL-3.0 许可证。
## 🤝 贡献指南
欢迎提交 Issue 和 Pull Request
## 📝 更新日志
### v1.3.6+ (2026-04-01)
- ✨ 新增指令商店物品功能
- ✨ 兼容 BedwarsXP 经验商店插件
- 🔧 修复物品匹配逻辑问题
- 🔧 优化药水类物品解析
## 👥 致谢
- [BedwarsRel-Team](https://github.com/BedwarsRel) - 原项目开发团队
- [SpigotMC](https://www.spigotmc.org/) - 提供服务器 API
---
**免责声明**: 本插件按"原样"提供,不对因使用本插件造成的任何损失负责。