diff --git a/src/main/java/WayofTime/bloodmagic/BloodMagic.java b/src/main/java/WayofTime/bloodmagic/BloodMagic.java index 93e85f28..0cf32bff 100644 --- a/src/main/java/WayofTime/bloodmagic/BloodMagic.java +++ b/src/main/java/WayofTime/bloodmagic/BloodMagic.java @@ -2,13 +2,19 @@ package WayofTime.bloodmagic; import java.io.File; +import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.compat.ICompatibility; +import WayofTime.bloodmagic.util.Utils; import lombok.Getter; +import net.minecraft.block.Block; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; +import net.minecraftforge.fml.common.event.FMLInterModComms; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.network.NetworkRegistry; @@ -26,6 +32,7 @@ import WayofTime.bloodmagic.registry.ModPotions; import WayofTime.bloodmagic.registry.ModRecipes; import WayofTime.bloodmagic.registry.ModRituals; import WayofTime.bloodmagic.registry.ModTranquilityHandlers; +import net.minecraftforge.fml.common.registry.GameRegistry; @Mod(modid = Constants.Mod.MODID, name = Constants.Mod.NAME, version = Constants.Mod.VERSION, dependencies = Constants.Mod.DEPEND, guiFactory = "WayofTime.bloodmagic.client.gui.config.ConfigGuiFactory") @Getter @@ -98,4 +105,38 @@ public class BloodMagic proxy.postInit(); } + + @Mod.EventHandler + public void onIMCRecieved(FMLInterModComms.IMCEvent event) + { + for (FMLInterModComms.IMCMessage message : event.getMessages()) { + if (message.key.equals("teleposerBlacklist") && message.isItemStackMessage()) + { + ItemStack stack = message.getItemStackValue(); + if (stack.getItem() instanceof ItemBlock) + { + Block block = Block.getBlockFromItem(stack.getItem()); + BloodMagicAPI.addToTeleposerBlacklist(block, stack.getItemDamage()); + } + } + + if (message.key.equals("sacrificeValue") && message.isStringMessage()) + { + String[] splitInfo = message.getStringValue().split(";"); + if (splitInfo.length == 2 && Utils.isInteger(splitInfo[1])) + BloodMagicAPI.setEntitySacrificeValue(splitInfo[0], Integer.parseInt(splitInfo[1])); + } + + if (message.key.equals("greenGroveBlacklist") && message.isStringMessage()) + { + String[] splitInfo = message.getStringValue().split(":"); + if (splitInfo.length == 2) + { + Block block = GameRegistry.findBlock(splitInfo[0], splitInfo[1]); + if (block != null) + BloodMagicAPI.blacklistFromGreenGrove(block); + } + } + } + } } diff --git a/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java b/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java index 979fa916..a470ce66 100644 --- a/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java +++ b/src/main/java/WayofTime/bloodmagic/api/BloodMagicAPI.java @@ -4,7 +4,6 @@ import WayofTime.bloodmagic.api.util.helper.LogHelper; import lombok.Getter; import lombok.Setter; import net.minecraft.block.Block; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.util.DamageSource; @@ -16,6 +15,17 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * The primary API class. Includes helper methods and blacklists. + * + * Some API methods can be used via IMC instead. The supported methods are: + * + *