2013-02-18 03:46:16 +01:00
|
|
|
package StevenDimDoors.mod_pocketDim;
|
|
|
|
|
2013-09-02 04:01:17 +02:00
|
|
|
import java.io.ByteArrayOutputStream;
|
|
|
|
import java.io.DataOutputStream;
|
|
|
|
import java.io.IOException;
|
|
|
|
|
2013-02-18 03:46:16 +01:00
|
|
|
import net.minecraft.network.INetworkManager;
|
|
|
|
import net.minecraft.network.packet.Packet250CustomPayload;
|
2013-09-02 04:01:17 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.core.PocketManager;
|
2013-09-02 22:51:20 +02:00
|
|
|
import StevenDimDoors.mod_pocketDim.messages.IDataMessage;
|
|
|
|
import StevenDimDoors.mod_pocketDim.messages.IUpdateWatcher;
|
2013-02-18 03:46:16 +01:00
|
|
|
import cpw.mods.fml.common.network.IPacketHandler;
|
2013-09-02 04:01:17 +02:00
|
|
|
import cpw.mods.fml.common.network.PacketDispatcher;
|
2013-02-18 03:46:16 +01:00
|
|
|
import cpw.mods.fml.common.network.Player;
|
|
|
|
|
|
|
|
public class ServerPacketHandler implements IPacketHandler
|
|
|
|
{
|
2013-09-02 04:01:17 +02:00
|
|
|
public ServerPacketHandler()
|
|
|
|
{
|
|
|
|
PocketManager.registerDimWatcher(new DimWatcher());
|
|
|
|
PocketManager.registerLinkWatcher(new LinkWatcher());
|
|
|
|
}
|
|
|
|
|
2013-06-14 01:01:54 +02:00
|
|
|
@Override
|
2013-09-02 04:01:17 +02:00
|
|
|
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
private class DimWatcher implements IUpdateWatcher
|
|
|
|
{
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onCreated(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.CREATE_DIM_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onUpdated(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.UPDATE_DIM_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onDeleted(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.DELETE_DIM_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private class LinkWatcher implements IUpdateWatcher
|
|
|
|
{
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onCreated(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.CREATE_LINK_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onUpdated(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.UPDATE_LINK_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-09-02 22:51:20 +02:00
|
|
|
public void onDeleted(IDataMessage message)
|
2013-09-02 04:01:17 +02:00
|
|
|
{
|
|
|
|
sendMessageToAllPlayers(PacketConstants.DELETE_LINK_PACKET_ID, message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2013-09-02 22:51:20 +02:00
|
|
|
private static void sendMessageToAllPlayers(byte id, IDataMessage message)
|
2013-06-14 01:01:54 +02:00
|
|
|
{
|
2013-09-02 04:01:17 +02:00
|
|
|
try
|
|
|
|
{
|
|
|
|
Packet250CustomPayload packet = new Packet250CustomPayload();
|
|
|
|
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
|
|
|
|
DataOutputStream writer = new DataOutputStream(buffer);
|
|
|
|
writer.writeByte(id);
|
|
|
|
message.writeToStream(writer);
|
|
|
|
writer.close();
|
|
|
|
packet.channel = PacketConstants.CHANNEL_NAME;
|
|
|
|
packet.data = buffer.toByteArray();
|
|
|
|
packet.length = packet.data.length;
|
|
|
|
PacketDispatcher.sendPacketToAllPlayers(packet);
|
|
|
|
}
|
|
|
|
catch (IOException e)
|
|
|
|
{
|
|
|
|
//This shouldn't happen...
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2013-06-14 01:01:54 +02:00
|
|
|
}
|
2013-09-02 04:01:17 +02:00
|
|
|
}
|