package com.faforever.client.relay;
import com.faforever.client.net.SocketAddressUtil;
import com.faforever.client.remote.domain.MessageTarget;
import java.net.InetSocketAddress;
import static com.faforever.client.relay.GpgServerMessageType.CONNECT_TO_PEER;
import static com.github.nocatch.NoCatch.noCatch;
public class ConnectToPeerMessage extends GpgServerMessage implements Cloneable {
private static final int PEER_ADDRESS_INDEX = 0;
private static final int USERNAME_INDEX = 1;
private static final int PEER_UID_INDEX = 2;
public ConnectToPeerMessage() {
super(CONNECT_TO_PEER, 3);
setTarget(MessageTarget.GAME);
}
@Override
public ConnectToPeerMessage clone() {
noCatch(() -> super.clone());
ConnectToPeerMessage connectToPeerMessage = new ConnectToPeerMessage();
connectToPeerMessage.setPeerAddress(getPeerAddress());
connectToPeerMessage.setUsername(getUsername());
connectToPeerMessage.setPeerUid(getPeerUid());
return connectToPeerMessage;
}
public InetSocketAddress getPeerAddress() {
return getSocketAddress(PEER_ADDRESS_INDEX);
}
public String getUsername() {
return getString(USERNAME_INDEX);
}
public void setUsername(String username) {
setValue(USERNAME_INDEX, username);
}
public int getPeerUid() {
return getInt(PEER_UID_INDEX);
}
public void setPeerUid(int uid) {
setValue(PEER_UID_INDEX, uid);
}
public void setPeerAddress(InetSocketAddress peerAddress) {
setValue(PEER_ADDRESS_INDEX, SocketAddressUtil.toString(peerAddress));
}
}