MineLastDaysProxy对接指南
在该页中简单了解常用机制
MineLastDaysProxy的主要职责是进行Mod与Plugin的对接。
其提供Plugin便捷调用Mod内功能的途径,同时协调Mod与Plugin的功能。
一,你方作为服务提供商时

位于proxies包下,有两个类负责对接
IFunctionProvider。服务提供接口。你需要实现该接口,以提供服务。
ProviderManager。服务对接器。在该类中注册你的实现类。
1. 以对接队伍服务为例
通常,若需要对接,插件将会创建一个需求接口。
//需求接口,包含需要对接的内容。
public interface ITeamInfoProvider extends IFunctionProvider {
/**
* 判断两玩家是否是队友
*/
boolean isTeammate(UUID playrUUID1, UUID playerUUID2);
/**
* 获取某玩家的队友
*/
ArrayList<UUID> getTeammates(UUID playerUUID);
}你方需要对该接口进行实现,以提供功能。
//为需求接口写入你的实现方法
public class TeamInfoProviderImpl implements ITeamInfoProvider{
/**
* 判断两玩家是否是队友
*/
public boolean isTeammate(UUID playrUUID1, UUID playerUUID2){
boolean result = false;
//TODO 你的逻辑代码
return result;
}
//其他部分同理...
}至此,你已经完成对接口的实现。
接下来,你需要在服务对接器注册你的实现类。我们通常在插件开启时进行。
public class YourPlugin extends JavaPlugin{
@Override
public void onEnable(){
//注册你的实现类
ProviderManager.register(new TeamInfoProviderImpl());
}
}自此,你已完成对接。
你可以使用ProviderManager.getProvider(ITeamInfoProvider.class)调用你的实现类,进行测试。
二,本插件提供功能时

当该插件提供功能时,通常会提供以Manager结尾的类,以提供相应的静态方法。
1. 以怪物对接为例
当你需要获取怪物类型时,调用方法。
//获得怪物类型
MobManager.getMobType(theEntity);其他同理,可在功能提供分类下了解详细。
三,本插件作为对接枢纽时
在某些情况下,该插件作为一个对接枢纽,如图所示。

1. 当你方作为服务提供商时
你只需实现需求接口,并注册即可。
2. 当你方作为服务消费者时
由上文可知,当它方插件作为服务提供商时,需要在ProviderManager中注册其服务,该服务是允许第三方获得的。
如下所示,你可以得到目标服务接口的实现类。
//获取服务
//若返回为NULL,则代表该接口未被实现。
ITeamInfoProvider iTeamInfoProvider = ProviderManager.getProvider(ITeamInfoProvider.class);
//TODO 你的使用代码至此,你完成了服务的调用。
Last updated
Was this helpful?