Доброго времени суток.
Не пойму, почему вместо одного пакета приходит два.
Код:
Не пойму, почему вместо одного пакета приходит два.
Код:
Код:
package flymod.core;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Random;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.PacketDispatcher;
import cpw.mods.fml.common.network.Player;
import cpw.mods.fml.relauncher.Side;
import flymod.ModInfo;
import flymod.core.contentmanager.Speaker;
public class PacketHandler implements IPacketHandler {
private Side side = FMLCommonHandler.instance().getEffectiveSide();
@Override
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
if (packet.channel.equals(ModInfo.CHANNEL)) {
DataInputStream inputStream = new DataInputStream(new ByteArrayInputStream(packet.data));
if(side == Side.SERVER) packetReaderFromClient(inputStream, player);
if(side == Side.CLIENT) packetReaderFromServer(inputStream, player);
}
}
private void packetReaderFromClient(DataInputStream inputStream, Player player) {
try {
switch(inputStream.readInt()) {
/*
case 0: {
System.out.println("[" + side + "] YEY! (Сообщение пришло на сервер)"); break;
}
*/
default: System.out.println("[Packets: " + side +"] WRONG PACKET CODE: " + inputStream.readInt());
}
} catch (IOException e) { e.printStackTrace(); }
}
private void packetReaderFromServer(DataInputStream inputStream, Player player) {
try {
switch(inputStream.readInt()) {
case 11: Speaker.speakToPlayerCient(player); break;
default: System.out.println("[Packets: " + side +"] WRONG PACKET CODE: " + inputStream.readInt());
}
} catch (IOException e) { e.printStackTrace(); }
}
/**
* Отправляет сообщение на сервер
* @param player
* @param message
*/
public static void sendQuickPacketToServer(EntityPlayer player, int message) {
ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
DataOutputStream outputStream = new DataOutputStream(bos);
try {
outputStream.writeInt(message);
} catch (Exception ex) {
ex.printStackTrace();
}
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.channel = ModInfo.CHANNEL;
packet.data = bos.toByteArray();
packet.length = bos.size();
EntityClientPlayerMP sender = (EntityClientPlayerMP) player;
sender.sendQueue.addToSendQueue(packet);
}
/**
* Отправляет пакет на клиент(игроку)
* @param player
* @param message
*/
public static void sendQuickPackageToPlayer(EntityPlayer player, int message) {
ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
DataOutputStream outputStream = new DataOutputStream(bos);
try {
outputStream.writeInt(message);
} catch (Exception ex) {
ex.printStackTrace();
}
Packet250CustomPayload packet = new Packet250CustomPayload();
packet.channel = ModInfo.CHANNEL;
packet.data = bos.toByteArray();
packet.length = bos.size();
PacketDispatcher.sendPacketToPlayer(packet, (Player)player);
}
}