public void onKeyPressed(InputEvent.KeyInputEvent event) {
System.out.println("onKeyPressed");
for (KeyBinding key : Minecraft.getInstance().options.keyHotbarSlots)
if (key.isDown()) {
new ExamplePacket1(key.getKey().getValue()).sendToServer();
break;
}
}
@ElegantPacket
public class ExamplePacket1 implements ClientToServerPacket, ServerToClientPacket {
final int keyCode;
public ExamplePacket1(int keyCode) {
this.keyCode = keyCode;
}
@Override
public void onReceive(ServerPlayerEntity player) {
System.out.println("ExamplePacket1#onReceive keyCode: " + keyCode);
new ExamplePacket1(player.level.random.nextInt(10)).sendToPlayer(player);
}
@Override
public void onReceive(Minecraft mc) {
System.out.println("ExamplePacket2#onReceive randomInt: " + keyCode);
}
}
@ElegantPacket
public class ExamplePacket1 implements ClientToServerPacket, ServerToClientPacket {
final int keyCode;
public ExamplePacket1(int keyCode) {
this.keyCode = keyCode;
}
@Override
public void onReceive(ServerPlayerEntity player) {
System.out.println("ExamplePacket1#onReceive keyCode: " + keyCode);
}
@Override
public void onReceive(Minecraft mc) {
System.out.println("ExamplePacket2#onReceive randomInt: " + keyCode);
}
}
if (side == LogicalSide.CLIENT && packet instanceof ServerToClientPacket)
throw new RuntimeException("Attempt to send ServerToClientPacket from client side: " + packet.getClass().getCanonicalName());
else if (side == LogicalSide.SERVER && packet instanceof ClientToServerPacket)
throw new RuntimeException("Attempt to send ClientToServerPacket from server side: " + packet.getClass().getCanonicalName());
if (side == LogicalSide.CLIENT && packet instanceof ServerToClientPacket)
throw new RuntimeException("Attempt to send ServerToClientPacket from client side: " + packet.getClass().getCanonicalName());
else if (side == LogicalSide.SERVER && packet instanceof ClientToServerPacket)
throw new RuntimeException("Attempt to send ClientToServerPacket from server side: " + packet.getClass().getCanonicalName());
откуда этот код? Где ты такое нашел?Так ты меня обманул тогда если так? Смотри в чем ты меня обманул ты сказал что можно повесить два интерфейса так? Так! А теперь смотри проверку ниже если у нас клиент сайд и интерфейс ServerToClientPacket то исключение! Получается вешать на пакеты которы отправляются с клиента интерфейс ServerToClientPacket нельзя и это факт!
А ты говорил повесить нужно обаJava:if (side == LogicalSide.CLIENT && packet instanceof ServerToClientPacket) throw new RuntimeException("Attempt to send ServerToClientPacket from client side: " + packet.getClass().getCanonicalName()); else if (side == LogicalSide.SERVER && packet instanceof ClientToServerPacket) throw new RuntimeException("Attempt to send ClientToServerPacket from server side: " + packet.getClass().getCanonicalName());