Trevi.Machinilorum.Packet.PacketManager.java Source code

Java tutorial

Introduction

Here is the source code for Trevi.Machinilorum.Packet.PacketManager.java

Source

/**
 * Craftus Machinilorum
 *
 * 
 * @Author Trevi Awater 
 * @License Gnu Public License Version 3
 * 
 **/

package Trevi.Machinilorum.Packet;

import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

import Trevi.Machinilorum.Handler.LogHandler;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;

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;

public class PacketManager implements IPacketHandler {
    // If There Is Data To Be Send

    @Override
    public void onPacketData(INetworkManager INetworkManager, Packet250CustomPayload Packet, Player Player) {
        try {
            ByteArrayDataInput Data = ByteStreams.newDataInput(Packet.data);
            DataInputStream DataInput = new DataInputStream((InputStream) Data);

            int Var1 = Data.readInt();
            int Var2 = Data.readInt();
            int Var3 = Data.readInt();

            World World = ((EntityPlayer) Player).worldObj;

            if (World != null) {
                TileEntity TileEntity = World.getBlockTileEntity(Var1, Var2, Var3);

                if (TileEntity != null) {
                    if (TileEntity instanceof PacketReciever) {
                        ((PacketReciever) TileEntity).handlePacketData(INetworkManager, Packet.channel, Data);
                        TileEntity.readFromNBT(Packet.readNBTTagCompound(DataInput));
                    }
                }
            }
        }

        catch (Exception Exception) {
            LogHandler.Print("Could Not Sent Tag Compound Packet: " + Exception);
        }
    }

    // Trying To Sent Tile Packet

    public static void sendTileEntityPacket(TileEntity TileEntity, String Name, Object... SenderData) {
        ByteArrayOutputStream ByteArrayOutputStream = new ByteArrayOutputStream();
        DataOutputStream DataOutputStream = new DataOutputStream(ByteArrayOutputStream);

        try {
            DataOutputStream.writeInt(TileEntity.xCoord);
            DataOutputStream.writeInt(TileEntity.yCoord);
            DataOutputStream.writeInt(TileEntity.zCoord);

            sendPacketToClient(Name, ByteArrayOutputStream, DataOutputStream, SenderData);
        }

        catch (IOException IOException) {
            LogHandler.Print("Could Not Sent Tile Entity Data: " + IOException);
        }
    }

    // Trying To Send Packet To Client

    public static void sendPacketToClient(String Channel, ByteArrayOutputStream ByteArrayOutputStream,
            DataOutputStream Data, Object... senderData) {
        try {
            for (Object DataValue : senderData) {
                if (DataValue instanceof Integer) {
                    Data.writeInt((Integer) DataValue);
                }

                else if (DataValue instanceof Float) {
                    Data.writeFloat((Float) DataValue);
                }

                else if (DataValue instanceof Double) {
                    Data.writeDouble((Double) DataValue);
                }

                else if (DataValue instanceof Byte) {
                    Data.writeByte((Byte) DataValue);
                }

                else if (DataValue instanceof Boolean) {
                    Data.writeBoolean((Boolean) DataValue);
                }

                else if (DataValue instanceof String) {
                    Data.writeUTF((String) DataValue);
                }

                else if (DataValue instanceof Short) {
                    Data.writeShort((Short) DataValue);
                }

                else if (DataValue instanceof Long) {
                    Data.writeLong((Long) DataValue);
                }
            }

            Packet250CustomPayload Packet = new Packet250CustomPayload();

            Packet.channel = Channel;
            Packet.data = ByteArrayOutputStream.toByteArray();
            Packet.length = Packet.data.length;
            Packet.isChunkDataPacket = true;

            FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager()
                    .sendPacketToAllPlayers(Packet);

            LogHandler.Print("Packet Successfully Sent To Client.");
        }

        catch (IOException IOException) {
            LogHandler.Print("Failed To Sent Packet To Client: " + IOException);
        }
    }

    // Trying To Send Packet To Server

    public static void sendPacketToServer(String Channel, ByteArrayOutputStream ByteArrayOutputStream,
            DataOutputStream Data, Object... SenderData) {
        try {
            for (Object DataValue : SenderData) {
                if (DataValue instanceof Integer) {
                    Data.writeInt((Integer) DataValue);
                }

                else if (DataValue instanceof Float) {
                    Data.writeFloat((Float) DataValue);
                }

                else if (DataValue instanceof Double) {
                    Data.writeDouble((Double) DataValue);
                }

                else if (DataValue instanceof Byte) {
                    Data.writeByte((Byte) DataValue);
                }

                else if (DataValue instanceof Boolean) {
                    Data.writeBoolean((Boolean) DataValue);
                }

                else if (DataValue instanceof String) {
                    Data.writeUTF((String) DataValue);
                }

                else if (DataValue instanceof Short) {
                    Data.writeShort((Short) DataValue);
                }

                else if (DataValue instanceof Long) {
                    Data.writeLong((Long) DataValue);
                }
            }

            Packet250CustomPayload Packet = new Packet250CustomPayload();

            Packet.channel = Channel;
            Packet.data = ByteArrayOutputStream.toByteArray();
            Packet.length = Packet.data.length;
            Packet.isChunkDataPacket = true;

            PacketDispatcher.sendPacketToServer(Packet);

            LogHandler.Print("Packet Successfully Sent To Server.");
        }

        catch (IOException IOException) {
            LogHandler.Print("Failed To Sent Packet To Server: " + IOException);
        }
    }
}