下面列出了怎么用net.minecraftforge.fml.common.event.FMLInterModComms的API类实例代码及写法,或者点击链接到github查看源代码。
@EventHandler
public static void init(FMLInitializationEvent event) {
OreRegistry.loadJson(new File(configDirectory, "OreRegistry.json"));
loadConfigs();
Recipes.init();
OreRegistry.doRecipes();
proxy.initOreModels();
proxy.registerColorHandlers();
FMLInterModComms.sendMessage("Waila", "register",
"exnihiloadscensio.compatibility.CompatWaila.callbackRegister");
if (Loader.isModLoaded("theoneprobe") && Config.doTOPCompat) {
CompatTOP.init();
}
}
@Override
public void run()
{
int count = 0;
try
{
while (count < VERSION_CHECK_ATTEMPTS - 1 && (count == 0 || !modsToCheck.isEmpty()))
{
IMCHandler.processMessages(FMLInterModComms.fetchRuntimeMessages(Reference.MOD_ID));
checkVersion();
count++;
Thread.sleep(10000);
}
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event)
{
MinecraftForge.EVENT_BUS.register(new EventHandler());
FMLCommonHandler.instance().bus().register(new ConfigHandler());
ConfigHandler.init(event);
RemoveHandler.init();
FMLInterModComms.sendRuntimeMessage(Reference.MOD_ID, "VersionChecker", "addVersionCheck", REMOTE_VERSION_URL);
if (!disableNEMCheck)
NEMChecker.execute();
/*
NBTTagCompound compound = new NBTTagCompound();
compound.setString("curseProjectName", "221140-version-checker");
compound.setString("curseFilenameParser", "VersionChecker-[].jar");
FMLInterModComms.sendRuntimeMessage(Reference.MOD_ID, "VersionChecker", "addCurseCheck", compound);
*/
//sendABunchOfDerpyMessages();
}
@Override
public void initPlugin() {
// Fix Golems
FMLInterModComms.sendMessage(
"Thaumcraft",
"harvestClickableCrop",
new ItemStack(AgriBlocks.getInstance().CROP, 1, Constants.MATURE)
);
}
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(new RegistryHandler());
itemForCreativeMenuIcon = ItemForCreativeMenuIcon.create();
Config.load(event);
itemWitheringDust = ItemWitheringDust.create();
itemConfusingDust = ItemConfusingDust.create();
itemEnderFragment = ItemEnderFragment.create();
itemGuardiansBow = ItemGuardiansBow.create();
itemOwlEgg = ItemOwlEgg.create();
if (Config.confusingChargeEnabled) {
blockConfusingCharge = BlockConfusingCharge.create();
}
if (Config.enderChargeEnabled) {
blockEnderCharge = BlockEnderCharge.create();
}
if (Config.concussionChargeEnabled) {
blockConcussionCharge = BlockConcussionCharge.create();
}
potions = new Potions();
FMLInterModComms.sendMessage("waila", "register", "crazypants.enderzoo.waila.WailaCompat.load");
proxy.preInit();
}
public void processIMC(final FMLInterModComms.IMCEvent event) {
for (final FMLInterModComms.IMCMessage message : event.getMessages()) {
if ("checkUpdate".equals(message.key) && message.isStringMessage()) {
processMessage(message.getSender(), message.getStringValue());
}
}
}
public static void processMessages(List<FMLInterModComms.IMCMessage> messageList)
{
for (FMLInterModComms.IMCMessage message : messageList)
{
if (message.key.equalsIgnoreCase(IMCOperations.ADD_UPDATE))
{
LogHandler.info("Received update from mod " + message.getSender());
if (message.isNBTMessage())
{
processAddUpdateMessage(message.getNBTValue(), message.getSender());
}
else if (message.isStringMessage())
{
processAddUpdateMessage(message.getStringValue(), message.getSender());
}
}
else if (message.key.equalsIgnoreCase(IMCOperations.ADD_VERSION_CHECK))
{
LogHandler.info("Received version check from mod " + message.getSender());
if (message.isStringMessage())
{
processVersionCheckMessage(message.getSender(), message.getStringValue());
}
}
else if (message.key.equalsIgnoreCase(IMCOperations.ADD_CURSE_CHECK))
{
LogHandler.info("Received curse check from mod " + message.getSender());
if (message.isNBTMessage())
{
processCurseCheckMessage(message.getSender(), message.getNBTValue());
}
}
}
}
@Override
public void initGui()
{
IMCHandler.processMessages(FMLInterModComms.fetchRuntimeMessages(Reference.MOD_ID));
super.initGui();
windowStartX = width / 2 - 110 + listShift;
windowStartY = height / 2 - 90;
windowEndX = width / 2 + 110 + listShift;
windowEndY = height / 2 + 70;
buttonList.add(new GuiButton(0, width / 2 - 75 + listShift, height - 30, 150, 20, I18n.translateToLocal("gui.done")));
buttonList.add(updateButton = new GuiButton(1, width / 2 - 100 + listShift, height / 2 + 40, 96, 20, I18n.translateToLocal(Strings.UPDATE)));
buttonList.add(closeButton = new GuiButton(2, width / 2 + 4 + listShift, height / 2 + 40, 96, 20, I18n.translateToLocal("gui.done")));
buttonList.add(new GuiButton(3, 10, height - 30, 150, 20, I18n.translateToLocal(Strings.MOD_FOLDER)));
buttonList.add(buttonDownloaded = new GuiButtonDownloaded(4, width / 2 - 100 + listShift, height / 2 + 15));
buttonList.add(NEMButton = new GuiButtonNEM(getUpdateListProperties(), 5, width / 2 + 90 + listShift, height - 30));
buttonList.add(curseButton = new GuiButtonCurse(getUpdateListProperties(), 6, width / 2 + 125 + listShift, height - 30));
updateList = new GuiUpdateList(this, 300, height - 60, 20, height - 40, width / 2 - 150 + listShift);
changeLogList = new GuiChangeLogList(this, 200, 75, height / 2 - 60, height / 2 + 15, width / 2 - 100 + listShift);
if (openUpdate != null)
{
openInfoScreen(openUpdate);
}
else
{
closeInfoScreen();
}
}
@SuppressWarnings("unchecked")
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void onGuiInit(GuiScreenEvent.InitGuiEvent evt)
{
if (evt.getGui() instanceof GuiMainMenu)
{
IMCHandler.processMessages(FMLInterModComms.fetchRuntimeMessages(Reference.MOD_ID));
GuiMainMenuHandler.initGui(evt.getGui(), evt.getButtonList());
}
}
private void sendIMCs()
{
FMLInterModComms.sendMessage("waila", "register", "cubex2.cs4.compat.waila.CompatWaila.callbackRegister");
}
@Override
protected void doInit(InitPhase phase, ContentHelper helper)
{
FMLInterModComms.sendMessage(modId, key, value.getItemStack().copy());
}
@Override
protected void doInit(InitPhase phase, ContentHelper helper)
{
FMLInterModComms.sendMessage(modId, key, value);
}
@Override
protected void doInit(InitPhase phase, ContentHelper helper)
{
FMLInterModComms.sendFunctionMessage(modId, key, value);
}
@Override
protected void doInit(InitPhase phase, ContentHelper helper)
{
FMLInterModComms.sendMessage(modId, key, value);
}
@Override
protected void doInit(InitPhase phase, ContentHelper helper)
{
FMLInterModComms.sendMessage(modId, key, value);
}
public static void init() {
if (registered)
return;
registered = true;
FMLInterModComms.sendFunctionMessage("theoneprobe", "getTheOneProbe", "exnihiloadscensio.compatibility.theoneprobe.CompatTOP$GetTheOneProbe");
}
@Override
public void initPlugin() {
AgriCore.getLogger("agricraft").debug("Calling One Probe Register! Result: {0}!",
FMLInterModComms.sendFunctionMessage("theoneprobe", "getTheOneProbe", this.getClass().getPackage().getName() + ".GetTheOneProbe"));
}
public static void init() {
LogHelper.info("TheOneProbe detected. Registering entities with TheOneProbe registry.");
FMLInterModComms.sendFunctionMessage("theoneprobe", "getTheOneProbe", REGISTRAR_CLASSPATH);
}
public static void init() {
LogHelper.info("WAILA detected. Registering entities with WAILA registry.");
FMLInterModComms.sendMessage("waila", "register", REGISTRAR_CLASSPATH);
}
public void preInit(final FMLPreInitializationEvent event) {
Reference.logger = event.getModLog();
FMLInterModComms.sendMessage(Reference.MODID, "checkUpdate", Reference.FORGE);
}
@Mod.EventHandler
public void processIMC(final FMLInterModComms.IMCEvent event) {
proxy.processIMC(event);
}
@Mod.EventHandler
public void handleIMCMessages(FMLInterModComms.IMCEvent event)
{
IMCHandler.processMessages(event.getMessages());
}
@EventHandler
public void processIMCRequests(FMLInterModComms.IMCEvent event){
proxy.processIMC(event);
}
public void processIMC(FMLInterModComms.IMCEvent event);