文件位置:config/imyvm_villagershop.conf
core {
# 指定显示语言
language="zh_cn"
tax {
# 玩家补货时的税率
restock=0.01
}
# 数据库相关设置
database {
# 数据库类型,支持 "POSTGRESQL" , "MYSQL" , "H2"
database=H2
# 数据库地址,默认为 H2
url="localhost:5432/imyvmvillagershop"
# 数据库用户名
username=root
# 数据库密码
password=""
# 仅在MySQL数据库生效,用来调整Hikari池的大小
maximumPoolSize=10
}
}
管理员可以使用/villagerShop config reload
来重载配置,使用/villagerShop taxRate set <taxRate>
来设置税率。
玩家可以使用指令/villagerShop create shop <shopname> <x y z> <item> <quantitySoldEachTime> <price>
1创建商店,并扣除一定的货币。
货币的花费会随着玩家拥有商店数量的增加而增加,函数表达式为:
注意
- 商店刚创建或商品刚添加时默认会使用背包内所有(无法选择是否添加)已有物品进行免费补货。
你也在创建完成后额外使用
/villagerShop item addStock <shopName> <item> [quantity]
来对商店中存在的商品进行“补货”,quantity
是一个可选参数,若不填则默认消耗背包内所有特定物品。
同时,补货需要消耗一定的货币,计算公式如下:
$$p为设置价格,c为补货数量,t为税率,默认为0.1\%$$
- 同一玩家创建的商店不允许名称相同,当个商店的商品数量上限为7个物品,价格下限不低于服务器设置的物价或系统商店物价。
- 创建商店时的
quantitySoldEachTime
参数代表用price
的钱可以买到quantitySoldEachTime
个数的物品
举个栗子,比如我使用/villagerShop create shop DreamRain 0 0 0 minecraft:cherry_leaves 2 100
创建了一个名为DreamRain
并出售樱花树叶
的商店。 那么,我可以使用100
货币买到2
个樱花树叶
。而不是商店中樱花树叶
的库存为2
。 - 所有商店都有一个唯一的
id
标识符,并且永远不可能重复。 - 目前商品支持保存NBT(未经充分测试),可能会导致无法获取到指定的物品,无法保留自定义NBT等问题。
管理员可以使用指令
/villagerShop create adminShop <shopName> <x y z> <type> <item1> <count>:<price>:[stock] <item2> <count>:<price>:[stock] ... <item_n> <count>:<price>:[stock]
来创建系统商店。
系统商店库存无限,但是可以使用玩家商店中的stock
参数来限制单个玩家的购买数量。
stock
可以为空,如果为空,则默认为不限量。
在商店创建成功后,玩家可以使用
/villagerShop item add <shopName> <item> <quantitySoldEachTime> <price>
来添加商品,
使用
/villagerShop item change <shopName> <item> <quantitySoldEachTime> <price>
来修改已有商品的价格以及出售数量,
使用
/villagerShop item delete <shopName> <item>
1来删除已有的商品,
该操作会返还该商品的所有库存。
玩家可以使用
/villagerShop manager changeInfo setShopName {shopNameOld, id} <shopNameNew>
来修改商店的名称,
可以使用
/villagerShop manager changeInfo setShopName {shopName, id} <x y z>
来修改商店的位置。
当你不想要该商店时,可以使用
/villagerShop delete {shopname, shopnumber}
1
来删除该商店,管理员可以使用id
删除任意不符合规定的商店,无需提前通知拥有者。
删除商店会返还所有的库存,但是并不会返还创建时消耗的货币。
同时,被管理员删除的商店并不会返还库存。
同时,管理员可以使用
/villagerShop manager search {shopname:shopname, location:location, owner:owner, range:range}
,
owner参数可以使用玩家创建商店时的ID。
可以使用/villagerShop manager inquire <id>
获取特定商店的详细信息。
管理员在征得玩家以及管理组同意的情况下,可以使用
/villagerShop setAdmin <shopnumber>
1
来将该商店转化为系统商店。注意,该操作也不会返还库存。
仅管理员可创建收购商店,在创建时将<type>
参数设置为UNLIMITED_BUY
即可创建无限收购指定物品的商店。
或者将<type>
参数设置为REFRESHABLE_BUY
即可每日对限制进行更新。
收购价格由使用者自行设定。
收购也可以使用stock参数来设定每天每人可以出售给系统商店的数量。
stock
可以为空,如果为空,则默认为不限量。
- 商店创建或物品添加时即消耗背包内的物品补货
- 删除商店或商品时返还库存
- 补货时可以从玩家身上的潜影盒中获取所需物品
- 系统商店限制单个玩家购买数量
- 支持范围搜索商店,以及通过玩家名称搜索商店,不输出重复结果。
- 完成商店的实体创建
- 完成GUI呈现以及操作监听
- 支持保存物品NBT
- 将计算公式独立进配置文件
- 在参数为空的情况下直接添加主手物品