
SDM商店2
一个多功能商店,用于在整合包或服务器上创建经济体系
SDM 商店 2
SDM 商店 2 是原版 SDM 商店模组的现代化重写:一个为 Minecraft 服务器和整合包设计的灵活、可配置且服务器权威的商店系统。
SDM 商店 2 没有将每个交易硬编码成一种固定格式,而是使用实体组件系统(ECS)。商店和交易由可复用的组件组合而成,例如价格、奖励、条件、限制、分类和促销。
当前状态:
1.0.0-beta核心商店流程可用于测试和早期服务器搭建,但此版本仍应视为测试版,因为专用服务器以及 Fabric/Forge 的测试仍在继续。
主要特性
基于组件的商店
混合搭配组件,从简单的方块商店到脚本化的经济系统,构建任何内容:
- 花费:金钱/货币花费和分组支付选项。
- 奖励:物品、金钱、命令和脚本奖励。
- 条件:冷却时间、基于限制器的检查和脚本条件。
- 促销:基于时间、每周、基于冷却时间和外部触发的促销。
- 分类:组织化的商店标签页,并附带始终可用的全部分类。
服务器端购买逻辑
客户端可以预览交易并请求价格数据,但最终交易在服务器端处理。
在购买过程中,服务器会:
- 检查条件和限制;
- 计算最终价格,包括生效中的促销;
- 验证所有支付来源;
- 向玩家收费;
- 如果奖励发放失败则退回支付;
- 发放奖励并同步更新后的限制器/货币数据回客户端。
现代 LDLib UI
商店 UI 基于 LDLib 构建,包含:
- 分类标签页;
- 搜索和排序;
- 高级货币过滤;
- 收藏的交易固定在常规交易之前;
- 带有数量输入、最小/最大控制和总价预览的购买弹窗;
- 吐司通知;
- 客户端成功/失败音效。
游戏内编辑器基础
SDM 商店 2 包含一个用于在游戏中创建和调整商店的编辑器基础:
- 草稿商店和货币会话;
- 组件搜索和分类排序;
- 收藏组件;
- 生成的组件配置小部件;
- 存储在客户端缓存中的编辑器历史记录;
- 更改的保存/重置流程。
默认商店
全新安装可以生成一个默认的 sdm:default 商店,这样你可以无需先编写配置即可测试模组。
默认商店包含入门物品货币设置和诸如以下分类:
- 资源;
- 建筑方块;
- 农业和食物;
- 实用;
- 红石;
- 稀有物品;
- 兑换。
灵活的存储
支持的存储模式:
- JSON — 默认的本地文件存储;
- MongoDB — 可选的基于数据库的存储,适用于较大型设置;
- 自定义 — 用于自定义存储库实现的挂钩。
命令
/sdm_shop create_shop <shop_id>
/sdm_shop open_shop <targets> <shop_id>
/sdm_shop reload shops
/sdm_shop limiter sync
/sdm_shop limiter reset world <shop_id> <offer_id>
/sdm_shop limiter reset player <target> <shop_id> <offer_id>
/sdm_shop limiter reset offer <shop_id> <offer_id>
脚本和事件
SDM 商店 2 提供了以下方面的挂钩:
- 商店加载;
- 价格计算;
- 购买前;
- 购买后;
- 购买失败;
- 脚本条件;
- 脚本奖励;
- 外部触发的促销。
代码库中存在 KubeJS 和 CraftTweaker 的集成类。
需求
- Minecraft: 1.20.1
- 加载器: Fabric / Forge
- 必需依赖: Architectury API, LDLib
测试版注意事项
这是一个测试版重写。主要的商店流程是可用的,但在 API、编辑器和集成点最终确定时,仍可能发生破坏性更改和错误修复。
在正式服务器上使用前,建议测试的区域:
- 专用服务器启动;
- 通过按键绑定和命令打开商店;
- 物品货币支付;
- 存储/虚拟货币支付;
- 限制器同步;
- 促销激活和过期;
- 编辑器保存/重置流程;
- Fabric 和 Forge 的一致性。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。