骑士梦魇的商店

骑士梦魇的商店

Forge 1.20.1 服务端经济商店模组,包含分类菜单、持久余额、可配置价格以及全部出售支持。

你可以通过这些方式支持我—— https://ko-fi.com/knightmare61825

加入我们的服务器,参与大规模战斗: 服务器

Knightmare's Shop 是一个适用于 Forge 1.20.1 的服务端经济与商店模组(因为 Forge 1.20.1 缺少简单的商店模组)。它添加了一个带有分类、可配置的 GUI 商店,支持持久化的玩家余额、购买/出售、批量出售命令、玩家间余额转账,以及内置的管理员工具,可以在不重启服务器的情况下实时编辑商店。

该模组的设计目标是让普通玩家可以立即使用商店,而管理员则可以通过命令或简单的游戏内编辑器来管理分类、价格、物品和堆叠数量。

功能特性

  • 基于 GUI 的商店,支持分类
  • 持久化的玩家余额
  • 支持购买和出售
  • 批量出售背包物品
  • 通过命令出售特定物品
  • 玩家之间转账
  • 实时管理编辑商店数据
  • 管理员 GUI 编辑器
  • 基于 JSON 的配置,存储在服务器端

安装方法

  1. 安装 Forge 1.20.1。
  2. 将模组 jar 文件放入 mods 文件夹。
  3. 启动游戏或服务器一次。
  4. 模组将生成其配置文件,位置在: "config/shopmod/shop.json" 该文件是模组使用的主要商店定义文件。

商店配置

商店定义在: config/shopmod/shop.json 此文件包含:

  • 商店标题
  • 货币符号
  • 初始余额
  • 分类
  • 每个分类中的物品
  • 购买/出售价格
  • 每次交易的堆叠数量

物品条目示例: { "item": "minecraft:diamond", "buy": 52.5, "sell": 13.13, "amount": 1 }

分类条目示例: { "id": "ores", "title": "Ores", "icon": "minecraft:diamond", "items": [ { "item": "minecraft:diamond", "buy": 52.5, "sell": 13.13, "amount": 1 } ] }

手动编辑文件后,使用以下命令重新加载: /shopadmin reload

玩家如何使用该模组

打开商店 /shop 打开主商店菜单。 /shop <分类> 直接打开特定分类。 示例: /shop ores

商店 GUI 操作

在分类菜单内:

  • 左键点击物品:购买一个配置的单位
  • Shift + 左键点击:购买一组数量的物品
  • 右键点击:出售一个配置的单位
  • Shift + 右键点击:出售该物品条目对应的所有匹配物品

底栏按钮:

  • 页面导航
  • 返回按钮
  • 余额显示
  • 出售背包物品按钮

余额命令: 查看你的余额 /balance 或 /shop balance 显示你当前的余额。

查看其他玩家的余额 /shop balance <玩家>

余额转账: 玩家可以向其他玩家发送资金。 /balance transfer <玩家名> <金额> 示例: /balance transfer Steve 250

规则:

  • 金额必须大于 0
  • 你必须有足够的资金
  • 你不能给自己转账
  • 目标玩家必须在线

出售命令 出售背包中所有可出售物品: /sellall 出售你背包中所有在商店中存在且具有有效出售价格的物品。

出售手持物品的所有数量: /sellall hand 出售你背包中所有与主手物品相同的物品。

按名称和数量出售特定物品: /sell <物品名> <数量>

规则:

  • 物品必须存在于商店中
  • 物品必须有出售价格
  • 你的背包中必须有足够的数量
  • 数量必须符合商店条目规则
  • 如果物品配置的 amount 大于 1,则数量必须是该值的倍数

管理员命令

这些命令需要权限级别 2 或管理员权限。

重新加载商店配置: /shopadmin reload 从磁盘重新加载 shop.json。

管理员余额命令

  • 设置玩家余额:/shopadmin balance set <玩家> <金额>
  • 增加玩家余额:/shopadmin balance add <玩家> <金额>

管理员分类命令

  • 创建分类:/shopadmin category create <id> <标题> 示例:/shopadmin category create farming Farming
  • 移除分类:/shopadmin category remove <id> 示例:/shopadmin category remove farming
  • 重命名分类标题:/shopadmin category title <id> <标题> 示例:/shopadmin category title farming Crop and Farm Goods
  • 设置分类图标——手持你想作为图标的物品,然后运行: /shopadmin category icon <id> 示例:/shopadmin category icon farming

管理员物品命令 除非另有说明,这些命令使用管理员主手持有的物品。

  • 将手持物品添加到分类:/shopadmin item add <分类> <购买价> [出售价] [数量]

含义:

  • buy = 购买价格

  • sell = 出售价格,可选

  • amount = 交易单位大小,可选 如果省略 sell,则保持禁用状态。如果省略 amount,则默认为 1。

  • 从分类中移除手持物品:/shopadmin item remove <分类>

  • 设置手持物品的购买价格:/shopadmin item setbuy <分类> <价格>

  • 禁用购买:/shopadmin item setbuy ores -1

  • 设置手持物品的出售价格:/shopadmin item setsell <分类> <价格>

  • 禁用出售:/shopadmin item setsell ores -1

  • 同时设置购买和出售价格:/shopadmin item setboth <分类> <购买价> <出售价>

  • 设置手持物品的交易数量:/shopadmin item setamount <分类> <数量> 示例:/shopadmin item setamount ores 16 这意味着该物品按 16 个一组进行买卖。

管理员列表命令

  • 列出分类中的物品:/shopadmin list <分类> 在聊天中显示该分类的物品、价格和数量。

管理员 GUI 编辑器

  • 打开分类列表编辑器:/shopadmin edit 打开管理员分类浏览器。
  • 打开特定分类编辑器:/shopadmin edit <分类>

管理员 GUI 工作方式

分类列表界面: 显示所有分类。点击一个分类进行编辑。

分类编辑器: 在分类编辑器中,你可以:

  • 浏览已配置的物品
  • 点击物品打开其编辑器
  • 添加手中的物品
  • 使用手中的物品设置分类图标

物品编辑器 在物品编辑器中,你可以:

  • 设置购买价格
  • 设置出售价格
  • 设置交易数量
  • 禁用购买
  • 禁用出售
  • 移除物品

某些编辑操作会使用聊天输入:

  • 提示时,在聊天中输入新值
  • 输入 cancel 中止提示

每次成功的编辑都会写回: config/shopmod/shop.json 无需重启。

价格规则

  • buy = -1 表示玩家无法购买该物品
  • sell = -1 表示玩家无法出售该物品
  • 如果你希望该物品在商店中有效,则购买和出售不能同时禁用
  • amount 必须至少为 1
  • 示例: amount: 16 sell: 8.0 这意味着出售一个单位将以 $8.00 的价格出售 16 个物品。

玩家余额行为

  • 余额是持久化的
  • 新玩家以配置的初始余额开始
  • 余额存储在服务器端
  • 商店活动和转账引起的余额变动会立即生效

典型的服务器工作流程

对于玩家:

  1. 运行 /shop
  2. 浏览分类
  3. 购买或出售物品
  4. 使用 /sellall 进行批量出售
  5. 使用 /balance transfer <玩家> <金额> 发送资金

对于管理员:

  1. 运行 /shopadmin edit
  2. 打开一个分类
  3. 添加手持物品
  4. 设置购买/出售价格
  5. 设置交易数量
  6. 使用 /shop 测试
  7. 仅当在游戏外编辑了文件时,才使用 /shopadmin reload

完整命令列表

玩家命令:

  • /shop
  • /shop <分类>
  • /shop balance
  • /balance
  • /balance transfer <玩家> <金额>
  • /sellall
  • /sellall hand
  • /sell <物品名> <数量>

管理员命令

  • /shopadmin reload
  • /shopadmin balance set <玩家> <金额>
  • /shopadmin balance add <玩家> <金额>
  • /shopadmin category create <id> <标题>
  • /shopadmin category remove <id>
  • /shopadmin category title <id> <标题>
  • /shopadmin category icon <id>
  • /shopadmin item add <分类> <购买价> [出售价] [数量]
  • /shopadmin item remove <分类>
  • /shopadmin item setbuy <分类> <价格>
  • /shopadmin item setsell <分类> <价格>
  • /shopadmin item setboth <分类> <购买价> <出售价>
  • /shopadmin item setamount <分类> <数量>
  • /shopadmin list <分类>
  • /shopadmin edit
  • /shopadmin edit <分类>

备注

  • 命令中的物品名称一般应使用 Minecraft id,如 minecraft:diamond 或简化的 id,如 diamond
  • 物品必须存在于配置的商店中才能被出售
  • 该模组在行为上是服务端的,商店数据由服务器配置控制
  • 管理员 GUI 编辑和命令编辑都会修改同一个 shop.json 文件

你可以通过这些方式支持我—— https://ko-fi.com/knightmare61825