IMCHelper

基本信息

属性 值
类名 betterachievements.api.util.IMCHelper
目标 modid "BetterAchievements"
源文件 src/main/java/betterachievements/api/util/IMCHelper.java

功能

跨 mod 通信(Inter-Mod Communication)辅助类。提供给依赖模组通过 FMLInterModComms.sendMessage("BetterAchievements", pageName, itemStack) 注册 AchievementPage 的页签图标,无需实现 ICustomIcon 接口。

调用顺序在主类 BetterAchievements.imcCallback:

for (FMLInterModComms.IMCMessage message : event.getMessages())
    if (message.isItemStackMessage())
        AchievementRegistry.instance().registerIcon(message.key, message.getItemStackValue(), false);

注释原文:IMC will most likely register before the ICustomIcon#getPageIcon() will ever be called. In short this will override whatever is set there, so use only one of both.

公开方法

方法 说明
sendIconForPage(String pageName, ItemStack itemStack) 按页名发送
sendIconForPage(AchievementPage page, ItemStack itemStack) 按页对象发送(内部调用 page.getName())
sendIconForPage(String pageName, Item item) 包装为 new ItemStack(item)
sendIconForPage(AchievementPage page, Item item) 同上
sendIconForPage(String pageName, Block block) 包装为 new ItemStack(block)
sendIconForPage(AchievementPage page, Block block) 同上

使用示例(来自 Demo mod)

// src/demo/java/betterachievementsdemo/BetterAchievementsDemo.java
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
    AchievementRegistry.registerAchievements();
    IMCHelper.sendIconForPage("demoPage5", Blocks.gold_block);
}

相关条目