
Sorry for this being so clustered for now.  In the future you will just be able to use this but for now you'll have to
copy it and modify to fit your mod.

You need to modify ln 62 and get the player from context.  See ln 27-38 for more info on how to do this.  The Information file will also help.

This is because I really, suck with Java.
Sorry for the setback.  IOU <3
        ~Nano

-----------------------------------------------------------------------------------------------------------------------------------

import io.netty.buffer.ByteBuf;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.fml.common.network.ByteBufUtils;
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 MessageModifiedReachAttack implements IMessage 
{
    private int entityID;

    public MessageModifiedReachAttack()
    {
    	/* Player should be obtained from message context.
    	 * 
    	 * Example:
    	 * public EntityPlayerMP getPlayerEntityFromContext(MessageContext ctx) {
		 *   EntityPlayerMP player = ctx.getServerHandler().player;
		 *   return player;
		 * }
		 * 
		 * Note: I recommend putting this in your CommonProxy class and calling
		 * it from there.
		 * 
    	 */
    }

    public MessageModifiedReachAttack(int parEntityId) 
    { entityID = parEntityId; }

    @Override
    public void fromBytes(ByteBuf buf) 
    { entityID = ByteBufUtils.readVarInt(buf, 4); }

    @Override
    public void toBytes(ByteBuf buf) 
    { ByteBufUtils.writeVarInt(buf, entityID, 4); }

    public static class Handler implements IMessageHandler<MessageModifiedReachAttack, IMessage> 
    {
        @Override
        public IMessage onMessage(final MessageModifiedReachAttack message, MessageContext ctx) 
        {
            final EntityPlayerMP thePlayer = (EntityPlayerMP) Combatica.proxy.getPlayerEntityFromContext(ctx);
            thePlayer.getServer().addScheduledTask(new Runnable() {
            	@Override
                public void run() 
                {
                	Entity theEntity = thePlayer.world.getEntityByID(message.entityID);
                 	System.out.println("Entity = "+theEntity);
                 	
                	// Anti-Hack
                 	if (thePlayer.getHeldItemMainhand() == null) { return; }
                	if (thePlayer.getHeldItemMainhand().getItem() instanceof IModifiedReach) {
                		IModifiedReach theExtendedReachWeapon = (IModifiedReach)thePlayer.getHeldItemMainhand().getItem();
                		double distanceSq = thePlayer.getDistanceSq(theEntity);
                		double reachSq =theExtendedReachWeapon.getReach() * theExtendedReachWeapon.getReach();
                		if (reachSq >= distanceSq) {
                			thePlayer.attackTargetEntityWithCurrentItem(theEntity);
                		}
                	}
                    return;
                }
            });
            return null;
        }
    }
}