From f99b21cffc4065e8c871cfed5421faadba457826 Mon Sep 17 00:00:00 2001 From: Nicholas Ignoffo Date: Sun, 12 Jun 2016 13:41:02 -0700 Subject: [PATCH] Rewrite LP network data saving system Instead of creating a new file for each player with their UUID as the name, we create a single file and store it all in a List. That List gets converted to a UUID -> SoulNetwork map when read from the file. MigrateNetworkDataHandler is used to migrate players from the old system to the new one. It reads both data files and sets the LP of the new network to the LP of the old network (if the old network is larger). Once conversion is done, we delete the old file so that it doesn't happen again and overwrite player progress. This is an API breaking change due to an import change. --- .../bloodmagic/altar/BloodAltar.java | 2 +- .../api/event/SoulNetworkEvent.java | 5 +- .../api/saving/BMWorldSavedData.java | 64 +++++ .../bloodmagic/api/saving/SoulNetwork.java | 220 +++++++++++++++++ .../api/util/helper/NetworkHelper.java | 229 +----------------- .../bloodmagic/block/BlockAltar.java | 2 +- .../command/sub/SubCommandNetwork.java | 4 +- .../bloodmagic/command/sub/SubCommandOrb.java | 2 +- .../bloodmagic/item/ItemBloodOrb.java | 2 +- .../item/armour/ItemLivingArmour.java | 2 +- .../bloodmagic/ritual/RitualAltarBuilder.java | 4 +- .../bloodmagic/ritual/RitualAnimalGrowth.java | 4 +- .../bloodmagic/ritual/RitualCobblestone.java | 4 +- .../bloodmagic/ritual/RitualContainment.java | 4 +- .../bloodmagic/ritual/RitualCrushing.java | 5 +- .../ritual/RitualCrystalHarvest.java | 4 +- .../bloodmagic/ritual/RitualExpulsion.java | 4 +- .../ritual/RitualFeatheredKnife.java | 4 +- .../bloodmagic/ritual/RitualFelling.java | 4 +- .../bloodmagic/ritual/RitualForsakenSoul.java | 4 +- .../bloodmagic/ritual/RitualFullStomach.java | 4 +- .../bloodmagic/ritual/RitualGreenGrove.java | 4 +- .../bloodmagic/ritual/RitualHarvest.java | 4 +- .../bloodmagic/ritual/RitualInterdiction.java | 4 +- .../bloodmagic/ritual/RitualJumping.java | 5 +- .../bloodmagic/ritual/RitualLava.java | 4 +- .../bloodmagic/ritual/RitualMagnetic.java | 4 +- .../bloodmagic/ritual/RitualPlacer.java | 4 +- .../bloodmagic/ritual/RitualPump.java | 4 +- .../bloodmagic/ritual/RitualRegeneration.java | 4 +- .../bloodmagic/ritual/RitualSpeed.java | 4 +- .../bloodmagic/ritual/RitualSuppression.java | 4 +- .../bloodmagic/ritual/RitualWater.java | 4 +- .../ritual/RitualWellOfSuffering.java | 4 +- .../bloodmagic/ritual/RitualZephyr.java | 4 +- .../bloodmagic/ritual/portal/Teleports.java | 3 +- .../bloodmagic/tile/TileAlchemyTable.java | 2 +- .../tile/TileMasterRitualStone.java | 2 +- .../util/handler/event/GenericHandler.java | 2 +- .../event/MigrateNetworkDataHandler.java | 63 +++++ 40 files changed, 423 insertions(+), 283 deletions(-) create mode 100644 src/main/java/WayofTime/bloodmagic/api/saving/BMWorldSavedData.java create mode 100644 src/main/java/WayofTime/bloodmagic/api/saving/SoulNetwork.java create mode 100644 src/main/java/WayofTime/bloodmagic/util/handler/event/MigrateNetworkDataHandler.java diff --git a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java index c46f4795..e4aa89aa 100644 --- a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java +++ b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java @@ -527,7 +527,7 @@ public class BloodAltar implements IFluidHandler { int liquidDrained = Math.min((int) (altarTier.ordinal() >= 2 ? consumptionRate * (1 + consumptionMultiplier) : consumptionRate), fluid.amount); - int drain = NetworkHelper.getSoulNetwork(ownerUUID).addLifeEssence(liquidDrained, (int) (item.getMaxEssence(returnedItem.getMetadata()) * this.orbCapacityMultiplier)); + int drain = NetworkHelper.getSoulNetwork(ownerUUID).add(liquidDrained, (int) (item.getMaxEssence(returnedItem.getMetadata()) * this.orbCapacityMultiplier)); fluid.amount = fluid.amount - drain; diff --git a/src/main/java/WayofTime/bloodmagic/api/event/SoulNetworkEvent.java b/src/main/java/WayofTime/bloodmagic/api/event/SoulNetworkEvent.java index 07f74091..7b824964 100644 --- a/src/main/java/WayofTime/bloodmagic/api/event/SoulNetworkEvent.java +++ b/src/main/java/WayofTime/bloodmagic/api/event/SoulNetworkEvent.java @@ -5,6 +5,8 @@ import net.minecraft.item.ItemStack; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.Event; +import javax.annotation.Nullable; + /** * Base event class for Soul Network related events. * @@ -64,6 +66,7 @@ public class SoulNetworkEvent extends Event @Cancelable public static class ItemDrainNetworkEvent extends PlayerDrainNetworkEvent { + @Nullable public final ItemStack itemStack; /** * Amount of damage that would incur if the network could not drain @@ -84,7 +87,7 @@ public class SoulNetworkEvent extends Event * @param drainAmount * Original drain amount - change to alter cost */ - public ItemDrainNetworkEvent(EntityPlayer player, String ownerNetwork, ItemStack itemStack, int drainAmount) + public ItemDrainNetworkEvent(EntityPlayer player, String ownerNetwork, @Nullable ItemStack itemStack, int drainAmount) { super(player, ownerNetwork, drainAmount); this.itemStack = itemStack; diff --git a/src/main/java/WayofTime/bloodmagic/api/saving/BMWorldSavedData.java b/src/main/java/WayofTime/bloodmagic/api/saving/BMWorldSavedData.java new file mode 100644 index 00000000..3499c82c --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/api/saving/BMWorldSavedData.java @@ -0,0 +1,64 @@ +package WayofTime.bloodmagic.api.saving; + +import WayofTime.bloodmagic.api.util.helper.PlayerHelper; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.WorldSavedData; + +import java.util.*; + +public class BMWorldSavedData extends WorldSavedData +{ + public static final String ID = "BloodMagic-SoulNetworks"; + + private Map soulNetworks = new HashMap(); + + public BMWorldSavedData(String id) + { + super(id); + } + + public BMWorldSavedData() + { + this(ID); + } + + public SoulNetwork getNetwork(EntityPlayer player) + { + return getNetwork(PlayerHelper.getUUIDFromPlayer(player)); + } + + public SoulNetwork getNetwork(UUID playerId) + { + if (!soulNetworks.containsKey(playerId)) + soulNetworks.put(playerId, SoulNetwork.newEmpty(playerId).setParent(this)); + return soulNetworks.get(playerId); + } + + @Override + public void readFromNBT(NBTTagCompound tagCompound) + { + NBTTagList networkData = tagCompound.getTagList("networkData", 10); + + for (int i = 0; i < networkData.tagCount(); i++) + { + NBTTagCompound data = networkData.getCompoundTagAt(i); + SoulNetwork network = SoulNetwork.fromNBT(data); + network.setParent(this); + soulNetworks.put(network.getPlayerId(), network); + } + } + + @Override + public NBTTagCompound writeToNBT(NBTTagCompound tagCompound) + { + NBTTagList networkData = new NBTTagList(); + for (SoulNetwork soulNetwork : soulNetworks.values()) + networkData.appendTag(soulNetwork.serializeNBT()); + + tagCompound.setTag("networkData", networkData); + + return tagCompound; + } +} diff --git a/src/main/java/WayofTime/bloodmagic/api/saving/SoulNetwork.java b/src/main/java/WayofTime/bloodmagic/api/saving/SoulNetwork.java new file mode 100644 index 00000000..20433b88 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/api/saving/SoulNetwork.java @@ -0,0 +1,220 @@ +package WayofTime.bloodmagic.api.saving; + +import WayofTime.bloodmagic.api.BloodMagicAPI; +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 net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.MobEffects; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.common.util.INBTSerializable; +import net.minecraftforge.fml.common.FMLCommonHandler; +import net.minecraftforge.fml.common.eventhandler.Event; + +import javax.annotation.Nullable; +import java.util.UUID; + +@Getter +public class SoulNetwork implements INBTSerializable +{ + private BMWorldSavedData parent; + private EntityPlayer cachedPlayer; + private UUID playerId; + private int currentEssence; + private int orbTier; + + private SoulNetwork() + { + // No-op - For creation via NBT only + } + + public int add(int toAdd, int maximum) + { + AddToNetworkEvent event = new AddToNetworkEvent(playerId.toString(), toAdd, maximum); + + if (MinecraftForge.EVENT_BUS.post(event)) + return 0; + + if (FMLCommonHandler.instance().getMinecraftServerInstance() == null) + return 0; + + int currEss = getCurrentEssence(); + + if (currEss >= event.maximum) + return 0; + + int newEss = Math.min(event.maximum, currEss + event.addedAmount); + if (event.getResult() != Event.Result.DENY) + setCurrentEssence(newEss); + + return newEss - currEss; + } + + /** + * @deprecated - Please use {@link #add(int, int)} + */ + @Deprecated + public int addLifeEssence(int toAdd, int maximum) + { + return add(toAdd, maximum); + } + + public int syphon(int syphon) + { + if (getCurrentEssence() >= syphon) + { + setCurrentEssence(getCurrentEssence() - syphon); + return syphon; + } + + return 0; + } + + public boolean syphonAndDamage(EntityPlayer user, int toSyphon) + { + if (user != null) + { + if (user.worldObj.isRemote) + return false; + + if (!Strings.isNullOrEmpty(playerId.toString())) + { + SoulNetworkEvent.ItemDrainNetworkEvent event = new SoulNetworkEvent.ItemDrainNetworkEvent(user, playerId.toString(), null, toSyphon); + + if (MinecraftForge.EVENT_BUS.post(event)) + return false; + + int drainAmount = syphon(event.syphon); + + if (drainAmount <= 0 || event.shouldDamage) + hurtPlayer(user, event.syphon); + + return event.getResult() != Event.Result.DENY; + } + + int amount = syphon(toSyphon); + hurtPlayer(user, toSyphon - amount); + + return true; + } + + return false; + } + + public void causeNausea() + { + if (getPlayer() != null) + getPlayer().addPotionEffect(new PotionEffect(MobEffects.NAUSEA, 99)); + } + + /** + * @deprecated - Please use {@link #causeNausea()} + */ + @Deprecated + public void causeNauseaToPlayer() + { + causeNausea(); + } + + public void hurtPlayer(EntityPlayer user, float syphon) + { + if (user != null) + { + if (syphon < 100 && syphon > 0) + { + if (!user.capabilities.isCreativeMode) + { + user.hurtResistantTime = 0; + user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 1.0F); + } + + } else if (syphon >= 100) + { + if (!user.capabilities.isCreativeMode) + { + for (int i = 0; i < ((syphon + 99) / 100); i++) + { + user.hurtResistantTime = 0; + user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 1.0F); + } + } + } + } + } + + private void markDirty() + { + if (getParent() != null) + getParent().markDirty(); + else + BloodMagicAPI.getLogger().error("A SoulNetwork was created, but a parent was not set to allow saving."); + } + + @Nullable + public EntityPlayer getPlayer() + { + if (cachedPlayer == null) + cachedPlayer = PlayerHelper.getPlayerFromUUID(playerId); + + return cachedPlayer; + } + + public SoulNetwork setCurrentEssence(int currentEssence) + { + this.currentEssence = currentEssence; + markDirty(); + return this; + } + + public SoulNetwork setOrbTier(int orbTier) + { + this.orbTier = orbTier; + markDirty(); + return this; + } + + public SoulNetwork setParent(BMWorldSavedData parent) + { + this.parent = parent; + markDirty(); + return this; + } + + // INBTSerializable + + @Override + public NBTTagCompound serializeNBT() + { + NBTTagCompound tagCompound = new NBTTagCompound(); + tagCompound.setString("playerId", getPlayerId().toString()); + tagCompound.setInteger("currentEssence", getCurrentEssence()); + tagCompound.setInteger("orbTier", getOrbTier()); + return tagCompound; + } + + @Override + public void deserializeNBT(NBTTagCompound nbt) + { + this.playerId = UUID.fromString(nbt.getString("playerId")); + this.currentEssence = nbt.getInteger("currentEssence"); + this.orbTier = nbt.getInteger("orbTier"); + } + + public static SoulNetwork fromNBT(NBTTagCompound tagCompound) + { + SoulNetwork soulNetwork = new SoulNetwork(); + soulNetwork.deserializeNBT(tagCompound); + return soulNetwork; + } + + public static SoulNetwork newEmpty(UUID uuid) + { + SoulNetwork network = new SoulNetwork(); + network.playerId = uuid; + return network; + } +} 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 53d08d8a..8a8540b5 100644 --- a/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java +++ b/src/main/java/WayofTime/bloodmagic/api/util/helper/NetworkHelper.java @@ -1,19 +1,17 @@ package WayofTime.bloodmagic.api.util.helper; -import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.event.AddToNetworkEvent; import WayofTime.bloodmagic.api.event.SoulNetworkEvent; -import WayofTime.bloodmagic.api.network.SoulNetwork; import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.api.registry.OrbRegistry; +import WayofTime.bloodmagic.api.saving.BMWorldSavedData; +import WayofTime.bloodmagic.api.saving.SoulNetwork; 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.DimensionManager; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.eventhandler.Event; import java.util.UUID; @@ -33,20 +31,18 @@ public class NetworkHelper public static SoulNetwork getSoulNetwork(String uuid) { World world = DimensionManager.getWorld(0); - if (world == null || world.getMapStorage() == null) //Hack-ish way to fix the lava crystal. + if (world == null || world.getMapStorage() == null) //Hack-ish way to fix the lava crystal. + return new BMWorldSavedData().getNetwork(UUID.fromString(uuid)); + + BMWorldSavedData saveData = (BMWorldSavedData) world.getMapStorage().getOrLoadData(BMWorldSavedData.class, BMWorldSavedData.ID); + + if (saveData == null) { - return new SoulNetwork(uuid); + saveData = new BMWorldSavedData(); + world.getMapStorage().setData(BMWorldSavedData.ID, saveData); } - SoulNetwork network = (SoulNetwork) world.getMapStorage().getOrLoadData(SoulNetwork.class, uuid); - - if (network == null) - { - network = new SoulNetwork(uuid); - world.getMapStorage().setData(uuid, network); - } - - return network; + return saveData.getNetwork(UUID.fromString(uuid)); } /** @@ -188,208 +184,5 @@ public class NetworkHelper public static void setMaxOrb(SoulNetwork soulNetwork, int maxOrb) { soulNetwork.setOrbTier(Math.max(maxOrb, soulNetwork.getOrbTier())); - soulNetwork.markDirty(); - } - - // TODO - Remove everything below. It is deprecated and should not be used. - - /** - * Master method used to syphon from the player's network, and will damage - * them accordingly if they do not have enough LP. Does not drain on the - * client side. - * - * @param stack - * Owned itemStack - * @param player - * Player using the item - * - * @return True if the action should be executed and false if it should not. - * Always returns false if client-sided. - */ - @Deprecated - public static boolean syphonAndDamageFromNetwork(ItemStack stack, EntityPlayer player, int syphon) - { - if (player.worldObj.isRemote) - return false; - - stack = NBTHelper.checkNBT(stack); - String ownerName = stack.getTagCompound().getString(Constants.NBT.OWNER_UUID); - - if (!Strings.isNullOrEmpty(ownerName)) - { - SoulNetworkEvent.ItemDrainNetworkEvent event = new SoulNetworkEvent.ItemDrainNetworkEvent(player, ownerName, stack, syphon); - - if (MinecraftForge.EVENT_BUS.post(event)) - return false; - - int drainAmount = syphonFromNetwork(event.ownerUUID, event.syphon); - - if (drainAmount == 0 || event.shouldDamage) - hurtPlayer(player, event.syphon); - - // The event has been told to prevent the action but allow all - // repercussions of using the item. - return event.getResult() != Event.Result.DENY; - } - - int amount = NetworkHelper.syphonFromNetwork(stack, syphon); - - hurtPlayer(player, syphon - amount); - - return true; - } - - @Deprecated - public static boolean syphonFromNetworkWhileInContainer(ItemStack stack, int syphon) - { - stack = NBTHelper.checkNBT(stack); - String ownerName = stack.getTagCompound().getString(Constants.NBT.OWNER_UUID); - - if (Strings.isNullOrEmpty(ownerName)) - return false; - - SoulNetworkEvent.ItemDrainInContainerEvent event = new SoulNetworkEvent.ItemDrainInContainerEvent(stack, ownerName, syphon); - - if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) - return false; - - return syphonFromNetwork(event.ownerUUID, event.syphon) >= syphon; - } - - @Deprecated - public static int syphonFromNetwork(ItemStack stack, int syphon) - { - stack = NBTHelper.checkNBT(stack); - String ownerName = stack.getTagCompound().getString(Constants.NBT.OWNER_UUID); - if (!Strings.isNullOrEmpty(ownerName)) - return syphonFromNetwork(ownerName, syphon); - - return 0; - } - - @Deprecated - public static int syphonFromNetwork(String ownerName, int syphon) - { - if (FMLCommonHandler.instance().getMinecraftServerInstance() == null) - return 0; - - World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[0]; - SoulNetwork network = (SoulNetwork) world.loadItemData(SoulNetwork.class, ownerName); - - if (network == null) - { - network = new SoulNetwork(ownerName); - world.setItemData(ownerName, network); - } - - if (network.getCurrentEssence() >= syphon) - { - network.setCurrentEssence(network.getCurrentEssence() - syphon); - network.markDirty(); - return syphon; - } - - return 0; - } - - // Add - - /** - * A method to add to an owner's network up to a maximum value. - * - * @return amount added to the network - */ - @Deprecated - public static int addCurrentEssenceToMaximum(String ownerName, int addedEssence, int maximum) - { - AddToNetworkEvent event = new AddToNetworkEvent(ownerName, addedEssence, maximum); - - if (MinecraftForge.EVENT_BUS.post(event)) - return 0; - - if (FMLCommonHandler.instance().getMinecraftServerInstance() == null) - return 0; - - World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[0]; - SoulNetwork data = (SoulNetwork) world.loadItemData(SoulNetwork.class, event.ownerNetwork); - - if (data == null) - { - data = new SoulNetwork(event.ownerNetwork); - world.setItemData(event.ownerNetwork, data); - } - - int currEss = data.getCurrentEssence(); - - if (currEss >= event.maximum) - return 0; - - int newEss = Math.min(event.maximum, currEss + event.addedAmount); - if (event.getResult() != Event.Result.DENY) - data.setCurrentEssence(newEss); - - return newEss - currEss; - } - - // Get - - @Deprecated - public static int getCurrentEssence(String ownerName) - { - if (FMLCommonHandler.instance().getMinecraftServerInstance() == null) - return 0; - - World world = FMLCommonHandler.instance().getMinecraftServerInstance().worldServers[0]; - SoulNetwork network = (SoulNetwork) world.loadItemData(SoulNetwork.class, ownerName); - - if (network == null) - { - network = new SoulNetwork(ownerName); - world.setItemData(ownerName, network); - } - - return network.getCurrentEssence(); - } - - // Do damage - - @Deprecated - public static void hurtPlayer(EntityPlayer user, int energySyphoned) - { - if (energySyphoned < 100 && energySyphoned > 0) - { - if (!user.capabilities.isCreativeMode) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - user.onDeath(BloodMagicAPI.getDamageSource()); - } - } else if (energySyphoned >= 100) - { - if (!user.capabilities.isCreativeMode) - { - for (int i = 0; i < ((energySyphoned + 99) / 100); i++) - { - user.setHealth((user.getHealth() - 1)); - - if (user.getHealth() <= 0.0005f) - { - user.onDeath(BloodMagicAPI.getDamageSource()); - break; - } - } - } - } - } - - @Deprecated - public static void hurtPlayer(EntityPlayer user, float damage) - { - if (!user.capabilities.isCreativeMode) - { - user.attackEntityFrom(BloodMagicAPI.getDamageSource(), 0F); - user.setHealth((user.getHealth() - damage)); - } } } diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java index 682555d9..f91086a4 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java @@ -30,7 +30,7 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.altar.IAltarManipulator; import WayofTime.bloodmagic.api.iface.IAltarReader; import WayofTime.bloodmagic.api.iface.IBindable; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IVariantProvider; diff --git a/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandNetwork.java b/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandNetwork.java index 4bd966cb..a1a1a340 100644 --- a/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandNetwork.java +++ b/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandNetwork.java @@ -1,6 +1,6 @@ package WayofTime.bloodmagic.command.sub; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.command.SubCommandBase; import WayofTime.bloodmagic.util.Utils; @@ -112,7 +112,7 @@ public class SubCommandNetwork extends SubCommandBase { int amount = Integer.parseInt(args[2]); int maxOrb = NetworkHelper.getMaximumForTier(network.getOrbTier()); - displaySuccessString(sender, "commands.network.add.success", network.addLifeEssence(amount, maxOrb), player.getDisplayName().getFormattedText()); + displaySuccessString(sender, "commands.network.add.success", network.add(amount, maxOrb), player.getDisplayName().getFormattedText()); } else { displayErrorString(sender, "commands.error.arg.invalid"); diff --git a/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandOrb.java b/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandOrb.java index 9f08f92f..e66fbdb7 100644 --- a/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandOrb.java +++ b/src/main/java/WayofTime/bloodmagic/command/sub/SubCommandOrb.java @@ -1,6 +1,6 @@ package WayofTime.bloodmagic.command.sub; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; import WayofTime.bloodmagic.command.SubCommandBase; diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java b/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java index 75b87bd9..1c2aa67a 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBloodOrb.java @@ -74,7 +74,7 @@ public class ItemBloodOrb extends ItemBindableBase implements IBloodOrb, IBindab if (getOwnerUUID(stack).equals(PlayerHelper.getUsernameFromPlayer(player))) NetworkHelper.setMaxOrb(NetworkHelper.getSoulNetwork(getOwnerUUID(stack)), getOrbLevel(stack.getItemDamage())); - NetworkHelper.getSoulNetwork(getOwnerUUID(stack)).addLifeEssence(200, getMaxEssence(stack.getItemDamage())); + NetworkHelper.getSoulNetwork(getOwnerUUID(stack)).add(200, getMaxEssence(stack.getItemDamage())); NetworkHelper.getSoulNetwork(player).hurtPlayer(player, 200); return super.onItemRightClick(stack, world, player, hand); } diff --git a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java index d61b9b4d..67278d64 100644 --- a/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java +++ b/src/main/java/WayofTime/bloodmagic/item/armour/ItemLivingArmour.java @@ -29,7 +29,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NBTHelper; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.client.IMeshProvider; diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualAltarBuilder.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualAltarBuilder.java index 4a30ca84..d5b5a3e2 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualAltarBuilder.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualAltarBuilder.java @@ -5,7 +5,7 @@ import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.altar.AltarComponent; import WayofTime.bloodmagic.api.altar.EnumAltarComponent; import WayofTime.bloodmagic.api.altar.EnumAltarTier; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.Ritual; @@ -55,7 +55,7 @@ public class RitualAltarBuilder extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualAnimalGrowth.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualAnimalGrowth.java index 32c00e11..c84a6fbf 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualAnimalGrowth.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualAnimalGrowth.java @@ -1,8 +1,8 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.entity.EntityAgeable; import net.minecraft.util.math.AxisAlignedBB; @@ -32,7 +32,7 @@ public class RitualAnimalGrowth extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualCobblestone.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualCobblestone.java index 5c180a0b..3f8a2d0e 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualCobblestone.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualCobblestone.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.item.ItemComponent; @@ -36,7 +36,7 @@ public class RitualCobblestone extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java index 09bcffba..a3a4619a 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualContainment.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; @@ -32,7 +32,7 @@ public class RitualContainment extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualCrushing.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualCrushing.java index 7b02f0cf..ebbd8562 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualCrushing.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualCrushing.java @@ -5,14 +5,13 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.item.EntityItem; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -46,7 +45,7 @@ public class RitualCrushing extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualCrystalHarvest.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualCrystalHarvest.java index fbad684c..9a7435b1 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualCrystalHarvest.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualCrystalHarvest.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -38,7 +38,7 @@ public class RitualCrystalHarvest extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java index cd7139dd..197afb0d 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualExpulsion.java @@ -18,7 +18,7 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.EnderTeleportEvent; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.iface.IBindable; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -49,7 +49,7 @@ public class RitualExpulsion extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualFeatheredKnife.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualFeatheredKnife.java index 2fee962e..5097ae44 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualFeatheredKnife.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualFeatheredKnife.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.tile.TileAltar; @@ -43,7 +43,7 @@ public class RitualFeatheredKnife extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualFelling.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualFelling.java index 3fde6f4b..e235c7ba 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualFelling.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualFelling.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.util.Utils; @@ -53,7 +53,7 @@ public class RitualFelling extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualForsakenSoul.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualForsakenSoul.java index 235aac78..b09ff7ed 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualForsakenSoul.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualForsakenSoul.java @@ -13,7 +13,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -89,7 +89,7 @@ public class RitualForsakenSoul extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualFullStomach.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualFullStomach.java index 94c77116..19c80230 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualFullStomach.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualFullStomach.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.entity.player.EntityPlayer; @@ -91,7 +91,7 @@ public class RitualFullStomach extends Ritual if (totalEffects >= maxEffects) { - network.causeNauseaToPlayer(); + network.causeNausea(); break; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java index a2ea3c52..2fe7750f 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualGreenGrove.java @@ -2,7 +2,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.BloodMagicAPI; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.block.Block; @@ -35,7 +35,7 @@ public class RitualGreenGrove extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java index fde93446..1737e189 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualHarvest.java @@ -3,7 +3,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.iface.IHarvestHandler; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.registry.HarvestRegistry; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; @@ -43,7 +43,7 @@ public class RitualHarvest extends Ritual if (network.getCurrentEssence() < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java index 867450fe..e9b76b25 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualInterdiction.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.api.util.helper.PlayerHelper; @@ -32,7 +32,7 @@ public class RitualInterdiction extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java index da7fa08a..f5e2e7b4 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualJumping.java @@ -1,13 +1,12 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.util.Utils; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; @@ -34,7 +33,7 @@ public class RitualJumping extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java index dc85815a..156c436a 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualLava.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.init.Blocks; @@ -30,7 +30,7 @@ public class RitualLava extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualMagnetic.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualMagnetic.java index ebc2c6b1..514bb818 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualMagnetic.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualMagnetic.java @@ -2,8 +2,8 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.BlockStack; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.util.Utils; import net.minecraft.block.Block; @@ -79,7 +79,7 @@ public class RitualMagnetic extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualPlacer.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualPlacer.java index 9dc7aa95..f373eb83 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualPlacer.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualPlacer.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.block.Block; @@ -44,7 +44,7 @@ public class RitualPlacer extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualPump.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualPump.java index d90172a9..5111d5f9 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualPump.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualPump.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.block.BlockLiquid; @@ -45,7 +45,7 @@ public class RitualPump extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java index 254920c9..349df5cd 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualRegeneration.java @@ -11,7 +11,7 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -41,7 +41,7 @@ public class RitualRegeneration extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualSpeed.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualSpeed.java index 27b13781..00605178 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualSpeed.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualSpeed.java @@ -8,7 +8,7 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -37,7 +37,7 @@ public class RitualSpeed extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualSuppression.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualSuppression.java index 749b1eb5..99037752 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualSuppression.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualSuppression.java @@ -7,7 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.AreaDescriptor; import WayofTime.bloodmagic.api.ritual.EnumRuneType; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; @@ -36,7 +36,7 @@ public class RitualSuppression extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java index 1bcbef03..b359e788 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualWater.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import net.minecraft.init.Blocks; @@ -30,7 +30,7 @@ public class RitualWater extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java index 0e06d52c..4c73d130 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualWellOfSuffering.java @@ -2,7 +2,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.ConfigHandler; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.tile.TileAltar; @@ -45,7 +45,7 @@ public class RitualWellOfSuffering extends Ritual if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/RitualZephyr.java b/src/main/java/WayofTime/bloodmagic/ritual/RitualZephyr.java index 878b3846..ee03833f 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/RitualZephyr.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/RitualZephyr.java @@ -1,7 +1,7 @@ package WayofTime.bloodmagic.ritual; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.ritual.*; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import WayofTime.bloodmagic.util.Utils; @@ -45,7 +45,7 @@ public class RitualZephyr extends Ritual { if (currentEssence < getRefreshCost()) { - network.causeNauseaToPlayer(); + network.causeNausea(); return; } diff --git a/src/main/java/WayofTime/bloodmagic/ritual/portal/Teleports.java b/src/main/java/WayofTime/bloodmagic/ritual/portal/Teleports.java index a70fab01..e3c035d1 100644 --- a/src/main/java/WayofTime/bloodmagic/ritual/portal/Teleports.java +++ b/src/main/java/WayofTime/bloodmagic/ritual/portal/Teleports.java @@ -1,9 +1,8 @@ package WayofTime.bloodmagic.ritual.portal; import WayofTime.bloodmagic.api.event.TeleposeEvent; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.teleport.Teleport; -import WayofTime.bloodmagic.api.teleport.TeleporterBloodMagic; import WayofTime.bloodmagic.api.util.helper.NetworkHelper; import lombok.Getter; import net.minecraft.entity.Entity; diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java index bb00f187..d63a2463 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileAlchemyTable.java @@ -16,7 +16,7 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.wrapper.SidedInvWrapper; import WayofTime.bloodmagic.api.Constants; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.api.recipe.AlchemyTableRecipe; import WayofTime.bloodmagic.api.registry.AlchemyTableRecipeRegistry; diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileMasterRitualStone.java b/src/main/java/WayofTime/bloodmagic/tile/TileMasterRitualStone.java index 930b5c1c..347bfe71 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileMasterRitualStone.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileMasterRitualStone.java @@ -22,7 +22,7 @@ import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.eventhandler.Event; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.api.event.RitualEvent; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.registry.RitualRegistry; import WayofTime.bloodmagic.api.ritual.IMasterRitualStone; import WayofTime.bloodmagic.api.ritual.Ritual; diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java index 9a191059..4195e9cc 100644 --- a/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/GenericHandler.java @@ -31,7 +31,7 @@ import WayofTime.bloodmagic.api.event.SacrificeKnifeUsedEvent; import WayofTime.bloodmagic.api.event.TeleposeEvent; import WayofTime.bloodmagic.api.iface.IBindable; import WayofTime.bloodmagic.api.livingArmour.LivingArmourUpgrade; -import WayofTime.bloodmagic.api.network.SoulNetwork; +import WayofTime.bloodmagic.api.saving.SoulNetwork; import WayofTime.bloodmagic.api.orb.IBloodOrb; import WayofTime.bloodmagic.api.util.helper.*; import WayofTime.bloodmagic.block.BlockAltar; diff --git a/src/main/java/WayofTime/bloodmagic/util/handler/event/MigrateNetworkDataHandler.java b/src/main/java/WayofTime/bloodmagic/util/handler/event/MigrateNetworkDataHandler.java new file mode 100644 index 00000000..e7076590 --- /dev/null +++ b/src/main/java/WayofTime/bloodmagic/util/handler/event/MigrateNetworkDataHandler.java @@ -0,0 +1,63 @@ +package WayofTime.bloodmagic.util.handler.event; + +import WayofTime.bloodmagic.BloodMagic; +import WayofTime.bloodmagic.annot.Handler; +import WayofTime.bloodmagic.api.saving.BMWorldSavedData; +import WayofTime.bloodmagic.api.saving.SoulNetwork; +import WayofTime.bloodmagic.api.util.helper.PlayerHelper; +import com.google.common.base.Stopwatch; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraftforge.event.entity.EntityJoinWorldEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import org.apache.commons.io.FileUtils; + +import java.io.File; +import java.io.IOException; +import java.util.UUID; + +// Migrates from the old data storage system to the cleaner new one +@Handler +public class MigrateNetworkDataHandler { + + @SubscribeEvent + public void playerJoin(EntityJoinWorldEvent event) { + if (!event.getWorld().isRemote && event.getEntity() instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.getEntity(); + UUID playerId = PlayerHelper.getUUIDFromPlayer(player); + Stopwatch stopwatch = Stopwatch.createStarted(); + + if (event.getWorld().getMapStorage() == null) + return; + + BMWorldSavedData saveData = (BMWorldSavedData) event.getWorld().getMapStorage().getOrLoadData(BMWorldSavedData.class, BMWorldSavedData.ID); + WayofTime.bloodmagic.api.network.SoulNetwork oldData = (WayofTime.bloodmagic.api.network.SoulNetwork) event.getWorld().getMapStorage().getOrLoadData(WayofTime.bloodmagic.api.network.SoulNetwork.class, playerId.toString()); + + if (saveData == null) + { + saveData = new BMWorldSavedData(); + event.getWorld().getMapStorage().setData(BMWorldSavedData.ID, saveData); + } + + if (oldData == null) + return; + + SoulNetwork network = saveData.getNetwork(playerId); + if (oldData.getOrbTier() > network.getOrbTier()) + network.setOrbTier(oldData.getOrbTier()); + if (oldData.getCurrentEssence() > network.getCurrentEssence()) + network.setCurrentEssence(oldData.getCurrentEssence()); + + File oldDataFile = event.getWorld().getSaveHandler().getMapFileFromName(playerId.toString()); + try + { + FileUtils.forceDelete(oldDataFile); + } catch (IOException e) + { + BloodMagic.instance.getLogger().error("Error deleting data file {}.", oldDataFile); + BloodMagic.instance.getLogger().error(e.getLocalizedMessage()); + } + stopwatch.stop(); + BloodMagic.instance.getLogger().info("Migration completed for {} ({}) in {}.", player.getDisplayNameString(), playerId, stopwatch); + } + } +}