package com.austinv11.peripheralsplusplus.network;
import com.austinv11.peripheralsplusplus.tiles.TileEntityAntenna;
import cpw.mods.fml.common.network.ByteBufUtils;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
import dan200.computercraft.api.peripheral.IComputerAccess;
import io.netty.buffer.ByteBuf;
import net.minecraft.nbt.NBTTagCompound;
import java.util.UUID;
public class InputEventPacket implements IMessage {
public UUID uuid;
public int key;
public String event, player;
public boolean state;
public InputEventPacket() {}
public InputEventPacket(UUID uuid, int key, boolean state, String event, String player) {
this.uuid = uuid;
this.key = key;
this.state = state;
this.event = event;
this.player = player;
}
@Override
public void fromBytes(ByteBuf buf) {
NBTTagCompound tag = ByteBufUtils.readTag(buf);
uuid = UUID.fromString(tag.getString("uuid"));
key = tag.getInteger("key");
event = tag.getString("event");
player = tag.getString("player");
state = tag.getBoolean("text");
}
@Override
public void toBytes(ByteBuf buf) {
NBTTagCompound tag = new NBTTagCompound();
tag.setString("uuid", uuid.toString());
tag.setInteger("key", key);
tag.setString("event", event);
tag.setString("player", player);
tag.setBoolean("text", state);
ByteBufUtils.writeTag(buf, tag);
}
public static class InputEventPacketHandler implements IMessageHandler<InputEventPacket, IMessage> {
@Override
public IMessage onMessage(InputEventPacket message, MessageContext ctx) {
TileEntityAntenna antenna = TileEntityAntenna.antenna_registry.get(message.uuid);
if (antenna != null) {
for (IComputerAccess computer : antenna.computers.keySet())
computer.queueEvent(message.event, new Object[]{message.player, message.key, message.state});
}
return null;
}
}
}