更好的商店/拍卖行

更好的商店/拍卖行

Better Shop-Auction 是一款独立的商店 + 拍卖插件,采用模块化经济系统和 JSON 持久化。

实用


更好的商店 / 拍卖行 / 求购行 (Better Shop / Auction House / Offer House)

Hytale 服务器的一体化经济插件 — 精美的商店、真实的拍卖行、玩家驱动的求购板、动态定价、限时增益、完整的管理员 UI,以及对所有主流经济插件的即插即用支持。

专为 Hytale 服务器 API 从零构建,基于 JSON 持久化存储,支持热加载,且设计初衷是让管理员几乎无需触碰配置文件 — 一切皆可在游戏内编辑。

自定义材质包,提供清晰、符合服务器级别的视觉效果:更好的商店/拍卖/求购行材质包 - Hytale Mods - CurseForge


为何选择更好的商店-拍卖行?

  • 三合一插件 — 商店、拍卖行和求购行共享同一经济系统、同一 UI 语言和同一管理后台。一次安装,一次配置。
  • 模块化经济 — 自动检测 EconomySystem、Ecotale、PJ-Money、Coins、VaultUnlocked、BetterSkyblock。或者从配置中选择你想要的。没有这些插件?没问题 — 附带基于文件的备用方案。
  • 游戏内管理 — 创建分类、编辑物品、设置折扣、运行销售加成、黑名单物品、编辑配置……一切都在一个精美的管理 UI 中完成。无需重启。
  • 防刷钱经济 — 内置防护机制严格防止任何“低价买入 / 高价卖出”循环,即使叠加了动态定价、分类加成和权限奖励也无效。
  • 生产就绪 — 所有内容使用 JSON 文件,支持热加载命令,独立的状态文件便于快速备份,以及游戏内审计日志。

主要特性

商店 (Shop)

  • 现代主题 UI,包含分类栏、搜索、网格视图和物品详情面板。
  • 购买 / 出售流程,带有可配置的税收和allowSell开关。
  • 限时购买折扣,按物品设置,具有叠加队列功能(可连续应用多个折扣,最强的折扣生效,其余等待排队)。
  • 物品前置条件 — 让某个物品在玩家购买另一物品后,或者仅在特定 LuckPerms 组的成员面前才会显示。
  • 一次性购买(按玩家记录,持久化 — 非常适合解锁物品、头衔、礼包等)。现在存储在一个清晰的人类可读文件中:Name=Rank Divine:Id=921:UUID=...
  • 限库存物品,带有补货间隔(每小时、每天、每周、每月、一次性等)。
  • 以物易物支付 — 让玩家用物品(例如用 5 颗钻石换一把剑)代替金钱进行支付。
  • 批量出售拍卖出售编辑器中的任意物品。
  • /sell 立即出售你手中的物品。/sell all 以商店价格清理你整个背包,带有可配置的黑名单(按物品 AND 按玩家)以及可选的确认页面,防止玩家意外丢失装备。
  • 每个物品支持自定义图标自定义显示名称
 

拍卖行 (Auction House)

  • 玩家驱动的上架,支持创建 / 购买 / 更新价格 / 取消 / 自动过期。
  • 玩家拍卖中的精选商店精选物品槽位。
  • “最佳单价”自动标签,让买家总能发现划算的交易。
  • 上架费最低价格过期时间 — 均可配置。
  • 基于权限的上架数量限制,开箱即用:

    "listingLimitEnabled": false,
    "listingLimitByPermission": {
    "bettershopauction.limit.vip": 20,
    "bettershopauction.limit.mvp": 30,
    "bettershopauction.limit.elite": 40,
    "bettershopauction.limit.legend": 50,
    "bettershopauction.limit.god": 60
    }

    可随意重命名权限以匹配你现有的头衔体系。
  • 基于权限的卖家收益加成 — 给予 VIP 玩家 +50%、传奇玩家 +75%……加成在税收之后、价格安全上限之后应用,以保持经济一致性。
  • 批量上架 UI,可一次性上架多个堆叠物品。

求购行 (Offer House / 请求系统) ✨ 全新

  • 玩家发布购买订单:“我想以每个 50 金币的价格购买 64 颗钻石”。
  • 其他玩家直接从其背包履行订单并立即获得付款。
  • 物品托管 或 货币托管 — 请求者锁定金币(如果使用物品支付则锁定物品),直到订单被履行,这样没有人会被骗。
  • 提供物品选择器/目录浏览器,以便清晰创建订单。
  • 按页面设置黑名单,以保持市场秩序。
  • 可配置标题,完整的管理员 UI。

动态定价 ✨

  • 按分类启用/禁用开关,位于shop.json中。
  • 滚动窗口(默认 24 小时)追踪每种物品的售出数量;售价随供应量增加而自然下降,并随时间推移自然恢复。
  • 可配置最小 / 最大乘数最大步进百分比(防止价格飙升)、权重最小追踪数量调度器间隔
  • 通过随机化恢复周期实现自动恢复,确保从未售出的物品不会卡在最低价格。

增益与折扣系统 ✨ 重构版

  • 按分类的销售加成 — “农业类 +25%,持续 2 小时,由管理员启动”。
  • 按物品的购买折扣 — 相同的用户体验、相同的队列、相同的审计追踪。
  • 权限销售奖励 — 为特定身份组提供每笔销售被动加成。
  • 多个加成可以排队 — 最强的加成首先运行,当它过期后下一个自动开始。
  • 专用状态文件Shop/Data/shop_boosts.json(与主商店数据分离 — 便于备份,便于比较差异)。
  • 完整历史文件Shop/Data/shop_boosts_history.json记录每个过期/替换/移除的加成,包含百分比、开始时间、结束时间、持续时间、由谁激活、结束原因
  • 自动迁移:如果你使用的是旧版本,你现有的加成/折扣/权限奖励将在下次启动时移至新文件 — 无需任何手动操作。

交易者资料与统计 ✨

  • /shop stats(也称为/dashboard/profile/trader)— 一个交易者资料页面,显示总计、近期活动和个人趋势。
  • /shop history — 完整的交易历史(商店 + 拍卖行汇总在一处)。
  • 商店价格追踪器 HUD — 在你的世界中放置价格追踪方块;游戏内 HUD 将显示追踪物品的实时商店价格。

反利用安全防护 ✨ 全新

  • 玩家实际获得的售价始终严格低于该物品的购买价,无论叠加了多少奖励:
    • 动态定价 × 分类销售加成 × 权限销售奖励 × 宠物加成 = 上限为buyPrice × qty − 0.01
  • 所有 4 种销售途径中强制执行:/sell/sell all、现代商店 UI、全部出售计算器。
  • 不再有“用 100 买进,用 119 加上 VIP 权限卖出”的情况。

通知与生活质量改善

  • 拍卖过期通知通过持久化的通知收件箱送达离线/在线玩家。
  • 背包已满通知器当全部出售或自动拾取因背包已满而失败时发出通知。
  • 悬停物品详情 — 可切换的悬停上下文信息(价格、折扣、动态乘数、库存、补货计时器等)。
  • 多合一 HUD将商店和拍卖行信息结合在单个叠加层中。
  • 本地化 — 支持多语言(按玩家区域设置)。

管理员 UI ✨

所有内容都可以在游戏内通过/shop admin进行编辑 — 无需切换到 JSON 编辑器:

  • 主页(概览)
  • 分类编辑器
  • 物品编辑器(包含补货、前置条件、价格、自定义图标、自定义名称、物品支付模式等)
  • 资源选择器(浏览所有游戏内物品)
  • 黑名单编辑器
  • 配置编辑器(实时编辑,保存时应用)

NPC / 地图集成

  • /shop open <player> — 为特定玩家打开商店 UI。非常适合 NPC 对话、游戏内按钮、Citizens 插件等。
  • /shop open <player> <categoryId> — 为该玩家打开单个分类(例如,一个农民 NPC 只显示农业分类)。
  • /auction open <player> — 拍卖行的相同用法。

经济系统

自动检测优先级(可在config.json中配置):

EconomySystem → Ecotale → PJ-Money → Coins → VaultUnlocked → BetterSkyblock
 

或者显式选择一个:

"economy": {
"_providerHelp": "选项: Auto | EconomySystem | Ecotale | PJ-Money | Coins | VaultUnlocked | BetterSkyblock | Self | None",
"provider": "Auto"
}
 
选项 行为
Auto 按顺序尝试每个提供商,选择第一个可用的
EconomySystem / Ecotale / PJ-Money / Coins / VaultUnlocked 强制使用匹配的提供商
Self 内置基于文件的钱包,存储在economy.json
None 禁用购买/出售 — 插件仍以只读模式运行

如果设置了提供商但在运行时不可用,插件会自动回退到Auto并记录警告。通过命令热加载 — 无需重启。

注意:要支持 VaultUnlocked,你需要 VaultUnlocked - CurseForge

 


指令

玩家

指令 别名 动作
/shop /store, /bettershop, /newshop, /modernshop 打开商店 UI
/auction /ah, /betterauction, /pshop, /newah, /newauction, /modernauction 打开拍卖行 UI
/request /oh, /req, /requests, /offer, /newoh, /newrequest, /modernoh 打开求购行
/sell 以商店价格出售手中的物品
/sell all 出售背包中所有可出售的物品(遵循黑名单)
/shop stats /dashboard, /profile, /trader 打开交易者资料面板
/shop queue /shop bonus, /shop discount, /shop sellbonus, /shop discountbuy, /shop boost 查看活跃的销售加成和购买折扣
/shop history 查看商店 + 拍卖行交易历史
/economyprovider 列出可用的经济提供商

管理员

指令 动作
/shop admin 打开管理后台 UI(分类、物品、配置、黑名单等)
/shop open <player> 为另一名玩家打开商店 UI(NPC 集成)
/shop open <player> <categoryId> 为玩家打开特定商店分类(例如农民 NPC)
/shop reload 热加载配置
/auction admin 打开拍卖行管理 UI
/auction open <player> 为另一名玩家打开拍卖行 UI
/auction reload 热加载配置
/request admin 打开求购行管理 UI
/shopdynamic 实时管理按分类的动态定价

 


配置

所有配置文件位于mods/GilloDaby_BetterShopAuction/下。

文件 用途
config.json 主配置(标题、黑名单、经济、商店与拍卖行设置)
Shop/shop.json 分类 + 物品
Shop/Data/shop_boosts.json 活跃的销售加成、购买折扣、权限销售奖励
Shop/Data/shop_boosts_history.json 每个过期/替换/移除的加成的审计日志
Shop/Data/dynamic_pricing_state.json 动态定价的滚动窗口状态
Shop/Data/one_time_purchases.json 一次性购买账本(人类可读)
Auction/auction_listings.json 拍卖行上架列表
Request/request_listings.json 求购行上架列表
Data/economy.json 自我提供商钱包(仅在provider = Self时使用)

旧数据在首次启动时会自动迁移。无需任何操作。


权限

bettershopauction.command.shop
bettershopauction.command.auction
bettershopauction.command.request
bettershopauction.command.economy
bettershopauction.command.economy.reload
bettershopauction.command.shop.admin
bettershopauction.command.auction.admin
bettershopauction.command.request.admin
bettershopauction.command.shop.history
 
# 拍卖行上架限制(默认已预置 — 请重命名为你自己的头衔)
bettershopauction.limit.vip
bettershopauction.limit.mvp
bettershopauction.limit.elite
bettershopauction.limit.legend
bettershopauction.limit.god
 
# 拍卖行卖家收益加成(默认已预置)
bettershop.vip.bonus.50
bettershop.legend.bonus.75
 

完全支持 LuckPerms — 包括 permissiongroup 检查。你也可以将单个商店物品关联到 LuckPerms 组(prerequisiteLuckPermsGroup)。


预览

请参阅媒体部分,查看商店 UI、拍卖行、求购行、管理后台、交易者资料、加成队列和价格追踪器 HUD 的截图。


模组信息

版本 3.0.6
开发者 GilloDaby
兼容性 Hytale Server API (Java 25)
可选依赖 LuckPerms · VaultUnlocked · EconomySystem · Ecotale · PJ-Money · Coins
持久化 JSON(支持热加载,便于备份)