MCIO Plugins MCIO Plugins
首页
爱发电 (opens new window)
无法下载? (opens new window)

人间工作P

我每天都好困… 最近在学习和进行 VOCALOID 创作
首页
爱发电 (opens new window)
无法下载? (opens new window)
  • FiguraLambda

  • SweetAdaptiveShop

  • SweetCheckout

  • SweetDrops

  • SweetMail

  • SweetMessages

  • SweetPlayerMarket

    • 简介
    • 命令与权限
    • 执行操作
    • 定时自动上架
    • 开发者
      • 上架商品
      • 添加扩展商品类型
      • 添加物品提供器
      • 修改商品标签提供器
  • SweetRewards

  • SweetTask

  • 杂物

  • 插件文档
  • SweetPlayerMarket
2025-09-01
目录

开发者

jitpack (opens new window)

repositories {
    maven("https://jitpack.io/")
}
dependencies {
    compileOnly("com.github.MrXiaoM:SweetPlayerMarket:$VERSION:all")
}
1
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

# 添加扩展商品类型

详见接口 IShopAdapterFactory (opens new window),主要用途是自定义特殊商品的出售和收购逻辑。

也就是说,出售商品在给物品的时候可以不给物品,转而执行自定义操作。收购商品同理。

import top.mrxiaom.sweet.playermarket.func.ShopAdapterRegistry;

// 注册商店适配器工厂到 SweetPlayerMarket 中
ShopAdapterRegistry.inst().register(factory);
1
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

# 修改商品标签提供器

目前正在编写默认实现 ItemTagManager (opens new window)。

用于给不同商品打标签,使得玩家可以在全球市场列表筛选出指定标签的商品,实现分类功能。

import top.mrxiaom.sweet.playermarket.SweetPlayerMarket;

// 获取插件实例
SweetPlayerMarket plugin = SweetPlayerMarket.getInstance();
// 设置商品标签提供器
plugin.itemTagResolver(provider);
1
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
上次更新: 2026/01/24, 15:12:56
定时自动上架
简介

← 定时自动上架 简介→

使用主题 Vdoing | Copyright © 2018-2026 人间工作P | 到爱发电支持我 | b99b741

除非特别说明,本站点所有文章均以 CC BY-SA 协议授权

《我的世界》和《Minecraft》是微软公司和 Mojang Synergies AB 的商标,本站点与微软公司等没有从属关系。

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式