CobbleDollarsCommandShop

CobbleDollarsCommandShop

CobbleDollars 插件,提供可配置的命令驱动商店,适用于服务器和基于NPC的设置

经济

CobbleDollars 指令商店

CobbleDollars 指令商店是 CobbleDollars 的一个附加组件。它添加了指令驱动的商店,可通过名称打开,并在服务器端进行完整管理。该模组专为希望更精细控制商店行为、库存处理、访问规则和交易记录,且不将游戏逻辑控制权交给客户端的服务器而设计。

新增内容

  • 支持分类和商品的多自定义商店
  • 每个商品的自定义价格和自定义道具数量
  • 限购商品的每位玩家独立库存
  • 无限或有限库存
  • 支持间隔或每日重置规则的自动补货
  • 批量购买的可选购买奖励
  • 商店、分类和商品的访问规则
  • 支持玩家标签、进度、维度、时间范围和计分板数值
  • 所有商店使用一个全局银行,或每个商店使用本地银行
  • 通过 item、stack、tag、mod、match.include 和 match.exclude 实现精准银行与商店匹配
  • 精确的物品堆匹配,包括物品数据/组件
  • 运行时启用/禁用商店控制
  • 服务端验证和持久化库存数据

服务端优先

本模组设计为服务端权威。

它不会取代 CobbleDollars 本身,不会取代 CobbleDollars NPC,也不会将商店逻辑移至客户端。它仅接管通过此附加组件打开的商店会话。

如果客户端也安装了相同 jar 文件,模组还可提供可选的客户端 UI 增强。核心商店逻辑仍保留在服务端。

指令

玩家指令:

  • /cdshops open <商店>
  • /cdshops list
  • /cdshops visibility list

管理指令(权限级别 2):

  • /cdshops open <商店> <目标玩家>
  • /cdshops reload
  • /cdshops restock <商店> all <玩家>
  • /cdshops restock <商店> offer <商品> <玩家>
  • /cdshops stock <商店> <玩家>
  • /cdshops visibility <商店> status
  • /cdshops visibility <商店> enable
  • /cdshops visibility <商店> disable [消息]
  • /cdshops stats summary [时间窗口]
  • /cdshops stats top <shops|offers|players|items> [时间窗口] [数量]
  • /cdshops stats shop <商店> [时间窗口]
  • /cdshops stats player <玩家名|UUID> [时间窗口]
  • /cdshops stats item <物品> [时间窗口]
  • /cdshops where

配置

首次启动服务器时,模组会在以下路径生成配置文件:

config/cobbledollarscommandshops/
  CONFIG_GUIDE.md
  audit.json
  feedback.json
  global_bank.json
  shops/
    general_store/
      shop.json
    blacksmith/
      shop.json
    explorer/
      shop.json
    syntax_showcase/
      shop.json
      bank.json

交易审计日志写入:

logs/cobbledollarscommandshops/audit.jsonl

/cdshops stats ... 管理指令会按需读取当前的 audit.jsonl 文件及任何已轮转的 .jsonl.zip 归档。

编写商店和银行的重要文件

如果你想了解如何编写 shop.json 或 bank.json,请从以下文件开始:

  • config/cobbledollarscommandshops/CONFIG_GUIDE.md
    首次启动时由模组生成的格式主参考文档。
  • config/cobbledollarscommandshops/global_bank.json
    所有商店默认使用的银行配置(后备方案)。
  • config/cobbledollarscommandshops/shops/syntax_showcase/shop.json
    展示支持的匹配语法和条件的完整商店示例。
  • config/cobbledollarscommandshops/shops/syntax_showcase/bank.json
    商店专用银行覆盖的示例。

商店专用的银行文件位于:

config/cobbledollarscommandshops/shops/<商店ID>/bank.json

如果不存在 bank.json,模组将使用:

config/cobbledollarscommandshops/global_bank.json

支持和问题反馈

如果你发现 Bug,请在评论区报告或提交 Issue。你也可以通过 CurseForge/Modrinth 直接联系我,提出更具体的问题! 如果你想使用或修改此代码,请先查看许可协议。

测试环境:

  • CobbleDollars-neoforge-2.0.0+Beta-5.1+1.21.1
  • Cobblemon-neoforge-1.7.3+1.21.1
  • CustomNPCs-Unofficial-NeoForge-1.21.1.20251230
  • easy_npc-neoforge-1.21.1-6.14.0