LogoArcartX Doc

ArcartXLinkManager:第三方桥接

第三方插件桥接API

ArcartXLinkManager

  • 第三方桥接管理器允许你为ArcartX注册自定义的属性系统、经济系统、物品系统和PlaceholderAPI变量。
  • 通过代码直接访问 ArcartXLinkManager 单例对象。

属性系统

registerAttributeProvider(attributeProvider)

  • 注册一个属性提供者
  • 参数attributeProvider: AttributeProvider — 属性提供者实例
  • 返回值:无
  • 调用示例
ArcartXLinkManager.INSTANCE.registerAttributeProvider(new MyAttributeProvider());

getAttributeProvider(name)

  • 获取指定名称的属性提供者
  • 参数name: String — 提供者标识
  • 返回值AttributeProvider?

AttributeProvider 接口

public interface AttributeProvider {
    String getIdentifier();
    void addAttribute(LivingEntity entity, String sourceID, List<String> list);
    void addAttribute(LivingEntity entity, String sourceID, ItemStack itemStack);
    void removeAttribute(LivingEntity entity, String sourceID);
}

经济系统

registerEconomyProvider(economyProvider)

  • 注册一个经济提供者
  • 参数economyProvider: EconomyProvider — 经济提供者实例
  • 返回值:无
  • 调用示例
ArcartXLinkManager.INSTANCE.registerEconomyProvider(new MyEconomyProvider());

getEconomyProvider(name)

  • 获取指定名称的经济提供者
  • 参数name: String — 提供者标识
  • 返回值EconomyProvider?

EconomyProvider 接口

public interface EconomyProvider {
    String getIdentifier();
    String getDisplayName();
    boolean addEconomy(Player player, double amount);
    double getEconomy(Player player);
    boolean takeEconomy(Player player, double amount);
}

物品系统

registerItemProvider(itemProvider)

  • 注册一个物品提供者
  • 参数itemProvider: ItemProvider — 物品提供者实例
  • 返回值:无
  • 调用示例
ArcartXLinkManager.INSTANCE.registerItemProvider(new MyItemProvider());

getItemProvider(name)

  • 获取指定名称的物品提供者
  • 参数name: String — 提供者标识
  • 返回值ItemProvider?

ItemProvider 接口

public interface ItemProvider {
    String getIdentifier();
    ItemStack generateItemStack(String id);
}

PlaceholderAPI

registerPlaceholder(placeholder)

  • 注册一个ArcartX PlaceholderAPI变量
  • 参数placeholder: AXPlaceholder — 变量实例
  • 返回值:无
  • 调用示例
ArcartXLinkManager.INSTANCE.registerPlaceholder(new MyPlaceholder());

需要服务端安装PlaceholderAPI插件才能使用此功能。

unRegisterPlaceholder(placeholder)

  • 注销一个PlaceholderAPI变量
  • 参数placeholder: AXPlaceholder — 变量实例
  • 返回值:无

AXPlaceholder 抽象类

  • 继承此类并使用 @Placeholder 注解标记方法即可注册变量
  • 方法参数为 PlaceholderContext,返回值为 String
  • 使用 @PlaceholderArgs 注解声明参数
public class MyPlaceholder extends AXPlaceholder {
    @Override
    public String getIdentifier() {
        return "myplugin";
    }
 
    @Placeholder("level")
    public String getLevel(PlaceholderContext context) {
        // %arcartx_myplugin_level%
        return String.valueOf(getPlayerLevel(context.getPlayer()));
    }
 
    @Placeholder("stat")
    @PlaceholderArgs({"statName"})
    public String getStat(PlaceholderContext context) {
        // %arcartx_myplugin_stat_<statName>%
        String statName = context.getArg(0);
        return getStatValue(context.getPlayer(), statName);
    }
}