GUI商店 by Rickiewars

GUI商店 by Rickiewars

GuiShop是一个Fabric服务端模组,用于在Minecraft中创建和管理GUI商店。它自带经济系统,同时也能与其他经济提供者无缝集成。GuiShop基于UnsafeDodo的作品,经过改编和扩展以满足我的需求。

经济

GUI 商店

GuiShop 是一个 Fabric 服务端模组,用于在 Minecraft 中创建和管理 GUI 商店。 它自带经济系统,同时也能与其他经济提供者无缝集成。 GuiShop 基于 UnsafeDodo 的作品,经过改编和扩展以满足我的需求。

功能

支持多个商店 支持多个商店

想卖多少物品就卖多少 Replace this with a description

商店视图支持分页 Replace this with a description

支持多个余额 Replace this with a description

一次购买和出售一个或多个物品 Replace this with a description

购买的物品会出现在你的光标上 Replace this with a description

其他值得注意的功能:

  • 从你的物品栏中拖放任何物品到商店。如果可以出售,它就会被出售。
  • 商店物品支持物品组件(附魔、自定义名称、自定义模型数据等)。
    • 注意:尚不支持出售(物品栏 -> 商店)带有附魔的物品。
  • 支持多种货币,每个物品都可以配置为使用不同的货币。
  • 支持任何实现了 Common Economy API 的经济模组。
  • 自带内置经济提供者,可配置多种货币和账户。
    • 这些货币可以被其他使用 Common Economy API 的模组使用。
    • 具有管理余额的命令(查看、发送、增加、移除)。
    • 可以通过配置前缀、后缀、小数位数和图标来模拟任何现实货币。
  • 商店可以通过命令打开,从而能够与 Taterzens 等 NPC 模组集成。
  • 该模组支持 LuckPerms 权限。

安装

将 .jar 文件放入“mods”文件夹

(需要 Fabric API 以及(可选)受支持的经济系统)

命令和权限

所有命令都可以由管理员(权限等级 3)或拥有特定权限的用户/组使用

描述 命令 权限
主命令,打开商店选择菜单 /guishop guishop.main
创建一个商店 /guishop create <shopName> guishop.create
删除一个商店 /guishop delete <shopName> guishop.delete
在商店中添加一个物品 /guishop additem <shopName> <itemId> <buyPrice> <sellPrice> <currency> <description> guishop.additem
从商店中移除一个物品 /guishop removeitem <shopName> <itemName> guishop.removeitem
为玩家打开一个商店 /guishop open <shopName> <playerName> guishop.open
列出所有商店 /guishop list guishop.list
列出商店中的所有物品 /guishop list <shopName> guishop.list
强制保存配置 /guishop forcesave guishop.forcesave
重新加载配置文件 /guishop reload guishop.reload
显示所有货币的余额 /guishop balance guishop.balance
显示某种货币的余额 /guishop balance <currency> guishop.balance
将你的钱发送给另一位玩家 /guishop balance <currency> send <playerName> <amount> guishop.balance.send
增加玩家的余额 /guishop balance <currency> add <playerName> <amount> guishop.balance.add
减少玩家的余额 /guishop balance <currency> remove <playerName> <amount> guishop.balance.remove

命令示例

创建一个商店:/guishop create "Test shop""

在商店中添加物品:/guishop additem "Diamond" minecraft:diamond[minecraft:enchantment_glint_override=true,minecraft:custom_name=hello] 250 100 guishop:credit "This is a Diamond\\An expensive diamond\\Shiny" (你可以通过使用“\\”来分隔描述中的每一行)

物品组件的支持方式与 /give 命令相同。 你可以使用像 mcstacker 这样的物品生成器,或者使用 Gamergeeks 的生成器来生成带有附魔、自定义名称等组件的物品。 在游戏中,你还会获得物品组件的建议。

买入价和卖出价没有任何格式,因此假设你在配置中配置了 2 位小数, 并且你想以 1.50 的价格出售一个物品,那么你需要使用 150 作为卖出价。

从商店中移除物品:/guishop removeitem "Test shop" "Diamond"

打开一个商店并向特定玩家展示:/guishop open "Test shop" "Steve"

你也可以添加仅用于购买或仅用于出售的物品。 买入价为 -1 的物品只能出售,卖出价为 -1 的物品只能购买。

经济配置

Guishop 有一个内置的可选经济提供者,可以在 ./config/guishopeconomy.json 文件中进行配置。

经济提供者配置示例

{
  "disabled": false,
  "database": {
    "type": "sqlite",
    "currency": "./config/guishop.sqlite"
  },
  "economy": {
    "currencies": {
      "credit": {
        "name": "Credits",
        "prefix": "$",
        "suffix": "",
        "decimalPlaces": 2,
        "icon": "minecraft:diamond"
      }
    },
    "accounts": {
      "account": {
        "name": "Account",
        "currency": "credit",
        "icon": "minecraft:diamond"
      }
    }
  },
  "command": {
    "disabled": false,
    "alias": ""
  }
}

Guishop 配置

你可以在 ./config/guishop.json 中找到主配置文件。

在 economyProviders 中,你可以指定想要使用的经济提供者。 这可以是一个使用 Common Economy API 的外部经济模组, 也可以是在 guishopeconomy.json 中配置的内置经济提供者。 该对象通常是一个从 mod_id:currency_id 到 account_id 列表的映射。 要使用内置经济提供者,请在你配置的货币前加上 guishop: 前缀。

在 shops 中,你可以定义你的商店及其物品。 物品的名称和描述都支持 Simplified Text Format。 你既可以编辑配置文件,也可以使用游戏内命令向商店添加物品。

只需记住:

  • 编辑配置文件后,使用 /guishop reload 重新加载模组,
  • 使用 /guishop forcesave 保存游戏内更改,以将其反映到配置文件中。
  • 不要同时在配置文件和游戏内进行操作。
    • 如果保存了游戏内更改,它们将覆盖对配置文件所做的任何更改。
    • 如果重新加载了配置文件,它将覆盖任何游戏内更改。
    • 在服务器运行时对配置文件进行大规模更改时要小心, 因为模组会每 30 分钟自动保存游戏内更改。

JSON 示例

{
  "economyProviders": {
    "guishop:credit": [
      "account"
    ]
  },
  "shops": [
    {
      "shopName": "Shop number one",
      "items": [
        {
          "name": "The boat",
          "itemId": "minecraft:acacia_chest_boat",
          "description": [
            "This is a nice boat",
            "Very beautiful"
          ],
          "buyPrice": 50,
          "sellPrice": 25,
          "currency": "guishop:credit",
          "componentChanges": {}
        },
        {
          "name": "Free BBQ Sword",
          "itemId": "minecraft:diamond_sword",
          "description": [],
          "buyPrice": 0,
          "sellPrice": -1,
          "currency": "guishop:credit",
          "components": {
            "minecraft:enchantment_glint_override": true,
            "minecraft:custom_name": "\"hello\""
          }
        },
        {
          "name": "Amethyst",
          "itemId": "minecraft:large_amethyst_bud",
          "description": [
            "<red>Such a spectacular</red>",
            "<purple>amethyst</purple>",
            "<rainbow>SHINY</rainbow>"
          ],
          "buyPrice": 200,
          "sellPrice": 100,
          "currency": "guishop:credit",
          "components": {}
        }
      ]
    },
    {
      "shopName": "A second shop",
      "items": []
    }
  ]
}

支持的经济系统:

从 1.4.5 版本开始,该模组支持任何使用 Common Economy API 的经济模组(或其组合)。 一个很好的例子是 Common Bridge,它将多个经济插件桥接到 Common Economy API。

GuiShop 还自带自己的经济提供者,可以在配置文件中进行配置。 这个内置经济提供者可以配置多种货币和账户。 (每种货币的多账户功能尚未正确实现。)