- 版权类型
- 原创
- 插件中文名称
- WarZ动态市场
- 插件英文名称
- WarZDynamicMarket
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Purpur
- PufferFish
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- Vault
PlaceholderAPI
PlayerPoints
- 适配版本(Java)
- 1.20
[MD]
# 🧟 WarZDynamicMarket —— 末日生存动态市场插件
让你的末日、WarZ、RPG 服务器拥有真实浮动的经济系统!
支持动态价格、玩家寄售、物物交换、TACZ 武器、点券交易、离线领取箱与 Web 编辑器。
---
## 📦 插件信息
| 项目 | 内容 |
|------|------|
| **支持版本** | Spigot 1.20.1 |
| **Java 版本** | Java 17 |
| **前置插件** | Vault + 任意 Vault 经济插件 |
| **可选前置** | PlayerPoints(点券市场)、PlaceholderAPI(变量支持) |
| **存储方式** | SQLite / MySQL |
| **适用类型** | 末日生存、WarZ、RPG、生存经济、枪械服 |
| **原生语言** | 中文 |
---
## ✨ 核心功能
### 📈 系统动态市场
- 管理员预设商品,价格随**库存供需实时变化**
- **滑点机制**:连续买入越来越贵,连续卖出越来越便宜,防止无脑刷钱
- 动态价格公式,自由调节**波动率、价格上下限、库存回归速度**
- 支持金币(Vault)和点券(PlayerPoints)两种结算,每个商品可独立设定
- 手持上传系统商品,完美保留 TACZ 武器、NBT、CustomModelData
### 🛒 玩家寄售市场
- 玩家可上架**任意非黑名单物品**,自定义金币或点券出售
- 快捷批量上架,自动聚合完全相同的物品(NBT、Meta 一致才不会合并)
- 寄售成交后,卖家收益直接到账或进入离线领取箱
- **系统税收/手续费**完整可配(比例税 + 固定税)
### 🔁 物物交换市场
- 玩家手持物品发起以物换物,无需手写复杂格式
- 两次手持物品 + 两次数量输入,即可创建交换挂单
- 支持**多物品求购**,买家必须一次性满足所有条件才能成交
- 原子结算:缺任意一项都会失败,**绝不吞物品**
- 交换市场税收固定扣金币
### 📬 离线领取箱
- 离线收益、背包满未领取物品、寄售/交换返还,统一进入领取箱
- 不依赖任何邮件插件,插件自身数据库管理
### 🛠️ 管理员利器
- 游戏内管理员 GUI(`/wdm admin`),管理分类、图标、查看日志
- **本地 Web 轻编辑器**,浏览器修改商品价格、库存、参数
- 交易日志系统:记录所有买卖、寄售、交换操作,支持按玩家筛选
- 配置导入/导出,备份无忧
- 手持上传 TACZ 枪械,一键录入系统市场
### 🎨 强大兼容
- **TACZ 武器、自定义 NBT、CustomModelData** 全兼容
- 分级商品分类(父分类+子分类),支持自动归类规则
- 分类图标支持手持替换,TACZ 武器图标不再乱码
- 上架黑名单(显示名/Lore 关键字),防止违规物品流通
---
## 📥 安装步骤
1. 将 `WarZDynamicMarket.jar` 放入服务器 `plugins` 目录。
2. 确保已安装 **Vault** 和一个经济插件(如 EssentialsX、CMI 等)。
3. (可选)安装 **PlayerPoints** 启用点券市场。
4. (可选)安装 **PlaceholderAPI** 以使用占位符变量。
5. 重启服务器,生成默认配置文件。
6. 编辑 `plugins/WarZDynamicMarket/` 下的配置文件。
7. 使用 `/wdm reload` 热重载配置,或再次重启。
> ⚠️ 修改数据库类型、MySQL 连接等底层配置后,请重启服务器。
---
## 🎮 玩家命令
| 命令 | 说明 |
|------|------|
| `/wdm` | 打开市场主界面 |
| `/wdm open` | 打开市场主界面 |
| `/wdm sell` | 打开向系统出售界面 |
| `/wdm ticker` | 打开行情界面 |
| `/wdm barter` | 打开物物交换市场 |
| `/wdm vault` | 打开金币寄售市场 |
| `/wdm points` | 打开点券寄售市场 |
| `/wdm claims` | 打开个人离线领取箱 |
---
## 🛡️ 管理员命令
| 命令 | 说明 |
|------|------|
| `/wdm admin` | 打开管理员 GUI 面板 |
| `/wdm reload` | 重载全部配置和市场状态 |
| `/wdm web` | 查看 Web 编辑器访问地址 |
| `/wdm logs [数量] [玩家名]` | 查询最近交易日志 |
| `/wdm upload <商品Key> <分类Key> <基础价格> [库存] [目标库存] [最大库存] [匹配规则] [货币]` | 手持物品上传为系统商品 |
| `/wdm export` | 导出当前配置备份 |
| `/wdm import <备份文件名>` | 从备份导入配置 |
| `/wdm claims audit` | 打开领取箱审计界面(管理员查看所有玩家领取箱) |
### 上传命令示例
```text
/wdm upload ak47 weapon 5000 10 10 100 EXACT_NBT
/wdm upload gold_armor armor_tier_3 8000 5 20 50 SAME_TYPE_META
/wdm upload tacz_box weapon 100 10 10 50 EXACT_NBT PLAYER_POINTS
```
- 匹配规则:`MATERIAL_ONLY`(仅材质)、`SAME_TYPE_META`(同材质同Meta)、`EXACT_NBT`(完全匹配NBT,推荐TACZ)
- 货币:不填默认金币,也可填 `PLAYER_POINTS`
---
## 🔐 权限节点
| 权限 | 默认 | 说明 |
|------|------|------|
| `warzdynamicmarket.use` | 所有人 | 使用市场基础功能 |
| `warzdynamicmarket.admin` | OP | 管理员面板、重载、上传、导入导出 |
| `warzdynamicmarket.web` | OP | 查看Web编辑器地址 |
| `warzdynamicmarket.claims.admin` | OP | 查看他人领取箱(审计) |
---
## ⚙️ 配置文件一览
插件配置目录:`plugins/WarZDynamicMarket/`
| 文件 | 用途 |
|------|------|
| `config.yml` | 数据库、市场规则、税收、黑名单、Web编辑器 |
| `categories.yml` | 商品分类(父/子分类、自动归类规则、图标) |
| `system-market.yml` | 系统市场商品完整配置(价格、库存、波动参数) |
| `gui.yml` | GUI 标题和界面文案 |
| `messages.yml` | 全部聊天提示消息,支持 & 颜色代码 |
### 税收系统(config.yml 部分)
```yaml
tax:
enabled: true
system-buy: # 系统购买税
rate: 0.02
system-sell: # 系统出售税
rate: 0.01
listing-create: # 寄售上架税
fixed: 100.0
listing-sale-seller: # 寄售成交税(卖家)
rate: 0.05
listing-buy-buyer: # 寄售购买税(买家)
rate: 0.0
barter-create: # 交换上架税
fixed: 50.0
barter-fulfill: # 交换成交税
rate: 0.0
```
> 每个税收项支持 `rate`(比例)和 `fixed`(固定值),金币寄售扣金币,点券寄售扣点券,物物交换扣金币。
### 动态价格公式
```
price = basePrice * (1 + ((targetStock - currentStock)/targetStock) * volatility)
最终价格会在 [basePrice*floorMultiplier, basePrice*capMultiplier] 之间
```
- **库存越低,价格越高;库存越高,价格越低**,完美模拟供需关系。
---
## 🧩 PlaceholderAPI 变量
安装 PlaceholderAPI 后自动注册:
### 玩家变量
- `%wdm_player_claims%` - 未领取的领取箱条目数
- `%wdm_player_listings_vault%` - 金币寄售挂单数
- `%wdm_player_listings_points%` - 点券寄售挂单数
- `%wdm_player_barters%` - 交换挂单数
### 全服统计
- `%wdm_market_vault_listings%` - 全服金币寄售总数
- `%wdm_market_points_listings%` - 全服点券寄售总数
- `%wdm_market_barters%` - 全服交换挂单总数
### 系统商品详情
- `%wdm_item_<商品Key>_price%` - 商品当前单价
- `%wdm_item_<商品Key>_stock%` - 当前库存
- `%wdm_item_<商品Key>_base%` - 基础价格
- `%wdm_item_<商品Key>_currency%` - 结算货币
- 更多:`_name`, `_target`, `_max`, `_category`
示例:`%wdm_item_ak47_price%`、`%wdm_item_diamond_stock%`
---
## 🌐 Web 轻编辑器
- 在浏览器中修改**分类、系统商品价格/库存/参数**,无需反复重启
- 访问方式:控制台或游戏内 `/wdm web` 查看带 token 的地址
- 配置:
```yaml
web-editor:
enabled: true
host: 127.0.0.1
port: 18766
public-url: "https://你的域名/editor" # 可选,用于外网访问
```
- 🔒 **安全提醒**:默认仅本机访问,公网使用请务必配置反向代理和强密码令牌
---
## 💡 常见问题
### ❓ Web编辑器地址打不开?
默认监听 `127.0.0.1`,只能服务器本机访问。请设置 `public-url` 为公网地址,或通过反向代理暴露。
### ❓ TACZ武器上架后消失/图标乱码?
- 系统商品:请使用 `/wdm upload` 手持上传,不要手写配置。
- 分类图标:在管理员面板手持 TACZ 武器点击“替换图标”。
- 玩家寄售:直接上架即可,插件已兼容 TACZ 复杂 Meta。
### ❓ 买得越多越贵?
这是**滑点机制**,逐件模拟库存变化,连续购买会推高单价,真实市场逻辑。
### ❓ 买完立刻卖给系统为什么亏钱?
防套利设计。系统收购价是按**物品进入库存后的价格**并乘以 `system-sell-price-multiplier`(默认0.85)计算的。
### ❓ 点券商品无法购买?
检查:PlayerPoints 插件是否正常运行;该商品是否配置了 `currency-type: PLAYER_POINTS`;玩家点券余额是否足够支付货款+税费。
### ❓ 上架/购买提示手续费不足?
插件会预先检查税费,不足时直接拒绝。请检查 `tax` 配置,或让玩家确保携带足够金币/点券。
---
## 📊 推荐配置思路
- **普通资源市场**(矿物、建材):`MATERIAL_ONLY`,高库存,低波动,允许双向买卖。
- **TACZ/枪械装备市场**:`/wdm upload` 使用 `EXACT_NBT`,低库存,高波动,建议只卖不回收(`sell-enabled: false`)。
- **战利品变卖商店**:分级分类(如 `绿色品质/紫色品质`),系统只收购不出售,实现垃圾回收经济。
---
## 📢 联系与支持
- 作者:**Crazy_Jky**
- 插件技术交流群:`398893720`
- 末日服务器交流群:`1063544727`
- 定制开发 / 咨询:QQ `1285988665`
- 支持作者:[爱发电](https://afdian.com/a/sunjood)
---
> 将真实的供需波动、玩家自由交易与离线保障结合,给你的末日世界一个活的经济脉搏。
> **立即下载,让市场动起来!**
[/MD]