diff --git a/src/main/java/WayofTime/bloodmagic/api/network/SoulNetwork.java b/src/main/java/WayofTime/bloodmagic/api/network/SoulNetwork.java index ad9651d2..053656b0 100644 --- a/src/main/java/WayofTime/bloodmagic/api/network/SoulNetwork.java +++ b/src/main/java/WayofTime/bloodmagic/api/network/SoulNetwork.java @@ -5,7 +5,9 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.event.AddToNetworkEvent; import WayofTime.bloodmagic.api.event.SoulNetworkEvent; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; + import com.google.common.base.Strings; + import lombok.Getter; import lombok.Setter; import net.minecraft.entity.player.EntityPlayer; @@ -35,7 +37,7 @@ public class SoulNetwork extends WorldSavedData currentEssence = 0; orbTier = 0; - player = PlayerHelper.getPlayerFromUsername(name); + player = PlayerHelper.getPlayerFromUUID(name); } @Override @@ -90,7 +92,6 @@ public class SoulNetwork extends WorldSavedData */ public int syphon(int syphon) { - System.out.println("Being syphoned"); if (getCurrentEssence() >= syphon) { setCurrentEssence(getCurrentEssence() - syphon); @@ -111,7 +112,6 @@ public class SoulNetwork extends WorldSavedData */ public boolean syphonAndDamage(EntityPlayer user, int toSyphon) { - BloodMagicAPI.getLogger().debug("The operation has requested a drain of " + toSyphon + " LP."); if (user != null) { if (user.worldObj.isRemote) @@ -132,8 +132,6 @@ public class SoulNetwork extends WorldSavedData return event.getResult() != Event.Result.DENY; } - System.out.println("I got here?!?"); - int amount = syphon(toSyphon); hurtPlayer(user, toSyphon - amount); @@ -171,11 +169,9 @@ public class SoulNetwork extends WorldSavedData public void causeNauseaToPlayer() { - System.out.println("Hai! I'm adding the bane of your existence!"); - if (getPlayer() != null) { - getPlayer().addPotionEffect(new PotionEffect(Potion.confusion.getId(), 20)); + getPlayer().addPotionEffect(new PotionEffect(Potion.confusion.getId(), 99)); } } } diff --git a/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java b/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java index f5e91672..d68eeb6c 100644 --- a/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java +++ b/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java @@ -115,7 +115,6 @@ public class NetworkHelper */ public static boolean syphonFromContainer(ItemStack stack, int toSyphon) //TODO: Change to a String, int? { - System.out.println("Test"); stack = NBTHelper.checkNBT(stack); String ownerName = stack.getTagCompound().getString(Constants.NBT.OWNER_UUID); @@ -129,6 +128,18 @@ public class NetworkHelper return !(MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) && network.syphon(event.syphon) >= toSyphon; } + public static boolean canSyphonFromContainer(ItemStack stack, int toSyphon) + { + stack = NBTHelper.checkNBT(stack); + String ownerName = stack.getTagCompound().getString(Constants.NBT.OWNER_UUID); + + if (Strings.isNullOrEmpty(ownerName)) + return false; + + SoulNetwork network = getSoulNetwork(ownerName); + return network.getCurrentEssence() >= toSyphon; + } + // Set /** diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBindable.java b/src/main/java/WayofTime/bloodmagic/item/ItemBindable.java index 8eccfdf3..9d3ba446 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBindable.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBindable.java @@ -94,6 +94,17 @@ public class ItemBindable extends Item implements IBindable return false; } + public static boolean canSyphonFromNetwork(ItemStack stack, int lpRequested) + { + if (stack.getItem() instanceof ItemBindable) + { + ItemBindable itemBindable = (ItemBindable) stack.getItem(); + return !Strings.isNullOrEmpty(itemBindable.getBindableOwner(stack)) && NetworkHelper.canSyphonFromContainer(stack, lpRequested); + } + + return false; + } + public static void hurtPlayer(EntityPlayer user, int lpSyphoned) { if (user != null) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java b/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java index 4032a282..fa0e0f06 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemLavaCrystal.java @@ -3,6 +3,8 @@ package WayofTime.bloodmagic.item; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; import net.minecraftforge.fml.common.IFuelHandler; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; @@ -44,7 +46,8 @@ public class ItemLavaCrystal extends ItemBindable implements IFuelHandler if (fuelItem instanceof ItemLavaCrystal) { - if (syphonNetwork(fuel, getLPUsed())) //TODO: change to canSyphonNetwork +// if(true) + if (canSyphonFromNetwork(fuel, getLPUsed())) { return 200; } else @@ -52,7 +55,7 @@ public class ItemLavaCrystal extends ItemBindable implements IFuelHandler EntityPlayer player = PlayerHelper.getPlayerFromUUID(getBindableOwner(fuel)); if (player != null) { - //TODO: Add nausea to the player. + player.addPotionEffect(new PotionEffect(Potion.confusion.getId(), 99)); } return 0; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java index a7bd5fe8..161b5a73 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java @@ -36,7 +36,10 @@ public class RitualGreenGrove extends Ritual int currentEssence = network.getCurrentEssence(); if (currentEssence < getRefreshCost()) + { + network.causeNauseaToPlayer(); return; + } int maxGrowths = currentEssence / getRefreshCost(); int totalGrowths = 0; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java index 3fdcc4d1..65c59d81 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java @@ -35,7 +35,10 @@ public class RitualJumping extends Ritual int currentEssence = network.getCurrentEssence(); if (currentEssence < getRefreshCost()) + { + network.causeNauseaToPlayer(); return; + } int maxEffects = currentEssence / getRefreshCost(); int totalEffects = 0; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java index eb987147..67a363fb 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java @@ -28,7 +28,10 @@ public class RitualLava extends Ritual int currentEssence = network.getCurrentEssence(); if (currentEssence < getRefreshCost()) + { + network.causeNauseaToPlayer(); return; + } int maxEffects = currentEssence / getRefreshCost(); int totalEffects = 0; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java index a4ea81c0..85248e25 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java @@ -28,7 +28,10 @@ public class RitualWater extends Ritual int currentEssence = network.getCurrentEssence(); if (currentEssence < getRefreshCost()) + { + network.causeNauseaToPlayer(); return; + } int maxEffects = currentEssence / getRefreshCost(); int totalEffects = 0; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java index 079ee83e..929782bb 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java @@ -44,7 +44,10 @@ public class RitualWellOfSuffering extends Ritual int currentEssence = network.getCurrentEssence(); if (currentEssence < getRefreshCost()) + { + network.causeNauseaToPlayer(); return; + } BlockPos pos = masterRitualStone.getPos(); diff --git a/src/main/resources/assets/bloodmagic/models/item/ItemLavaCrystal.json b/src/main/resources/assets/bloodmagic/models/item/ItemLavaCrystal.json new file mode 100644 index 00000000..e13168b1 --- /dev/null +++ b/src/main/resources/assets/bloodmagic/models/item/ItemLavaCrystal.json @@ -0,0 +1,7 @@ +{ + "parent":"bloodmagic:item/ItemModelBase", + "textures": { + "layer0":"bloodmagic:items/LavaCrystal" + } +} +