Move binding back to PIE

BM will now only load with Forge 1840+ as that is the version that PIE was re-implemented. Set dependency to avoid crashes. Also updated JEI version so it wouldn't crash with new Forge.
This commit is contained in:
Nick 2016-04-04 19:23:06 -07:00
parent b0b61798fe
commit 794ac6a7a2
8 changed files with 26 additions and 126 deletions

View file

@ -2,12 +2,12 @@ mod_name=BloodMagic
package_group=com.wayoftime.bloodmagic
mod_version=2.0.0
mc_version=1.9
forge_version=12.16.0.1826-1.9
forge_version=12.16.0.1840-1.9
curse_id=224791
mappings_version=snapshot_20160321
jei_version=3.2.0.173
jei_version=3.2.5.179
waila_version=1.6.0-B3
thaumcraft_version=5.1.5
baubles_version=1.1.3.0

View file

@ -118,7 +118,7 @@ public class Constants
public static final String DOMAIN = MODID.toLowerCase(Locale.ENGLISH) + ":";
public static final String NAME = "Blood Magic: Alchemical Wizardry";
public static final String VERSION = "@VERSION@";
public static final String DEPEND = "after:JEI@[2.23.0,);after:guideapi";
public static final String DEPEND = "required-after:Forge@[12.16.0.1840,);after:JEI@[2.23.0,);after:guideapi;";
}
public static final class Gui

View file

@ -1,75 +0,0 @@
package WayofTime.bloodmagic.api;
import WayofTime.bloodmagic.api.event.ItemBindEvent;
import WayofTime.bloodmagic.api.iface.IBindable;
import WayofTime.bloodmagic.api.network.SoulNetwork;
import WayofTime.bloodmagic.api.orb.IBloodOrb;
import WayofTime.bloodmagic.api.util.helper.BindableHelper;
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import com.google.common.base.Strings;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.eventhandler.Event;
@Deprecated
public class DinnerBeforeDessert
{
// Temporary binding method until PlayerInteractEvent is re-implemented in Forge 1.9.
// Returns false if binding fails.
public static boolean bindMe(World world, EntityPlayer player, ItemStack stack)
{
if (stack == null)
return false;
if (PlayerHelper.isFakePlayer(player))
return false;
if (!(stack.getItem() instanceof IBindable))
return false;
NBTHelper.checkNBT(stack);
IBindable bindable = (IBindable) stack.getItem();
if (Strings.isNullOrEmpty(bindable.getOwnerUUID(stack)))
{
if (bindable.onBind(player, stack))
{
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
ItemBindEvent toPost = new ItemBindEvent(player, uuid, stack);
if (MinecraftForge.EVENT_BUS.post(toPost) || toPost.getResult() == Event.Result.DENY)
return false;
BindableHelper.setItemOwnerUUID(stack, uuid);
BindableHelper.setItemOwnerName(stack, player.getDisplayNameString());
return true;
}
} else if (bindable.getOwnerUUID(stack).equals(PlayerHelper.getUUIDFromPlayer(player).toString()) && !bindable.getOwnerName(stack).equals(player.getDisplayNameString()))
{
BindableHelper.setItemOwnerName(stack, player.getDisplayNameString());
return true;
}
return false;
}
// Temporary Orb tier setting until PlayerInteractEvent is re-implemented in Forge 1.9.
public static void setOrbTier(EntityPlayer player, ItemStack stack)
{
if (stack == null)
return;
if (!(stack.getItem() instanceof IBloodOrb))
return;
NBTHelper.checkNBT(stack);
IBloodOrb bloodOrb = (IBloodOrb) stack.getItem();
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
if (bloodOrb.getOrbLevel(stack.getItemDamage()) > network.getOrbTier())
network.setOrbTier(bloodOrb.getOrbLevel(stack.getItemDamage()));
}
}

View file

@ -1,15 +1,11 @@
package WayofTime.bloodmagic.api.impl;
import WayofTime.bloodmagic.api.DinnerBeforeDessert;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.iface.IBindable;
import WayofTime.bloodmagic.api.util.helper.NBTHelper;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.world.World;
/**
* Base class for all bindable items.
@ -23,14 +19,6 @@ public class ItemBindable extends Item implements IBindable
setMaxStackSize(1);
}
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand)
{
if (!worldIn.isRemote)
DinnerBeforeDessert.bindMe(worldIn, playerIn, itemStackIn);
return super.onItemRightClick(itemStackIn, worldIn, playerIn, hand);
}
// IBindable
@Override

View file

@ -14,7 +14,6 @@ import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import WayofTime.bloodmagic.api.Constants;
import WayofTime.bloodmagic.api.DinnerBeforeDessert;
import WayofTime.bloodmagic.api.iface.IBindable;
import WayofTime.bloodmagic.api.orb.BloodOrb;
import WayofTime.bloodmagic.api.orb.IBloodOrb;
@ -55,9 +54,6 @@ public class ItemBloodOrb extends ItemBindableBase implements IBloodOrb, IBindab
if (world == null)
return super.onItemRightClick(stack, null, player, hand);
super.onItemRightClick(stack, world, player, hand);
DinnerBeforeDessert.setOrbTier(player, stack);
world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.block_fire_extinguish, SoundCategory.BLOCKS, 0.5F, 2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F);
// SpellHelper.sendIndexedParticleToAllAround(world, posX, posY, posZ,
// 20, world.provider.getDimensionId(), 4, posX, posY, posZ);

View file

@ -3,7 +3,6 @@ package WayofTime.bloodmagic.item;
import java.util.ArrayList;
import java.util.List;
import WayofTime.bloodmagic.api.DinnerBeforeDessert;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.renderer.ItemMeshDefinition;
import net.minecraft.entity.EntityLivingBase;
@ -54,8 +53,6 @@ public class ItemBoundSword extends ItemSword implements IBindable, IActivatable
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand)
{
DinnerBeforeDessert.bindMe(world, player, stack);
if (player.isSneaking())
setActivatedState(stack, !getActivated(stack));

View file

@ -6,7 +6,6 @@ import java.util.Map;
import java.util.Set;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.DinnerBeforeDessert;
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
import com.google.common.base.Strings;
import lombok.Getter;
@ -114,8 +113,6 @@ public class ItemBoundTool extends ItemTool implements IBindable, IActivatable
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand)
{
DinnerBeforeDessert.bindMe(world, player, stack);
if (player.isSneaking())
setActivatedState(stack, !getActivated(stack));

View file

@ -498,7 +498,7 @@ public class EventHandler
}
@SubscribeEvent
public void interactEvent(PlayerInteractEvent event)
public void onInteract(PlayerInteractEvent.RightClickItem event)
{
if (event.getWorld().isRemote)
return;
@ -508,38 +508,35 @@ public class EventHandler
if (PlayerHelper.isFakePlayer(player))
return;
if (event.getUseBlock() == Result.DENY && event.getUseItem() != Result.DENY)
ItemStack held = event.getItemStack();
if (held != null && held.getItem() instanceof IBindable)
{
ItemStack held = player.getActiveItemStack();
if (held != null && held.getItem() instanceof IBindable)
held = NBTHelper.checkNBT(held);
IBindable bindable = (IBindable) held.getItem();
if (Strings.isNullOrEmpty(bindable.getOwnerUUID(held)))
{
held = NBTHelper.checkNBT(held);
IBindable bindable = (IBindable) held.getItem();
if (Strings.isNullOrEmpty(bindable.getOwnerUUID(held)))
if (bindable.onBind(player, held))
{
if (bindable.onBind(player, held))
{
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
ItemBindEvent toPost = new ItemBindEvent(player, uuid, held);
if (MinecraftForge.EVENT_BUS.post(toPost) || toPost.getResult() == Result.DENY)
return;
String uuid = PlayerHelper.getUUIDFromPlayer(player).toString();
ItemBindEvent toPost = new ItemBindEvent(player, uuid, held);
if (MinecraftForge.EVENT_BUS.post(toPost) || toPost.getResult() == Result.DENY)
return;
BindableHelper.setItemOwnerUUID(held, uuid);
BindableHelper.setItemOwnerName(held, player.getDisplayNameString());
}
} else if (bindable.getOwnerUUID(held).equals(PlayerHelper.getUUIDFromPlayer(player).toString()) && !bindable.getOwnerName(held).equals(player.getDisplayNameString()))
BindableHelper.setItemOwnerUUID(held, uuid);
BindableHelper.setItemOwnerName(held, player.getDisplayNameString());
}
}
} else if (bindable.getOwnerUUID(held).equals(PlayerHelper.getUUIDFromPlayer(player).toString()) && !bindable.getOwnerName(held).equals(player.getDisplayNameString()))
BindableHelper.setItemOwnerName(held, player.getDisplayNameString());
}
if (held != null && held.getItem() instanceof IBloodOrb)
{
held = NBTHelper.checkNBT(held);
IBloodOrb bloodOrb = (IBloodOrb) held.getItem();
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
if (held != null && held.getItem() instanceof IBloodOrb)
{
held = NBTHelper.checkNBT(held);
IBloodOrb bloodOrb = (IBloodOrb) held.getItem();
SoulNetwork network = NetworkHelper.getSoulNetwork(player);
if (bloodOrb.getOrbLevel(held.getItemDamage()) > network.getOrbTier())
network.setOrbTier(bloodOrb.getOrbLevel(held.getItemDamage()));
}
if (bloodOrb.getOrbLevel(held.getItemDamage()) > network.getOrbTier())
network.setOrbTier(bloodOrb.getOrbLevel(held.getItemDamage()));
}
}