package fr.univ.lyon1.gui;

import fr.univ.lyon1.client.Client;
import fr.univ.lyon1.client.ClientReceive;
import fr.univ.lyon1.common.Message;
import fr.univ.lyon1.gui.handlers.MainHandler;
import fr.univ.lyon1.common.command.Command;

import java.io.IOException;

public class ClientGUI extends Client {
    private final MainHandler gui;

    public ClientGUI(MainHandler handler, String address, int port) throws Exception {
        super(address, port, null, null);
        this.gui = handler;
    }

    @Override
    protected void commandMessage(Command cmd) {
        gui.receiveMessage(cmd.getArgs().get(0).toString());
    }

    @Override
    public void run() {
        if (started)
            return;

        Thread clientReceiveThread = new Thread(new ClientReceive(this, super.socket));
        clientReceiveThread.start();

        started = true;
    }
}