ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[danger]pr的属性获取是在`PlayerDataModule`模块内的 需重写 `getDepends()`并写入该模块的类名 这样能保证在这个模块后载入 ![](https://img.kancloud.cn/45/d9/45d98b709105dd52ed88729ba8440ab6_578x177.png) >[danger]模块间的交互推荐在`onLoad()`方法进行 ![](https://img.kancloud.cn/e6/0f/e60fe58061a8ce7ffba0ea6af7e117c0_856x952.png) >[danger]完整代码 ```java /** * 你的模块类 */ public class TestModule extends AbstractModule { public TestModule(Plugin plugin) { //这里需要传入pxrpg的代理插件类 super(MAPI.getBukkitPxRpgAPI().toPxRpgPlugin(plugin)); } @Override public String getModuleName() { return "你的模块名,如: Equip"; } @Override public String[] getDepends() { return new String[]{ //依赖于PlayerDataModule模块,会在PlayerDataModule模块后载入 "PlayerDataModule" }; } @Override public void onLoad() { //在这里进行模块交互 //先获取 PlayerDataModule 模块 PlayerDataModule module = Module.getModule(PlayerDataModule.class); //获取PlayerDataModule的监听器.并添加自定义玩家监听器 module.getPlayerMonitor().add(new PlayerMonitor() { @Override public void onLoad(PlayerData playerData) { //当玩家进入游戏初始化完成后,会调用这个方法 //先获取玩家独立的兼容管理器 CompatibleManager compatibleManager = playerData.getCompatibleManager(); //获取属性兼容器 AttributeCompatible compatible = compatibleManager.getCompatible(AttributeCompatible.class); //添加一个自定义的属性汇总 compatible.addAttributeSummary("唯一标识", new AttributeSummary() { /** * * @param id 属性ID * @param percentage 是否是百分比 * @param isMin 是否是最小值,true=最小值,false=最大值 * @return */ @Override public double getAttributeTotal(String id, boolean percentage, boolean isMin) { //在刷新玩家属性时,会触发这个方法添加进玩家的属性缓存 //可以调用 playerData.update(); 方法手动刷新 //在这里返回你的属性就行 return 0; } }); } @Override public String getId() { //唯一标识,随意, 不能重复 return "Test Attribute"; } }); } } ```