From 794ac6a7a2149a7ecf7ef79b02bac481c45fc8cf Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 4 Apr 2016 19:23:06 -0700 Subject: [PATCH] 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. --- gradle.properties | 4 +- .../WayofTime/bloodmagic/api/Constants.java | 2 +- .../bloodmagic/api/DinnerBeforeDessert.java | 75 ------------------- .../bloodmagic/api/impl/ItemBindable.java | 12 --- .../bloodmagic/item/ItemBloodOrb.java | 4 - .../bloodmagic/item/ItemBoundSword.java | 3 - .../bloodmagic/item/ItemBoundTool.java | 3 - .../bloodmagic/util/handler/EventHandler.java | 49 ++++++------ 8 files changed, 26 insertions(+), 126 deletions(-) delete mode 100644 src/main/java/WayofTime/bloodmagic/api/DinnerBeforeDessert.java diff --git a/gradle.properties b/gradle.properties index 125fe5d8..42628b1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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 diff --git a/src/main/java/WayofTime/bloodmagic/api/Constants.java b/src/main/java/WayofTime/bloodmagic/api/Constants.java index 6f428a66..9b8ee03a 100644 --- a/src/main/java/WayofTime/bloodmagic/api/Constants.java +++ b/src/main/java/WayofTime/bloodmagic/api/Constants.java @@ -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 diff --git a/src/main/java/WayofTime/bloodmagic/api/DinnerBeforeDessert.java b/src/main/java/WayofTime/bloodmagic/api/DinnerBeforeDessert.java deleted file mode 100644 index de2e9a3c..00000000 --- a/src/main/java/WayofTime/bloodmagic/api/DinnerBeforeDessert.java +++ /dev/null @@ -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())); - } -} diff --git a/src/main/java/WayofTime/bloodmagic/api/impl/ItemBindable.java b/src/main/java/WayofTime/bloodmagic/api/impl/ItemBindable.java index 1e60e8c7..0fd8c86e 100644 --- a/src/main/java/WayofTime/bloodmagic/api/impl/ItemBindable.java +++ b/src/main/java/WayofTime/bloodmagic/api/impl/ItemBindable.java @@ -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 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 diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java b/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java index ad8142bf..6b126002 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java @@ -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); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java index 82f6464b..43e4ef79 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java @@ -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 onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - DinnerBeforeDessert.bindMe(world, player, stack); - if (player.isSneaking()) setActivatedState(stack, !getActivated(stack)); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java index b55bdae0..2dbe793c 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java @@ -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 onItemRightClick(ItemStack stack, World world, EntityPlayer player, EnumHand hand) { - DinnerBeforeDessert.bindMe(world, player, stack); - if (player.isSneaking()) setActivatedState(stack, !getActivated(stack)); diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java index 6bfd58c8..09bd9739 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/EventHandler.java @@ -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())); } }