基础结构

每个商店配置文件放在 plugins/AIOShop/shops/ 目录下,文件名即为商店 ID。

# 商店显示名称(支持颜色代码)
display-name: "&a&l我的商店"

# 商店描述(在商店列表中显示)
description:
  - "&7商店描述第一行"
  - "&7商店描述第二行"

# 使用的 GUI 模板
gui-template: "general-store"

# 商品列表
items:
  item_id:
    # 商品配置...

商品配置

每个商品在 items 下定义,键名为商品 ID。

完整商品配置示例

items:
  diamond_sword:
    # 物品 ID(Minecraft 物品名或插件自定义物品 ID)
    item-id: "diamond_sword"

    # 显示名称
    display-name: "&b&l钻石剑"

    # 描述信息
    description:
      - "&7锋利的钻石剑"
      - "&7攻击力 +7"

    # 购买价格
    buy-price:
      amount: 500.0
      currency: "VAULT"

    # 购买后给予的奖励
    buy-rewards:
      self:
        type: "ITEM"
        item: "diamond_sword"
        amount: 1

    # 出售物品匹配规则
    sell-item-matcher:
      material: "diamond_sword"

    # 出售后给予的奖励
    sell-rewards:
      main:
        type: "CURRENCY"
        amount: 250.0
        currencyType: "VAULT"

    # 限购类型
    limit-type: "PERSONAL_DAILY"
    limit-amount: 5

    # 是否启用
    enabled: true

物品来源

item-id 支持多种物品来源:

类型格式示例
Minecraft 原版物品物品名称diamond
AIOShop 物品库物品 IDcustom_sword
NeigeItems物品 IDni:legendary_bow
使用 /asitem add <ID> 可以将手中物品保存到插件物品库,然后在商店中引用。

奖励类型

buy-rewardssell-rewards 支持多种奖励类型:

物品奖励

buy-rewards:
  self:
    type: "ITEM"
    item: "diamond"
    amount: 1

货币奖励

sell-rewards:
  main:
    type: "CURRENCY"
    amount: 100.0
    currencyType: "VAULT"

经验奖励

buy-rewards:
  bonus_exp:
    type: "EXPERIENCE"
    amount: 50
    isLevel: false  # false=经验点,true=经验等级

命令奖励

buy-rewards:
  special:
    type: "COMMAND"
    commands:
      - "broadcast {player} 购买了稀有物品!"
      - "give {player} minecraft:firework_rocket 1"
命令中可用的占位符:{player} - 玩家名,{amount} - 购买/出售数量

物品匹配规则

sell-item-matcher 定义出售时如何匹配玩家背包中的物品:

按材料匹配

sell-item-matcher:
  material: "diamond"

按物品 ID 匹配

sell-item-matcher:
  item-id: "custom_diamond"

精确匹配(包含 NBT)

sell-item-matcher:
  item-id: "enchanted_sword"
  strict: true

仅购买/仅出售商品

仅购买(不可出售)

items:
  buy_only_item:
    item-id: "beacon"
    display-name: "&e信标"
    buy-price:
      amount: 1000.0
      currency: "VAULT"
    buy-rewards:
      self:
        type: "ITEM"
        item: "beacon"
        amount: 1
    # 不配置 sell-item-matcher 和 sell-rewards
    enabled: true

仅出售(不可购买)

items:
  sell_only_item:
    item-id: "rotten_flesh"
    display-name: "&c腐肉"
    # buy-price 设为 null 或不配置
    buy-price: null
    sell-item-matcher:
      material: "rotten_flesh"
    sell-rewards:
      main:
        type: "CURRENCY"
        amount: 1.0
        currencyType: "VAULT"
    enabled: true

下一步