#include "server_abstract_participant.h"#include "../server.h"#include "../server_abstractuserinterface.h"#include "../server_database_interface.h"#include "../server_room.h"#include "server_card.h"#include "server_game.h"#include "server_player.h"#include <libcockatrice/protocol/get_pb_extension.h>#include <libcockatrice/protocol/pb/command_attach_card.pb.h>#include <libcockatrice/protocol/pb/command_change_zone_properties.pb.h>#include <libcockatrice/protocol/pb/command_concede.pb.h>#include <libcockatrice/protocol/pb/command_create_arrow.pb.h>#include <libcockatrice/protocol/pb/command_create_counter.pb.h>#include <libcockatrice/protocol/pb/command_create_token.pb.h>#include <libcockatrice/protocol/pb/command_deck_select.pb.h>#include <libcockatrice/protocol/pb/command_del_counter.pb.h>#include <libcockatrice/protocol/pb/command_delete_arrow.pb.h>#include <libcockatrice/protocol/pb/command_draw_cards.pb.h>#include <libcockatrice/protocol/pb/command_dump_zone.pb.h>#include <libcockatrice/protocol/pb/command_flip_card.pb.h>#include <libcockatrice/protocol/pb/command_game_say.pb.h>#include <libcockatrice/protocol/pb/command_inc_card_counter.pb.h>#include <libcockatrice/protocol/pb/command_inc_counter.pb.h>#include <libcockatrice/protocol/pb/command_kick_from_game.pb.h>#include <libcockatrice/protocol/pb/command_leave_game.pb.h>#include <libcockatrice/protocol/pb/command_move_card.pb.h>#include <libcockatrice/protocol/pb/command_mulligan.pb.h>#include <libcockatrice/protocol/pb/command_next_turn.pb.h>#include <libcockatrice/protocol/pb/command_ready_start.pb.h>#include <libcockatrice/protocol/pb/command_reveal_cards.pb.h>#include <libcockatrice/protocol/pb/command_reverse_turn.pb.h>#include <libcockatrice/protocol/pb/command_roll_die.pb.h>#include <libcockatrice/protocol/pb/command_set_active_phase.pb.h>#include <libcockatrice/protocol/pb/command_set_card_attr.pb.h>#include <libcockatrice/protocol/pb/command_set_card_counter.pb.h>#include <libcockatrice/protocol/pb/command_set_counter.pb.h>#include <libcockatrice/protocol/pb/command_set_sideboard_lock.pb.h>#include <libcockatrice/protocol/pb/command_set_sideboard_plan.pb.h>#include <libcockatrice/protocol/pb/command_shuffle.pb.h>#include <libcockatrice/protocol/pb/command_undo_draw.pb.h>#include <libcockatrice/protocol/pb/context_connection_state_changed.pb.h>#include <libcockatrice/protocol/pb/event_game_say.pb.h>#include <libcockatrice/protocol/pb/event_player_properties_changed.pb.h>#include <libcockatrice/protocol/pb/event_reverse_turn.pb.h>#include <libcockatrice/protocol/pb/response.pb.h>#include <libcockatrice/protocol/pb/serverinfo_player.pb.h>#include <libcockatrice/protocol/pb/serverinfo_user.pb.h>#include <libcockatrice/utility/trice_limits.h>