Не доходит

Версия Minecraft
1.7.10
Сделал систему пакетов, по тутору от WildHeart(вот).
Тупо копи-паст.
Только подправил в файле "LocationDoublePacket"
Строку
Код:
   return new NetworkRegistry.TargetPoint(world.provider.getDimension(), x, y, z, updateDistance);
На вот это
Код:
 return new NetworkRegistry.TargetPoint(world.provider.dimensionId, x, y, z, updateDistance);
Далее чтоб не придумывать свое и побыстрей попробовать, копипастнул отправку частиц.
PacketParticleMP без изменений.

PacketFire изменен минимально

Код:
public class PacketFire extends LocationDoublePacket<PacketFire>
{
   public PacketFire(){}
   /**
    * Данный конструктор отвечает за получение и отправку наследнику 
    * позиции игрока на сервере. Что во много раз нам упростит
    * отправку пакетов методом sendToAllAround.
    * @param x - Позиция по X
    * @param y - Позиция по Y
    * @param z - Позиция по X
    */
   public PacketFire(final double x, final double y, final double z)
   {
       super(x, y, z);
   }

   @Override
   public void handleClientSide(PacketFire message, EntityPlayer player)
   {
       double x, y, z, xSpeed, ySpeed, zSpeed;
       final double r = 0.4;//Радиус от игрока.

       for (float l = 0; l < 2 * Math.PI; l += 2 * Math.PI / 50)
       {
           /**
            * Здесь я бы хотел, чтобы Вы обратили внимание на то, что позиция игрока
            * берётся не от EntityPlayer, а от нашего пакета, message.y/x/z
            * Если мы вместо message.x/y/z укажем player.PosX/Y/Z то частицы будут
            * отображаться у другого игрока на нём, а не на вас. Т.е. будет создаваться
            * видимость того, что это он спавнит частицы, а не вы.
            */
           x = message.x + r * Math.cos(l);
           y = message.y;
           z = message.z + r * Math.sin(l);
           xSpeed = (x - message.x) * 0.2D;
           ySpeed = 0.0D;
           zSpeed = (z - message.z) * 0.2D;
           /**
            * Данный метод(spawnParticles) может отличаться в зависимости от версии mc!
            * @param EnumParticleTypes.FLAME - Это частицы, которые мы спавним.
            * @param x - Позиция игрока по X.
            * @param y - Позиция игрока по Y.
            * @param z - Позиция игрока по Z.
            * @param xSpeed - Скорость движения частиц по X.
            * @param ySpeed - Скорость движения частиц по Y.
            * @param zSpeed - Скорость движения частиц по Z.
            */
           player.worldObj.spawnParticle("flame", x, y, z, xSpeed, ySpeed, zSpeed);
       }
   }

   public void handleServerSide(PacketFire message, EntityPlayer player) {}

}

Далее отправляю пакеты

Код:
NetworkHandler.sendToServer(new PacketParticlesMP());

Если отправляю так

Код:
    @SubscribeEvent
    public void onLivingUpdateEvent(LivingUpdateEvent event)
    {
     NetworkHandler.sendToServer(new PacketParticlesMP());
    }
Не происходит просто ничего.
Если отправлять по ПКМ из предмета, то вылетает сервер.

В логе ссылка на строку отправки пакета.
Код:
[21:23:31] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
 at mod.items.wizardstaff1.onItemRightClick(wizardStaff1.java:46) ~[wizardStaff1.class:?]
 at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164) ~[ItemStack.class:?]
 at net.minecraft.server.management.ItemInWorldManager.tryUseItem(ItemInWorldManager.java:345) ~[ItemInWorldManager.class:?]
 at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:576) ~[NetHandlerPlayServer.class:?]
 at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
 at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
 at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
 at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
 at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
 at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:349) ~[DedicatedServer.class:?]
 at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
 at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
 at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityClientPlayerMP
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
 at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_101]
 at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_101]
 ... 13 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/entity/EntityClientPlayerMP for invalid side SERVER
 at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50) ~[forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar:?]
 at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
 at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
 at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_101]
 at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_101]
 ... 13 more
 
7,099
324
1,510
Попробуй воспользоваться моим тутором по пакетам CodeChicken. Т.к. nei присутствует почти в любой сборке, не нужно беспокоиться, что юзеру придется устанавливать либу.
Тема:
http://forum.mcmodding.ru/%D0%A2%D0%B5%D0%BC%D0%B0-%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D1%8B-%D0%9F%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%B0%D1%8F-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-CodeChickenLib
Если проблема в переписывании кода на java - могу дополнить этим урок
 
7,099
324
1,510
Agravaine написал(а):
Никому не нужны эти зависимости.
Тем более, скорее всего, мод делает для проекта.
Кнч, лучше же велосипед писал и копипастить, да?
 

Icosider

Kotliner
Администратор
3,603
99
664
hohserg написал(а):
Agravaine написал(а):
Никому не нужны эти зависимости.
Тем более, скорее всего, мод делает для проекта.
Кнч, лучше же велосипед писал и копипастить, да?
А почему бы и нет? Допустим ты не хочешь использовать большую библиотеку ради одного класса(который типа упрощает жизнь) и ты просто вынужден писать по новой, так же это достаточно большой опыт(если конечно же не копипастить) и в будущем может пригодится.
 
WildHeart написал(а):
Нетворк хандлер покажи

NeworkHandler
Код:
public class NetworkHandler
{  
   // NetworkName - название канала
   public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel("SimpleChanell");
   private static int dec;

   public static void init()
   {
       NETWORK.registerMessage(PacketParticlesMP.class, PacketParticlesMP.class, dec++, Side.SERVER);//Регистрация пакета для работы на серверной стороне.
       NETWORK.registerMessage(PacketFire.class, PacketFire.class, dec++, Side.CLIENT);//Регистрация пакета для работы на клиентской стороне.
   }
   
   //Метод который отправляет пакеты всем на клиенте/сервере(Зависит от ситуации)
   public static void sendToAll(final IMessage message) {
       NETWORK.sendToAll(message);
   }
   //Метод который отправляет пакет конкретному игроку.
   public static void sendTo(final IMessage message, final EntityPlayerMP player) {
       NETWORK.sendTo(message, player);
   }
   //Наш пользовательский метод, который использует LocationDoublePacket для упрощения отправки пакетов методом sendToAllAround.
   public static void sendToAllAround(final LocationDoublePacket message, final World world) {
       sendToAllAround(message, message.getTargetPoint(world));
   }
   //Метод который отправляет пакет всем игрокам от отправителя, в определённом радиусе.
   public static void sendToAllAround(final IMessage message, final NetworkRegistry.TargetPoint point) {
       NETWORK.sendToAllAround(message, point);
   }
   //Метод который отправляет пакет в определённое измерение.
   public static void sendToDimension(final IMessage message, final int dimensionId) {
       NETWORK.sendToDimension(message, dimensionId);
   }
   //Метод который отправляет пакет на сервер.
   public static void sendToServer(final IMessage message){
       NETWORK.sendToServer(message);
   }
}


Agravaine написал(а):
Оберни NetworkHandler.sendToServer(new PacketParticlesMP()); в if(world.isRemote).

Уже пытался так сделать, однако результата просто нет. Ничего не происходит.
 
WildHeart написал(а):
Попробуй сменить эвент, например на KeyInputEvent.

Сделал так
Код:
    @SubscribeEvent
    public void onKeyInputEvent(KeyInputEvent event)
    {
     if(Keyboard.isKeyDown(Keyboard.KEY_J))
     {
     if(Minecraft.getMinecraft().theWorld.isRemote)
     {
     NetworkHandler.sendToServer(new PacketParticlesMP());
     }
     }
    }
Результат прежний, на сервере не происходит ничего, а на клиенте выбивает в меню мультиплеера.
 

Icosider

Kotliner
Администратор
3,603
99
664
lordraider написал(а):
WildHeart написал(а):
Попробуй сменить эвент, например на KeyInputEvent.

Сделал так
Код:
    @SubscribeEvent
    public void onKeyInputEvent(KeyInputEvent event)
    {
     if(Keyboard.isKeyDown(Keyboard.KEY_J))
     {
     if(Minecraft.getMinecraft().theWorld.isRemote)
     {
     NetworkHandler.sendToServer(new PacketParticlesMP());
     }
     }
    }
Результат прежний, на сервере не происходит ничего, а на клиенте выбивает в меню мультиплеера.
if(Minecraft.getMinecraft().theWorld.isRemote) убери. И попробуй снова отправить пакет.
 
Если убрать проверку на world.isRemote
То в консоль какое-то время пишет это:
Код:
[16:36:18] [Netty Client IO #1/INFO] [FML]: Unexpected packet during modded negotiation - assuming vanilla or keepalives : net.minecraft.network.play.server.S00PacketKeepAlive
и показывает будто нет никого на сервере, хотя в чат писать могу.
 
476
9
39
Похоже проблему так и не решили.Если решили, хорошо было бы увидеть причину возникновения проблемы.
Стоп, а разве isRemote == true то это клиентский мир? Или там имелось ввиду с клиентской стороны?

P.S У меня на этапе инициализации ещё крашит сервер с invalid side Server и соотвественно жалобой на отсутствие
класса EntityClientPlayerMP

Юзать CodeChickenCore(lib) не хочу. Так как жажду разобраться в чём причина подобного поведения. И насколько я понял, явно не видно, чтобы что-то вызывало краш сервера.

Клиент не тестил.
 
2,505
81
397
talosdx написал(а):
а разве isRemote == true то это клиентский мир?
Да, это клиентская сторона (или клиентский мир, что одно и то же)


talosdx написал(а):
P.S У меня на этапе инициализации ещё крашит сервер с invalid side Server и соотвественно жалобой на отсутствие
класса EntityClientPlayerMP
Хотелось бы видеть код. И логи.
 
476
9
39
Всё тоже.

Код:
public static  final SimpleNetworkWrapper wrapper = NetworkRegistry.INSTANCE.newSimpleChannel("customSystem");

@EventHandler
public void preInit(FMLPreInitializationEvent event) {
new NetworkHandler(wrapper);
}

Код:
public class NetworkHandler {
    // NetworkName - название канала
    public static SimpleNetworkWrapper NETWORK;
    private static int dec;


    public NetworkHandler(SimpleNetworkWrapper wrapper){
        this.NETWORK = wrapper;
        NETWORK.registerMessage(PacketFire.class, PacketFire.class, dec++, Side.SERVER);//Регистрация пакета для работы на клиентской стороне.
        NETWORK.registerMessage(PacketParticlesMP.class, PacketParticlesMP.class, dec++, Side.CLIENT);//Регистрация пакета для работы на серверной стороне.
    }

    //Метод который отправляет пакеты всем на клиенте/сервере(Зависит от ситуации)
    public static void sendToAll(final IMessage message) {
        NETWORK.sendToAll(message);
    }
    //Метод который отправляет пакет конкретному игроку.
    public static void sendTo(final IMessage message, final EntityPlayerMP player) {
        NETWORK.sendTo(message, player);
    }
    //Наш пользовательский метод, который использует LocationDoublePacket для упрощения отправки пакетов методом sendToAllAround.
    public static void sendToAllAround(final LocationDoublePacket message, final World world) {
        sendToAllAround(message, message.getTargetPoint(world));
    }
    //Метод который отправляет пакет всем игрокам от отправителя, в определённом радиусе.
    public static void sendToAllAround(final IMessage message, final NetworkRegistry.TargetPoint point) {
        NETWORK.sendToAllAround(message, point);
    }
    //Метод который отправляет пакет в определённое измерение.
    public static void sendToDimension(final IMessage message, final int dimensionId) {
        NETWORK.sendToDimension(message, dimensionId);
    }
    //Метод который отправляет пакет на сервер.
    public static void sendToServer(final IMessage message){
        NETWORK.sendToServer(message);
    }
}

Код:
public abstract class AbstractPacket<REQ extends IMessage> implements IMessage, IMessageHandler<REQ, REQ>
    {
        @Override
        public REQ onMessage(final REQ message, final MessageContext ctx)
        {
            //Данный код отвечает за распределение клиентского и серверного кода.
            if(ctx.side == Side.SERVER)
            {
                handleServerSide(message, ctx.getServerHandler().playerEntity);
            }
            if(ctx.side == Side.CLIENT)
            {
                handleClientSide(message, FMLClientHandler.instance().getClientPlayerEntity());
            }
            return null;
        }

        /**
         *  Данные два параметра отвечают за клиентский и серверный код.
         *  @param message - Сообщение
         *  @param player - Игрок
         */
        @SideOnly(Side.CLIENT)
        public abstract void handleClientSide(final REQ message, final EntityPlayer player);
        @SideOnly(Side.SERVER)
        public abstract void handleServerSide(final REQ message, final EntityPlayer player);
    }

Код:
public abstract class LocationDoublePacket<REQ extends IMessage> extends AbstractPacket<REQ>
{
    protected double x, y, z;
    //Обязательный конструктор! Без него будет краш.
    public LocationDoublePacket(){}

    /**
     * Данный конструктор отвечает за позицию игрока по XYZ. Если мы будем использовать
     * способ отправки sendToAllAround нам придётся каждый раз задавать позицию
     * игрока в ручную. Но это гораздо легче чем, каждый раз прописывать 5-10 строк кода.
     * @param x - Позиция игрока по X
     * @param y - Позиция игрока по Y
     * @param z - Позиция игрока по Z
     */
    public LocationDoublePacket(final double x, final double y, final double z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    //Запись переданных Double значений.
    @Override
    public void toBytes(final ByteBuf buf)
    {
        buf.writeDouble(x);
        buf.writeDouble(y);
        buf.writeDouble(z);
    }

    //Чтение переданных Double значений
    @Override
    public void fromBytes(final ByteBuf buf)
    {
        x = buf.readDouble();
        y = buf.readDouble();
        z = buf.readDouble();
    }

    //Данный код получает позицию игрока в мире. И расширяет зону в которой будет действовать пакет, в данном случае на 64 блока.
    public NetworkRegistry.TargetPoint getTargetPoint(final World world)
    {
        return getTargetPoint(world, 64);
    }
    public NetworkRegistry.TargetPoint getTargetPoint(final World world, final double updateDistance)
    {
        return new NetworkRegistry.TargetPoint(world.provider.dimensionId, x, y, z, updateDistance);
    }
}

Код:
public class PacketFire extends LocationDoublePacket<PacketFire>
{
    public PacketFire(){}
    /**
     * Данный конструктор отвечает за получение и отправку наследнику
     * позиции игрока на сервере. Что во много раз нам упростит
     * отправку пакетов методом sendToAllAround.
     * @param x - Позиция по X
     * @param y - Позиция по Y
     * @param z - Позиция по X
     */
    public PacketFire(final double x, final double y, final double z)
    {
        super(x, y, z);
    }

    @Override
    @SideOnly(Side.CLIENT)
    public void handleClientSide(PacketFire message, EntityPlayer player)
    {
        double x, y, z, xSpeed, ySpeed, zSpeed;
        final double r = 0.4;//Радиус от игрока.

        for (float l = 0; l < 2 * Math.PI; l += 2 * Math.PI / 50)
        {
            /**
             * Здесь я бы хотел, чтобы Вы обратили внимание на то, что позиция игрока
             * берётся не от EntityPlayer, а от нашего пакета, message.y/x/z
             * Если мы вместо message.x/y/z укажем player.PosX/Y/Z то частицы будут
             * отображаться у другого игрока на нём, а не на вас. Т.е. будет создаваться
             * видимость того, что это он спавнит частицы, а не вы.
             */
            x = message.x + r * Math.cos(l);
            y = message.y;
            z = message.z + r * Math.sin(l);
            xSpeed = (x - message.x) * 0.2D;
            ySpeed = 0.0D;
            zSpeed = (z - message.z) * 0.2D;
            /**
             * Данный метод(spawnParticles) может отличаться в зависимости от версии mc!
             * @param EnumParticleTypes.FLAME - Это частицы, которые мы спавним.
             * @param x - Позиция игрока по X.
             * @param y - Позиция игрока по Y.
             * @param z - Позиция игрока по Z.
             * @param xSpeed - Скорость движения частиц по X.
             * @param ySpeed - Скорость движения частиц по Y.
             * @param zSpeed - Скорость движения частиц по Z.
             */
            player.worldObj.spawnParticle("flame", x, y, z, xSpeed, ySpeed, zSpeed);
        }
    }

    @SideOnly(Side.SERVER)
    public void handleServerSide(PacketFire message, EntityPlayer player) {}

}
Код:
public class PacketParticlesMP extends AbstractPacket<PacketParticlesMP>
{
    @Override
    @SideOnly(Side.CLIENT)
    public void handleClientSide(final PacketParticlesMP message, final EntityPlayer player) {}

    @Override
    @SideOnly(Side.SERVER)
    public void handleServerSide(final PacketParticlesMP message, final EntityPlayer player)
    {
        /**
         * Здесь идёт отправка пакета с серверной стороны на клиентскую.
         * server->client
         * Для начала, мы задаем метод отправки пакета на клиент. В нашем случае используется
         * наш кастомный sendToAllAround. Далее идёт наш пакет,
         * в котором мы ОБЯЗАТЕЛЬНО(Для кастомного sendToALLAround) прописываем позицию игрока.
         * Так же хочу заметить, что позиция игрока берётся с сервера, а не клиента! После нашего
         * пакета идёт определение мира относительно игрока(Сервер/Клиент).
         */
        NetworkHandler.sendToAllAround(new PacketFire(player.posX, player.posY, player.posZ), player.worldObj);
    }

    @Override
    public void fromBytes(final ByteBuf buf) {}

    @Override
    public void toBytes(final ByteBuf buf) {}
}

Код:
java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_121]
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_121]
	at java.lang.Class.getConstructor0(Class.java:3075) ~[?:1.8.0_121]
	at java.lang.Class.newInstance(Class.java:412) ~[?:1.8.0_121]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[SimpleNetworkWrapper.class:?]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[SimpleNetworkWrapper.class:?]
	at mod.packets.NetworkHandler.<init>(NetworkHandler.java:22) ~[NetworkHandler.class:?]
	at mod.Mod.preInit(Mod.java:58) ~[Mod.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[LoadController.class:?]
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) [LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556) [Loader.class:?]
	at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88) [FMLServerHandler.class:?]
	at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:314) [FMLCommonHandler.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120) [DedicatedServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityClientPlayerMP
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 39 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/entity/EntityClientPlayerMP for invalid side SERVER
	at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50) ~[forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	... 39 more
[01:10:48] [Server thread/ERROR]: Encountered an unexpected exception
cpw.mods.fml.common.LoaderException: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP

	at cpw.mods.fml.common.LoadController.transition(LoadController.java:163) ~[LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559) ~[Loader.class:?]
	at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88) ~[FMLServerHandler.class:?]
	at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:314) ~[FMLCommonHandler.class:?]
	at net.minecraft.server.dedicated.DedicatedServer.startServer(DedicatedServer.java:120) ~[DedicatedServer.class:?]
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:445) [MinecraftServer.class:?]
	at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/entity/EntityClientPlayerMP
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_121]
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_121]
	at java.lang.Class.getConstructor0(Class.java:3075) ~[?:1.8.0_121]
	at java.lang.Class.newInstance(Class.java:412) ~[?:1.8.0_121]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[SimpleNetworkWrapper.class:?]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[SimpleNetworkWrapper.class:?]
	at mod.packets.NetworkHandler.<init>(NetworkHandler.java:22) ~[NetworkHandler.class:?]
	at mod.Mod.preInit(Mod.java:58) ~[Mod.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[LoadController.class:?]
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) ~[LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556) ~[Loader.class:?]
	... 5 more
Caused by: java.lang.ClassNotFoundException: net.minecraft.client.entity.EntityClientPlayerMP
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_121]
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_121]
	at java.lang.Class.getConstructor0(Class.java:3075) ~[?:1.8.0_121]
	at java.lang.Class.newInstance(Class.java:412) ~[?:1.8.0_121]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[SimpleNetworkWrapper.class:?]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[SimpleNetworkWrapper.class:?]
	at mod.packets.NetworkHandler.<init>(NetworkHandler.java:22) ~[NetworkHandler.class:?]
	at mod.Mod.preInit(Mod.java:58) ~[Mod.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[LoadController.class:?]
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) ~[LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556) ~[Loader.class:?]
	... 5 more
Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/entity/EntityClientPlayerMP for invalid side SERVER
	at cpw.mods.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:50) ~[forgeSrc-1.7.10-10.13.4.1614-1.7.10.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.12.jar:?]
	at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.12.jar:?]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_121]
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_121]
	at java.lang.Class.getDeclaredConstructors0(Native Method) ~[?:1.8.0_121]
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671) ~[?:1.8.0_121]
	at java.lang.Class.getConstructor0(Class.java:3075) ~[?:1.8.0_121]
	at java.lang.Class.newInstance(Class.java:412) ~[?:1.8.0_121]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.instantiate(SimpleNetworkWrapper.java:113) ~[SimpleNetworkWrapper.class:?]
	at cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper.registerMessage(SimpleNetworkWrapper.java:106) ~[SimpleNetworkWrapper.class:?]
	at mod.packets.NetworkHandler.<init>(NetworkHandler.java:22) ~[NetworkHandler.class:?]
	at mod.Mod.preInit(Mod.java:58) ~[Mod.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532) ~[FMLModContainer.class:?]
	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212) ~[LoadController.class:?]
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190) ~[LoadController.class:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
	at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119) ~[LoadController.class:?]
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556) ~[Loader.class:?]
	... 5 more
 
Сверху