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.github.nocatch.NoCatch.noCatch; public class JoinGameMessage 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 JoinGameMessage() { super(GpgServerMessageType.JOIN_GAME, 3); setTarget(MessageTarget.GAME); } @Override public JoinGameMessage clone() { noCatch(() -> super.clone()); JoinGameMessage joinGameMessage = new JoinGameMessage(); joinGameMessage.setPeerAddress(getPeerAddress()); joinGameMessage.setUsername(getUsername()); joinGameMessage.setPeerUid(getPeerUid()); return joinGameMessage; } public InetSocketAddress getPeerAddress() { return getSocketAddress(PEER_ADDRESS_INDEX); } public void setPeerAddress(InetSocketAddress peerAddress) { setValue(PEER_ADDRESS_INDEX, SocketAddressUtil.toString(peerAddress)); } public String getUsername() { return getString(USERNAME_INDEX); } public int getPeerUid() { return getInt(PEER_UID_INDEX); } public void setPeerUid(int peerUid) { setValue(PEER_UID_INDEX, peerUid); } public void setUsername(String username) { setValue(USERNAME_INDEX, username); } }