package network.protocol;

import network.protocol.packets.ChangeCellPacket;
import network.protocol.packets.ConnexionInfoPacket;
import network.protocol.packets.DisconnectPacket;
import network.protocol.packets.EndGamePacket;
import network.protocol.packets.KeepAlivePacket;
import network.protocol.packets.LoginPacket;
import network.protocol.packets.PlayerJoinPacket;
import network.protocol.packets.PlayerLeavePacket;
import network.protocol.packets.StartGamePacket;
import network.protocol.packets.UpdatePlayerScorePacket;

public interface PacketVisitor {

	default void visit(Packet packet) {
		packet.accept(this);
	}
	
	void visitPacket(ConnexionInfoPacket packet);
	void visitPacket(DisconnectPacket packet);
	void visitPacket(KeepAlivePacket packet);
	void visitPacket(LoginPacket packet);
	void visitPacket(PlayerJoinPacket packet);
	void visitPacket(PlayerLeavePacket packet);
	void visitPacket(StartGamePacket packet);
	void visitPacket(EndGamePacket packet);
	void visitPacket(UpdatePlayerScorePacket packet);
	void visitPacket(ChangeCellPacket packet);
	
}
