Skip to content

限购系统

AIOShop 提供灵活的限购系统,可以控制玩家购买和出售物品的数量。

限购类型

类型说明
NONE无限购限制
PERSONAL_DAILY个人每日限购
PERSONAL_WEEKLY个人每周限购
PERSONAL_TOTAL个人永久限购
GLOBAL_DAILY全服每日限购
GLOBAL_WEEKLY全服每周限购
GLOBAL_TOTAL全服永久限购

购买限制

配置商品的购买限制:

yaml
items:
  limited_item:
    display-name: "&c限购物品"
    buy-price:
      amount: 100
      currency: "VAULT"
    buy-rewards:
      self:
        type: "ITEM"
        item: "diamond"
        amount: 1
    # 购买限制
    limit-type: "PERSONAL_DAILY"
    limit-amount: 10

固定限购数量

yaml
limit-type: "PERSONAL_DAILY"
limit-amount: 10  # 每天最多购买 10 个

随机限购数量

用于随机商店,每次刷新时随机确定限购数量:

yaml
limit-type: "PERSONAL_DAILY"
limit-amount-range: "5-15"  # 每次刷新随机在 5-15 之间

出售限制

配置商品的出售限制:

yaml
items:
  limited_sell:
    display-name: "&e限量回收"
    sell-item-matcher:
      material: "emerald"
    sell-rewards:
      main:
        type: "CURRENCY"
        amount: 100
        currencyType: "VAULT"
    # 出售限制
    sell-limit-type: "GLOBAL_DAILY"
    sell-limit-amount: 100  # 全服每天最多回收 100 个

限购周期

每日限购

每天 00:00 重置(服务器时区)。

yaml
limit-type: "PERSONAL_DAILY"   # 或 GLOBAL_DAILY

每周限购

每周一 00:00 重置。

yaml
limit-type: "PERSONAL_WEEKLY"  # 或 GLOBAL_WEEKLY

永久限购

不会重置,达到限制后永久无法继续交易。

yaml
limit-type: "PERSONAL_TOTAL"   # 或 GLOBAL_TOTAL

限购范围

个人限购

每个玩家有独立的限购计数:

yaml
limit-type: "PERSONAL_DAILY"
limit-amount: 10
# 玩家 A 购买 10 个后,玩家 B 仍然可以购买 10 个

全服限购

所有玩家共享限购计数:

yaml
limit-type: "GLOBAL_DAILY"
limit-amount: 100
# 全服所有玩家总共只能购买 100 个

GUI 显示

限购信息会在商品 Lore 中显示:

个人限购: 5/10
全服限购: 50/100

可以在 GUI 模板中自定义显示格式:

yaml
formats:
  limit:
    limited: "&7限购: &c{current}/{max}"
    unlimited: ""

配置示例

每日限购商品

yaml
items:
  daily_special:
    display-name: "&e每日特价"
    buy-price:
      amount: 50
      currency: "VAULT"
    buy-rewards:
      self:
        type: "ITEM"
        item: "golden_apple"
        amount: 1
    limit-type: "PERSONAL_DAILY"
    limit-amount: 5

全服限量商品

yaml
items:
  rare_item:
    display-name: "&6限量珍品"
    buy-price:
      amount: 10000
      currency: "VAULT"
    buy-rewards:
      self:
        type: "ITEM"
        item: "dragon_egg"
        amount: 1
    limit-type: "GLOBAL_TOTAL"
    limit-amount: 10  # 全服只有 10 个

限量回收

yaml
items:
  limited_buyback:
    display-name: "&a高价回收"
    sell-item-matcher:
      material: "diamond"
    sell-rewards:
      main:
        type: "CURRENCY"
        amount: 500
        currencyType: "VAULT"
    sell-limit-type: "GLOBAL_DAILY"
    sell-limit-amount: 50  # 每天只回收 50 个

注意事项

  1. 限购重置时间:基于服务器时区,不是玩家本地时间
  2. 数据持久化:限购数据保存在数据库中,重启不会丢失
  3. 缓存刷新:使用 /shop reload 会刷新限购缓存
  4. 随机限购limit-amount-range 只在随机商店刷新时生效

基于 CC0 1.0 许可发布