package org.stevewinfield.sunrise.game.sessions;

import org.stevewinfield.sunrise.Logging;
import org.stevewinfield.sunrise.Sunrise;
import org.stevewinfield.sunrise.communication.MessageComposer;
import org.stevewinfield.sunrise.util.InvalidKeyException;
import org.stevewinfield.sunrise.util.RC4;
import org.webbitserver.WebSocketConnection;

public class Session {
	private int id;
	private WebSocketConnection connection;
	private boolean authenticated;
	private String rc4Key;
	
	public boolean isAuthenticated() {
		return authenticated;
	}
	
	public void setAuthentication(boolean b) {
		this.authenticated = b;
	}
	
	public int getId() {
		return this.id;
	}
	
	public WebSocketConnection getConnection() {
		return this.connection;
	}
	
	public Session(int id, WebSocketConnection connection) {
		this.id = id;
		this.rc4Key = Sunrise.rc4Key;
		this.connection = connection;
	}
	
	public void write(MessageComposer composer) {
		this.connection.send(RC4.rc4(this.rc4Key, composer.toString()));
		Logging.writeLog("Sent composer [" + composer.id + "] " + composer.toString());
	}
}
