- 版权类型
- 原创
- 插件中文名称
- 逸云CE家具商城插件
- 插件英文名称
- YiyunCEfurniture
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Folia
- Purpur
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- CraftEngine https://github.com/Xiao-MoMi/craft-engine
vault https://www.spigotmc.org/resources/vault.34315/
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
[MD]
# YiyunCEfurniture - 逸云CE家具商城插件
**为 CraftEngine 打造的专业家具商城解决方案 | 轻量化 | 高性能 | 稳定更新**
***
## 📖 简介
YiyunCEfurniture 是一款专为 CraftEngine 设计的自定义家具商城插件。玩家可以在指定区域内浏览、购买精美的自定义家具,服主可以轻松管理商品价格和商城区域。
***
## ✨ 功能特性
### 🛒 商城系统
- **可视化购买界面** - 直观的 GUI 界面,展示家具信息和价格
- **区域限制** - 支持在指定区域内才能购买家具
- **多区域管理** - 可创建多个独立的商城区域
### 💡 TOOLTIP 模式 (v1.2.0 新增)
- **视线检测** - 看向家具自动显示价格信息
- **快速购买** - Shift+左键直接购买,无需打开界面
- **自定义模板** - 支持自定义提示内容和样式
- **余额显示** - 实时显示玩家余额和购买能力
- **灵活配置** - 可调整检测距离、显示时长等参数
### 💰 经济系统
- **双重经济支持** - 支持 Vault 经济和物品货币两种模式
- **灵活的货币配置** - 可自定义货币物品类型和名称
- **余额检查** - 自动检测玩家余额是否充足
### 📝 价格管理
- **交互式编辑** - 通过 GUI 直观地调整家具价格
- **批量调整** - 支持快速增减价格(+1, +10, +100, -1, -10, -100)
- **聊天输入** - 支持直接在聊天框输入精确价格
### 🔧 管理功能
- **选区工具** - 提供便捷的选区工具创建商城区域
- **编辑模式** - 进入编辑模式后点击家具即可修改价格
- **完整权限** - 细致的权限节点控制
### 🎯 平台兼容
- **Folia 支持** - 完全兼容 Folia 服务器,利用区域化调度提升性能
- **Paper/Spigot 兼容** - 同时支持传统 Paper/Spigot 服务器
- **跨版本兼容** - 支持 1.20.1+ 版本
***
## 🆚 产品对比
### 与传统菜单式家具商城的区别
传统的家具商城多采用 **菜单式购买**(打开一个 GUI 菜单,列出所有家具供选择),而本插件采用 **场景式购买**(直接点击世界中的家具进行购买)。
| 特性 | 传统菜单式商城 | YiyunCEfurniture |
| :--: | :-----------: | :---------------------: |
| 购买体验 | 需要打开菜单翻页查找 | 🎯 **所见即所得**,直接点击购买 |
| 展示效果 | 菜单图标,无法看到实际效果 | ✨ **真实展示**,看到的就是买到的 |
| 空间利用 | 菜单空间有限,需要翻页 | 🏠 **无限展示**,整个商城区域都是展示区 |
| 沉浸感 | 较低,脱离游戏场景 | 🎮 **高沉浸感**,边逛边买 |
| 家具预览 | 只能看图标,无法交互 | 👀 **完整预览**,可以正常交互家具 |
| 价格展示 | 需要悬停查看 Lore | 💰 **直观显示**,购买界面清晰展示价格 |
| 区域限制 | 通常无区域限制 | 📍 **灵活限制**,可设置多个独立商城区域 |
| 装修自由 | 菜单样式固定 | 🎨 **自由装修**,商城可按喜好布置 |
### 购买流程对比
#### 📋 传统菜单式购买流程
```
第一步: 打开菜单 → 输入命令或点击NPC
第二步: 翻页查找 → 在几十页中寻找想要的家具
第三步: 悬停查看信息 → 只能看到图标和文字描述
第四步: 点击购买 → 无法预览实际效果
第五步: 确认购买 → 可能买错样式或颜色
```
> ❌ **痛点**: 步骤繁琐、难以找到目标、无法预览、容易买错
#### ✨ YiyunCEfurniture 购买流程
```
第一步: 走进商城 → 像逛实体店一样漫步
第二步: 看到喜欢的家具 → 真实展示,所见即所得
第三步: Shift+左键点击 → 一键打开购买界面
第四步: 确认购买 → 清晰展示价格和信息
```
> ✅ **优势**: 简单直观、真实预览、所见即所得、不易买错
#### 🔄 流程对比图
| 对比项 | 传统菜单式 | YiyunCEfurniture |
| :--: | :----: | :--------------: |
| 操作步骤 | 5步 | 4步 |
| 查找方式 | 翻页查找 | 直接看到 |
| 预览效果 | ❌ 无法预览 | ✅ 真实展示 |
| 购买决策 | 容易买错 | 所见即所得 |
| 用户体验 | 较差 | 优秀 |
### 与传统脚本家具商城的区别
市面上常见的家具商城多采用 **脚本方式**(如 Skript、JavaScript 等)实现,而本插件采用 **Java 原生插件** 开发。
| 特性 | 传统脚本方案 | YiyunCEfurniture |
| :--: | :----------: | :---------------------------: |
| 性能表现 | 较低,每次交互需解释执行 | ⚡ **高性能**,编译后直接运行 |
| 稳定性 | 依赖脚本引擎,容易出错 | ✅ **稳定可靠**,原生 Java 开发 |
| 配置难度 | 需要修改脚本代码,门槛高 | 🎯 **配置简单**,只需编辑 YAML 文件 |
| 价格管理 | 需要手动编辑文件 | 🖱️ **可视化编辑**,GUI 界面直接调整 |
| 区域管理 | 需要手动计算坐标 | 🔧 **选区工具**,像 WorldEdit 一样简单 |
| 经济支持 | 通常只支持单一经济 | 💰 **双重支持**,Vault + 物品货币 |
| 更新维护 | 脚本可能随版本失效 | 📦 **持续更新**,跟随 CraftEngine 版本 |
| 调试支持 | 调试困难,日志有限 | 🐛 **调试模式**,详细日志输出 |
| 权限控制 | 通常权限节点有限 | 🔐 **细致权限**,完整权限节点 |
### 适用场景推荐
| 场景 | 推荐方案 |
| :--- | :--- |
| 小型服务器,技术能力强 | 脚本方案可满足,但过于局限 |
| 中大型服务器,追求性能 | ✅ **推荐本插件** |
| 需要稳定运营,减少故障 | ✅ **推荐本插件** |
| 非技术人员管理 | ✅ **推荐本插件** |
| 追求沉浸式体验 | ✅ **推荐本插件** |
| 需要家具预览 | ✅ **推荐本插件** |
***
## 📥 安装说明
### 环境要求
| 组件 | 版本要求 |
| :--- | :--- |
| Paper/Paper分支核心/ Folia| 1.20.1+ |
| Java | 21+ |
| CraftEngine | 26.5+ |
| Vault (可选) | 1.7.3 |
### 安装步骤
1. 确保服务器已安装 **CraftEngine** 插件
2. 如需使用 Vault 经济,请安装 **Vault** 插件
3. 将 `YiyunCEfurniture-x.x.x.jar` 放入 `plugins` 目录
4. 重启服务器,插件将自动生成配置文件
5. 检查控制台是否有配置错误提示
6. 使用 `/ycf tool` 获取选区工具,创建商城区域
***
## 🎮 使用教程
### 管理员快速上手
#### 1️⃣ 创建商城区域
```
/ycf tool # 获取选区工具
左键点击方块 # 设置第一个点
右键点击方块 # 设置第二个点
/ycf create <名称> # 创建区域
```
#### 2️⃣ 设置家具价格
```
/ycf edit # 进入编辑模式
左键点击家具/自定义方块 # 打开价格编辑界面
调整价格后点击确认 # 保存价格
```
#### 3️⃣ 管理商城
```
/ycf toggle # 开启/关闭商城
/ycf list # 查看已上架家具列表
/ycf listrg # 查看商城区域列表
/ycf reload # 重载配置文件
```
### 玩家使用指南
```
1. 进入商城区域
2. Shift + 左键点击想要购买的家具
3. 在购买界面查看价格和家具信息
4. 点击「确认购买」完成购买
```
> 💡 **提示**:
> - **普通左键点击** - 正常破坏家具(创造模式)
> - **普通右键点击** - 正常与家具交互(如旋转沙发、开关台灯)
> - **Shift + 左键点击** - GUI模式下打开购买界面 / TOOLTIP模式下直接购买
> - **看向家具** - TOOLTIP模式下自动显示价格信息
***
## ⌨️ 命令列表
| 命令 | 说明 | 权限 |
| :--- | :--- | :--- |
| `/ycf help` | 显示帮助信息 | `yiyuncefurniture.use` |
| `/ycf info` | 查看插件信息 | `yiyuncefurniture.use` |
| `/ycf list` | 查看已上架家具 | `yiyuncefurniture.admin` |
| `/ycf edit` | 进入/退出编辑模式 | `yiyuncefurniture.admin` |
| `/ycf tool` | 获取选区工具 | `yiyuncefurniture.admin` |
| `/ycf create <名称>` | 创建商城区域 | `yiyuncefurniture.admin` |
| `/ycf delete <名称>` | 删除商城区域 | `yiyuncefurniture.admin` |
| `/ycf listrg` | 查看区域列表 | `yiyuncefurniture.admin` |
| `/ycf setprice <ID> <价格>` | 设置家具价格 | `yiyuncefurniture.admin` |
| `/ycf delprice <ID>` | 删除家具价格 | `yiyuncefurniture.admin` |
| `/ycf toggle` | 开启/关闭商城 | `yiyuncefurniture.admin` |
| `/ycf reload` | 重载配置文件 | `yiyuncefurniture.admin` |
***
## ⚙️ 配置文件
### config.yml
```yaml
settings:
enabled: true # 是否启用商城
debug: false # 调试模式(开启后输出详细日志)
metrics: true # bStats统计
language: zh_cn # 语言
range-check: true # 是否启用区域检查(true=只能在商城区域内购买)
# 交互模式设置 (v1.2.0 新增)
interaction-mode: GUI # 交互模式: GUI / TOOLTIP
tooltip:
check-interval: 5 # 视线检测频率(ticks)
distance: 5.0 # 视线距离(方块)
duration: 40 # 显示时长(ticks)
fade-in: 0 # 淡入时间(ticks)
fade-out: 10 # 淡出时间(ticks)
display-position: TITLE # 显示位置: TITLE / ACTIONBAR
template: # 正常模板(余额充足)
- "&e&l{furniture_name}"
- "&7价格: &a{price} &7{currency}"
- "&eShift + 左键 &7购买"
insufficient-template: # 余额不足模板
- "&e&l{furniture_name}"
- "&7价格: &c{price} &7{currency}"
- "&c余额不足: &f{balance} &7{currency}"
economy:
type: vault # 经济类型: vault / item
item:
material: GOLD_INGOT # 货币物品类型(仅item模式生效)
name: null # 货币物品名称
lore: [] # 货币物品描述
vault:
check-balance: true # 是否检查余额(仅vault模式生效)
gui:
title: "&8&l家具商城" # GUI标题(支持颜色代码)
size: 27 # GUI大小(必须是9的倍数,范围9-54)
confirm:
slot: 11 # 确认按钮位置
info:
slot: 13 # 信息按钮位置
cancel:
slot: 15 # 取消按钮位置
sounds:
open: BLOCK_CHEST_OPEN # 打开GUI音效
success: ENTITY_EXPERIENCE_ORB_PICKUP # 成功音效
fail: BLOCK_NOTE_BLOCK_BASS # 失败音效
close: BLOCK_CHEST_CLOSE # 关闭音效
click: UI_BUTTON_CLICK # 点击音效
permissions:
use: yiyuncefurniture.use # 使用权限
admin: yiyuncefurniture.admin # 管理权限
```
### prices.yml
```yaml
# 家具价格配置
# 格式: 家具ID: 价格
#
# 如何获取家具ID:
# 1. 进入编辑模式: /ycf edit
# 2. 左键点击家具,会显示家具ID
# 3. 或使用 /ycf list 查看已上架家具
prices:
default:table_lamp: 100
default:chair: 50
default:sofa: 200
```
### messages.yml
支持自定义所有消息内容,包含颜色代码支持。
***
## ❓ 常见问题
### Q: 玩家点击家具没有反应?
**A:** 请检查以下几点:
1. 玩家是否在商城区域内(需要先创建区域)
2. 家具是否已设置价格
3. 玩家是否按住 **Shift 键 + 左键点击**
4. 配置中 `range-check` 是否为 `true`
### Q: 为什么使用 Shift + 左键而不是 Shift + 右键?
**A:** 这是为了避免与家具的正常交互冲突:
- **Shift + 右键** - CraftEngine 中某些家具(如沙发)会触发旋转功能
- **Shift + 左键** - 不会触发任何家具交互,专门用于购买
### Q: 如何获取家具ID?
**A:** 有三种方式:
1. 使用 `/ycf edit` 进入编辑模式,左键点击家具会显示ID
2. 使用 `/ycf list` 查看已上架的家具列表
3. 使用CraftEngine插件的 `/ce` 拿出物品,然后使用 `/ce debug item-data` 查看物品ID
### Q: 如何使用物品货币?
**A:** 修改 `config.yml` 中的配置:
```yaml
economy:
type: item
item:
material: GOLD_INGOT # 货币物品
name: "&6金币" # 可选:自定义名称
```
### Q: 插件支持 Folia 服务器吗?
**A:** ✅ **完全支持!**
本插件使用 FoliaLib 实现了对 Folia 服务器的原生支持:
- **区域化调度** - 在 Folia 上使用区域化调度器,提升性能
- **实体退休处理** - 玩家下线后任务自动清理,避免内存泄漏
- **线程安全** - 所有操作都在正确的线程上下文中执行
- **无缝兼容** - 同样支持传统 Paper服务器
启动时插件会自动检测服务器类型并适配相应的调度器。
### Q: TOOLTIP 模式和 GUI 模式有什么区别?
**A:** 两种模式提供不同的购买体验:
| 特性 | GUI 模式 | TOOLTIP 模式 |
| :--- | :--- | :--- |
| 交互方式 | Shift+左键 → 打开购买界面 | 看向家具 → 显示提示,Shift+左键 → 直接购买 |
| 购买确认 | 有确认界面,防误触 | 直接购买,更快捷 |
| 适合场景 | 首次购买,需要确认 | 熟悉价格后,快速购买 |
| 沉浸感 | 中等 | 高,无需打开界面 |
可在 `config.yml` 中通过 `interaction-mode` 自由切换。
***
## 🤝 支持与反馈
- **作者**: CHL_chun
- **QQ**: 2919089965
- **QQ交流群**: 1093090518 (禁广,可以在群内反馈问题,或者想要什么新的功能可以在群内提出)
[/MD]