Ошибка соеденения.

Версия Minecraft
1.7.10
48
1
Всем привет.
Вообщем пишу мод, ничего не подозревая.
ОГРОМНЫЙ уже написал.
И тут такая беда, что нужно мне было, с двух клиентов на 1 сервер зайти.
Захожу со второго, и ошибка - "a fatal error occurred this connection is terminated"
Прошу помочь, очень благодарен заранее.
 
48
1
Проверь все пакеты правильно-ли их id написаны, т.е. убедись что не с каким другим id не конфликтует.
можно по подробнее?
не особо понял(
новичок ещё, капец прям какой новичок
просто практикуюсь на чужом коде, если честно
 

timaxa007

Модератор
5,831
409
672
можно по подробнее?
Более подробно не смогу, но постараюсь.
Java:
network.registerMessage(SyncKillerMessage.Handler.class, SyncKillerMessage.class, 0, Side.CLIENT);
network.registerMessage(SyncKillerMessage.Handler.class, SyncKillerMessage.class, 0, Side.SERVER);
network.registerMessage(KillMessage.Handler.class, KillMessage.class, 1, Side.CLIENT);
network.registerMessage(KillMessage.Handler.class, KillMessage.class, 1, Side.SERVER);
0 и 1 это id, на разные стороны можно один и тоже, но для одного пакета.
Но если id будут совпадать, то когда пакет будет принят будет выскакивать ошибка.
Т.е. если будет типа так:
Java:
network.registerMessage(SyncKillerMessage.Handler.class, SyncKillerMessage.class, 0, Side.CLIENT);
network.registerMessage(SyncKillerMessage.Handler.class, SyncKillerMessage.class, 0, Side.SERVER);
network.registerMessage(KillMessage.Handler.class, KillMessage.class, 0, Side.CLIENT);
network.registerMessage(KillMessage.Handler.class, KillMessage.class, 0, Side.SERVER);
То будет ошибка.
 
48
1
0 и 1 это id, на разные стороны можно один и тоже, но для одного пакета.
Но если id будут совпадать, то когда пакет будет принят будет выскакивать ошибка.
Т.е. если будет типа так:
Java:
package ru.jefstouk.darkdays.network;

import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import ru.jefstouk.darkdays.network.AbstractMessage;
import ru.jefstouk.darkdays.network.client.SyncEquipBackMessage;
import ru.jefstouk.darkdays.network.client.SyncPlayerPropsMessage;
import ru.jefstouk.darkdays.network.server.OpenGuiMessage;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;

public class PacketDispatcher {

   private static byte packetId = 0;
   private static final SimpleNetworkWrapper dispatcher = NetworkRegistry.INSTANCE.newSimpleChannel("dd-dayz");


   public static final void registerPackets() {
      registerMessage(SyncPlayerPropsMessage.class);
      registerMessage(SyncEquipBackMessage.class);
      registerMessage(OpenGuiMessage.class);
   }

   private static final void registerMessage(Class clazz) {
      if(AbstractMessage.AbstractClientMessage.class.isAssignableFrom(clazz)) {
         dispatcher.registerMessage(clazz, clazz, packetId++, Side.CLIENT);
      } else if(AbstractMessage.AbstractServerMessage.class.isAssignableFrom(clazz)) {
         dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
      } else {
         dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
         dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
      }

   }

   public static final void sendTo(IMessage message, EntityPlayerMP player) {
      dispatcher.sendTo(message, player);
   }

   public static void sendToAll(IMessage message) {
      dispatcher.sendToAll(message);
   }

   public static final void sendToAllAround(IMessage message, TargetPoint point) {
      dispatcher.sendToAllAround(message, point);
   }

   public static final void sendToAllAround(IMessage message, int dimension, double x, double y, double z, double range) {
      sendToAllAround(message, new TargetPoint(dimension, x, y, z, range));
   }

   public static final void sendToAllAround(IMessage message, EntityPlayer player, double range) {
      sendToAllAround(message, player.worldObj.provider.dimensionId, player.posX, player.posY, player.posZ, range);
   }

   public static final void sendToDimension(IMessage message, int dimensionId) {
      dispatcher.sendToDimension(message, dimensionId);
   }

   public static final void sendToServer(ru.jefstouk.darkdays.network.server.OpenGuiMessage openGuiMessage) {
      dispatcher.sendToServer((IMessage) openGuiMessage);
   }

}

У меня на подобии такого.
 
48
1
Всё, дыру нашёл.
@timaxa007, спасибо за помощь.

Если у кого-то произойдёт ошибка, спирайтесь на ответ тимахи.
Вот что получилось:
Java:
   private static final void registerMessage(Class clazz) {
      if(AbstractMessage.AbstractClientMessage.class.isAssignableFrom(clazz)) {
         dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
      } else if(AbstractMessage.AbstractServerMessage.class.isAssignableFrom(clazz)) {
         dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
      } else {
         dispatcher.registerMessage(clazz, clazz, packetId, Side.CLIENT);
         dispatcher.registerMessage(clazz, clazz, packetId++, Side.SERVER);
      }
 
Сверху