diff --git a/src/main/java/anvil/infinity/Infinity.java b/src/main/java/anvil/infinity/Infinity.java index de0c6e7..04e8f6d 100644 --- a/src/main/java/anvil/infinity/Infinity.java +++ b/src/main/java/anvil/infinity/Infinity.java @@ -2,12 +2,11 @@ package anvil.infinity; import anvil.infinity.compat.CompatHandler; import anvil.infinity.config.ConfigHandler; -import anvil.infinity.networking.KillAbilityPackageHandler; -import anvil.infinity.networking.KillAbilityReturnPackageHandler; +import anvil.infinity.networking.LookAbilityPackageHandler; +import anvil.infinity.networking.LookAbilityReturnPackageHandler; import anvil.infinity.networking.PackageKillAbility; import anvil.infinity.networking.PackageReq; import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.fml.common.event.FMLInitializationEvent; @@ -16,7 +15,6 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.network.NetworkRegistry; -import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper; import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.relauncher.Side; @@ -52,8 +50,8 @@ public class Infinity { ConfigHandler.refreshConfig(event.getSuggestedConfigurationFile()); CompatHandler.check(); int netID = 0; - NETWORK_WRAPPER.registerMessage(KillAbilityReturnPackageHandler.class, PackageKillAbility.class, netID++, Side.SERVER); - NETWORK_WRAPPER.registerMessage(KillAbilityPackageHandler.class, PackageReq.class, netID++, Side.CLIENT); + NETWORK_WRAPPER.registerMessage(LookAbilityReturnPackageHandler.class, PackageKillAbility.class, netID++, Side.SERVER); + NETWORK_WRAPPER.registerMessage(LookAbilityPackageHandler.class, PackageReq.class, netID++, Side.CLIENT); } diff --git a/src/main/java/anvil/infinity/helpers/LookAbilityHelper.java b/src/main/java/anvil/infinity/helpers/LookAbilityHelper.java new file mode 100644 index 0000000..d5bc9de --- /dev/null +++ b/src/main/java/anvil/infinity/helpers/LookAbilityHelper.java @@ -0,0 +1,4 @@ +package anvil.infinity.helpers; + +public class LokkAbilityHelper { +} diff --git a/src/main/java/anvil/infinity/networking/KillAbilityPackageHandler.java b/src/main/java/anvil/infinity/networking/LookAbilityPackageHandler.java similarity index 88% rename from src/main/java/anvil/infinity/networking/KillAbilityPackageHandler.java rename to src/main/java/anvil/infinity/networking/LookAbilityPackageHandler.java index 3d02f4c..59efe41 100644 --- a/src/main/java/anvil/infinity/networking/KillAbilityPackageHandler.java +++ b/src/main/java/anvil/infinity/networking/LookAbilityPackageHandler.java @@ -7,7 +7,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; -public class KillAbilityPackageHandler implements IMessageHandler { +public class LookAbilityPackageHandler implements IMessageHandler { @Override public IMessage onMessage(PackageReq message, MessageContext ctx) { @@ -15,6 +15,7 @@ public class KillAbilityPackageHandler implements IMessageHandler { +public class LookAbilityReturnPackageHandler implements IMessageHandler { @Override public IMessage onMessage(PackageKillAbility message, MessageContext ctx) { - Entity e = message.entity; - if (e instanceof EntityLivingBase) { - ((EntityLivingBase) e).addPotionEffect(new PotionEffect(Effects.snapEffect, 1)); - } + LookAbilityHelper.activateEntityLookAbility(message.entity, message.abilityID); return null; } } diff --git a/src/main/java/anvil/infinity/networking/PackageKillAbility.java b/src/main/java/anvil/infinity/networking/PackageKillAbility.java index 029b1cf..53834d9 100644 --- a/src/main/java/anvil/infinity/networking/PackageKillAbility.java +++ b/src/main/java/anvil/infinity/networking/PackageKillAbility.java @@ -10,6 +10,7 @@ import net.minecraftforge.fml.common.network.simpleimpl.IMessage; public class PackageKillAbility implements IMessage { Entity entity; + public int abilityID; public PackageKillAbility(Entity entity) { super(); @@ -28,6 +29,7 @@ public class PackageKillAbility implements IMessage { String[] inputs = input.split(":"); int dim = Integer.parseInt(inputs[0]); int id = Integer.parseInt(inputs[1]); + abilityID = Integer.parseInt(inputs[2]); World world = FMLCommonHandler.instance().getMinecraftServerInstance().getWorld(dim); entity = world.getEntityByID(id); @@ -36,7 +38,7 @@ public class PackageKillAbility implements IMessage { @Override public void toBytes(ByteBuf buf) { - ByteBufUtils.writeUTF8String(buf, entity.dimension + ":" + entity.getEntityId()); + ByteBufUtils.writeUTF8String(buf, entity.dimension + ":" + entity.getEntityId() + ":" + abilityID); } } diff --git a/src/main/java/anvil/infinity/networking/PackageReq.java b/src/main/java/anvil/infinity/networking/PackageReq.java index 4718f3d..a975797 100644 --- a/src/main/java/anvil/infinity/networking/PackageReq.java +++ b/src/main/java/anvil/infinity/networking/PackageReq.java @@ -1,17 +1,30 @@ package anvil.infinity.networking; +import anvil.infinity.helpers.LookAbilityHelper; import io.netty.buffer.ByteBuf; +import net.minecraftforge.fml.common.network.ByteBufUtils; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; public class PackageReq implements IMessage { + int id; + + public PackageReq() { + id = LookAbilityHelper.KILL; + } + + public PackageReq(int abilityID) { + id = abilityID; + } + @Override public void fromBytes(ByteBuf buf) { + id = Integer.parseInt(ByteBufUtils.readUTF8String(buf)); } @Override public void toBytes(ByteBuf buf) { - + ByteBufUtils.writeUTF8String(buf, "" + id); } } diff --git a/src/main/java/anvil/infinity/snap/SnapHelper.java b/src/main/java/anvil/infinity/snap/SnapHelper.java index ac8a368..e650138 100644 --- a/src/main/java/anvil/infinity/snap/SnapHelper.java +++ b/src/main/java/anvil/infinity/snap/SnapHelper.java @@ -14,6 +14,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.PlayerList; +import net.minecraft.util.DamageSource; import net.minecraft.util.EnumHand; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextComponentTranslation; @@ -67,7 +68,7 @@ public class SnapHelper { } else { entity.setHeldItem(EnumHand.OFF_HAND, new ItemStack(ModuleInfinity.INFINITY_GAUNTLET)); } - entity.setHealth(1); + entity.attackEntityFrom(DamageSource.MAGIC, (entity.getHealth() / 10) - 0.01f); } else if (data.selectedSnapResult == SnapResult.CREATIVE) {