开发者
repositories {
maven("https://jitpack.io/")
}
dependencies {
compileOnly("com.github.MrXiaoM:SweetPlayerMarket:$VERSION:all")
}
1
2
3
4
5
6
2
3
4
5
6
# 上架商品
这是需要访问数据库的方法,请自觉异步调用,不要在主线程上执行。
// 获取经济实现
IEconomy vault = SweetPlayerMarket.getInstance().parseEconomy("Vault");
if (vault == null) {
throw new Exception("找不到 Vault 经济");
}
// 获取开发者接口实例
MarketAPI api = SweetPlayerMarket.api();
// 上架物品
MarketItem item = api.deploy(player, builder -> {
builder.type(EnumMarketType.SELL) // 出售类型
.currency(vault) // 使用 Vault 经济
// !!!!!!!!!!!!!!! 注意 !!!!!!!!!!!!!!
// item 的数量跟 amount 不是一回事
// 【item.getAmount() 是单份商品数量】
// 【amount 是商品总份数】
// 最终玩家出售的物品数量为 item.getAmount() * amount
.item(player.getItemInHand()) // 确定一份物品是怎样的
.amount(1) // 总份数
.price(100.0); // 单份物品出售价格
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 添加扩展商品类型
详见接口 IShopAdapterFactory (opens new window),主要用途是自定义特殊商品的出售和收购逻辑。
也就是说,出售商品在给物品的时候可以不给物品,转而执行自定义操作。收购商品同理。
import top.mrxiaom.sweet.playermarket.func.ShopAdapterRegistry;
// 注册商店适配器工厂到 SweetPlayerMarket 中
ShopAdapterRegistry.inst().register(factory);
1
2
3
4
2
3
4
# 添加物品提供器
指的是在自动上架配置中,market-item.item-source 字段使用物品提供器。(未来这个物品提供器可能会有其它用途)
默认支持原版物品和 MythicMobs 物品,即直接输入物品 ID 或者使用 mythic:物品 格式。
import top.mrxiaom.sweet.playermarket.SweetPlayerMarket;
// 获取插件实例
SweetPlayerMarket plugin = SweetPlayerMarket.getInstance();
// 注册物品提供器
plugin.registerItemProvider(provider);
1
2
3
4
5
6
2
3
4
5
6
# 修改商品标签提供器
目前正在编写默认实现 ItemTagManager (opens new window)。
用于给不同商品打标签,使得玩家可以在全球市场列表筛选出指定标签的商品,实现分类功能。
import top.mrxiaom.sweet.playermarket.SweetPlayerMarket;
// 获取插件实例
SweetPlayerMarket plugin = SweetPlayerMarket.getInstance();
// 设置商品标签提供器
plugin.itemTagResolver(provider);
1
2
3
4
5
6
2
3
4
5
6
如果目标商品不符合你的要求,需要调用默认的标签提供器以确保分类能够正常工作
import top.mrxiaom.sweet.playermarket.data.MarketItem;
import top.mrxiaom.sweet.playermarket.func.ItemTagManager;
@Override
public @Nullable String resolve(@NotNull MarketItem item) {
// TODO: 你的标签提供逻辑
if (...) {
return "tag";
}
// 不符合你的条件,使用默认标签提供器代替
return ItemTagManager.inst().resolve(item);
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
上次更新: 2026/01/24, 15:12:56