package de.take_weiland.mods.commons.internal; import de.take_weiland.mods.commons.net.*; import de.take_weiland.mods.commons.util.JavaUtils; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.network.packet.NetHandler; import net.minecraft.network.packet.Packet250CustomPayload; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import java.io.DataOutput; import java.io.IOException; /** * @author diesieben07 */ public final class Packet250FakeNoMP extends Packet250CustomPayload implements SimplePacket { private final FMLPacketHandlerImpl handler; Packet250FakeNoMP(FMLPacketHandlerImpl handler, String channel, byte[] bytes, int len) { this.handler = handler; this.channel = channel; this.data = bytes; this.length = len; } @Override public void writePacketData(DataOutput out) { try { writeString(channel, out); out.writeShort(length); out.write(data, 0, length); } catch (IOException e) { // stupid bug throw JavaUtils.throwUnchecked(e); } } @Override public void processPacket(NetHandler nh) { handler.handlePacket(Network.newDataInput(data, 0, length), nh.getPlayer()); } @Override public SimplePacket sendTo(PacketTarget target) { target.send(this); return this; } @Override public SimplePacket sendToServer() { Packets.sendToServer(this); return this; } @Override public SimplePacket sendTo(EntityPlayer player) { Packets.sendTo(this, player); return this; } @Override public SimplePacket sendTo(Iterable<? extends EntityPlayer> players) { Packets.sendTo(this, players); return this; } @Override public SimplePacket sendToAll() { Packets.sendToAll(this); return this; } @Override public SimplePacket sendToAllIn(World world) { Packets.sendToAllIn(this, world); return this; } @Override public SimplePacket sendToAllNear(World world, double x, double y, double z, double radius) { Packets.sendToAllNear(this, world, x, y, z, radius); return this; } @Override public SimplePacket sendToAllNear(Entity entity, double radius) { Packets.sendToAllNear(this, entity, radius); return this; } @Override public SimplePacket sendToAllNear(TileEntity te, double radius) { Packets.sendToAllNear(this, te, radius); return this; } @Override public SimplePacket sendToAllTracking(Entity entity) { Packets.sendToAllTracking(this, entity); return this; } @Override public SimplePacket sendToAllTracking(TileEntity te) { Packets.sendToAllTracking(this, te); return this; } @Override public SimplePacket sendToAllTrackingChunk(World world, int chunkX, int chunkZ) { Packets.sendToAllTrackingChunk(this, world, chunkX, chunkZ); return this; } @Override public SimplePacket sendToAllTracking(Chunk chunk) { Packets.sendToAllTracking(this, chunk); return this; } @Override public SimplePacket sendToAllAssociated(Entity e) { Packets.sendToAllAssociated(this, e); return this; } @Override public SimplePacket sendToViewing(Container c) { Packets.sendToViewing(this, c); return this; } }