mod eac; mod more_auth; mod versioner; mod maintenancer; mod game_quality; mod login_flags; mod load_analytics; mod platform_config; mod tier_banding; mod cube_list; mod special_items; mod premium_config; mod palette_town; mod client_config; mod crf_config; mod weapon_stats; mod movement_stats; mod power_bar_stats; mod damage_boost_stats; mod battle_arena_config; mod cpu_limits_config; mod cosmetic_config; mod taunts_config; mod all_customisations_info; // some social requests must complete here mod tech_points; mod cube_inventory; mod player_level; mod balance_info; mod premium_duration; mod tutorial_status; mod user_perms; mod garage_slots; mod robopass_season; mod owned_cosmetics; mod dev_message; mod custom_games_maps; mod avatar_info; mod custom_game_session; mod user_xp; mod garage_upgrades; mod game_event_params; mod garage_bay_uuid; mod tech_tree_data; mod item_shop_bundles; mod robot_customisations; mod player_data; mod player_robopass; mod weapon_upgrades; mod player_rank; mod ab_test_group; mod league_limits; mod crf_limits; mod robot_mastery_settings; mod player_started_purchase; mod custom_games_team; mod custom_games_invite; mod chat_settings; mod prebuilt_robots; mod prebuilt_colours; mod robopass_preview_items; mod singleplayer_campaigns; mod purchases; mod building_xp_config; mod weapon_rating_static; mod weapon_xp_static; mod machine; mod machine_colour; mod last_completed_campaign; mod daily_quests; mod cube_awards; mod robot_sanction; mod building_xp; mod reconnect_game; mod regen_config; mod pageantry; mod signup_time; mod validate_machine; mod game_mode_config; mod score_multipliers_config; mod player_robot_rank; mod weapon_order; mod garage_slot_limit; mod garage_slot_add; mod garage_slots_order; mod garage_slot_select; mod garage_slot_dismantle; mod garage_slot_upgrade; mod crf_earnings; mod crf_list_query; mod crf_vehicle_data; mod crf_purchase; mod crf_upload; mod avatar_set_custom; mod avatar_set; mod garage_slot_controls; mod garage_slot_set_customisations; mod garage_slot_name; mod garage_slot_copy; mod steam_promo; mod campaign_save_result; mod item_shop_purchase; mod code_redeem; mod crf_rate_vehicle; mod crf_shift_vehicle; mod crf_make_featured; mod crf_unmake_featured; mod tech_tree_unlock_cube; mod crf_remove; use polariton_server::operations::OperationsHandler; pub fn handler(init_ctx: &crate::InitConfig) -> OperationsHandler { OperationsHandler::new() .modify(oj_rc_core::polariton::RcOpModifier) .add(eac::EacChallengeIgnorer) .add(more_auth::MoreLobbyAuth) .add(versioner::version_teller(&init_ctx.cubes)) .add(maintenancer::MaintenanceModeTeller) .add(game_quality::QualityConfigTeller) .add(login_flags::UserFlagsTeller) .add(polariton_server::operations::Ack::<132, _>::default()) // verify user level .add(load_analytics::NoAnalytics) .add(polariton_server::operations::Ack::<131, _>::default()) // analytics updated notification .add(platform_config::platform_config_provider(&init_ctx.cubes)) .add(tier_banding::tiers_banding_provider()) .add(cube_list::cube_list_provider(&init_ctx.cubes)) .add(special_items::special_item_list_provider()) .add(premium_config::premium_config_provider()) .add(palette_town::kanto()) .add(client_config::client_config_provider(&init_ctx.cubes)) .add(crf_config::crf_config_provider()) .add(weapon_stats::weapon_config_provider(&init_ctx.cubes)) .add(movement_stats::movement_config_provider(&init_ctx.cubes)) .add(power_bar_stats::power_bar_provider(&init_ctx.cubes)) .add(damage_boost_stats::damage_boost_provider()) .add(battle_arena_config::battle_arena_config_provider(&init_ctx.cubes, &init_ctx.factory, init_ctx.parsers.weapon_order(), init_ctx.parsers.cpu_counter())) .add(cpu_limits_config::cpu_config_provider()) .add(cosmetic_config::cosmetic_limits_config_provider()) .add(taunts_config::taunts_config_provider()) .add(all_customisations_info::all_customisations_provider()) .add(tech_points::tech_points_provider()) .add(cube_inventory::cube_inv_provider(&init_ctx.cubes)) .add(player_level::player_level_info_provider()) .add(balance_info::balance_wallet_provider()) .add(premium_duration::premium_remaining_provider()) .add(tutorial_status::tutorial_info_provider()) .add(user_perms::user_rights_provider()) .add(garage_slots::garage_slot_provider()) .add(robopass_season::robopass_season_provider()) .add(owned_cosmetics::owned_cosmetics_provider()) .add(owned_cosmetics::selected_cosmetics_provider()) .add(dev_message::dev_message_provider(&init_ctx.cubes)) .add(custom_games_maps::allowed_maps_provider()) .add(avatar_info::avatar_get_provider()) .add(custom_game_session::get_custom_session_provider()) .add(user_xp::get_user_xp_provider()) .add(garage_upgrades::garage_upgrades_provider(&init_ctx.cubes)) .add(game_event_params::event_system_params_provider(&init_ctx.cubes)) .add(garage_bay_uuid::garage_id_provider()) .add(tech_tree_data::tech_tree_layout_provider(&init_ctx.cubes)) .add(item_shop_bundles::item_bundle_provider(&init_ctx.cubes)) .add(robot_customisations::bay_customisations_provider()) .add(player_data::player_data_provider()) .add(player_robopass::player_robopass_season_provider()) .add(weapon_upgrades::weapons_upgrade_provider(&init_ctx.cubes)) .add(polariton_server::operations::Ack::<172, _>::default()) // custom game change robot tier (param 67 is tier) .add(player_rank::rank_provider()) .add(player_rank::rank_static_provider()) .add(ab_test_group::test_group_provider()) .add(league_limits::league_battle_parameters_provider()) .add(crf_limits::robot_shop_submission_infos_provider()) .add(robot_mastery_settings::robot_mastery_settings_provider()) .add(player_started_purchase::started_purchase_provider()) .add(custom_games_team::team_setup_provider()) .add(polariton_server::operations::Ack::<152, _>::default()) // custom game player state changed (188 is desired state) .add(custom_games_invite::pending_invite_provider()) .add(chat_settings::chat_settings_provider()) .add(polariton_server::operations::Ack::<19, _>::default()) // save chat settings .add(prebuilt_robots::garage_robot_data_provider()) .add(prebuilt_colours::garage_colour_combo_provider()) .add(robopass_preview_items::robopass_preview_provider()) .add(singleplayer_campaigns::singleplayer_campaigns_provider(init_ctx)) .add(purchases::pending_purchases_provider()) .add(building_xp_config::building_xp_config_provider()) .add(weapon_rating_static::weapon_rating_provider()) .add(weapon_xp_static::weapon_xp_provider()) .add(machine::garage_machine_provider()) .add(machine_colour::garage_machine_colour_provider()) .add(last_completed_campaign::completed_campaign_provider()) .add(daily_quests::player_daily_quests_provider()) .add(tech_points::tech_points_awards_provider()) .add(cube_awards::cube_awards_provider()) .add(robot_sanction::robot_sanction_provider()) .add(building_xp::building_xp_save_provider()) .add(robot_sanction::all_robot_sanctions_provider()) .add(reconnect_game::available_reconnect_provider()) .add(machine::garage_machine_save_provider(init_ctx.parsers.cpu_counter())) .add(polariton_server::operations::Ack::<32, _>::default()) // TODO handle SaveMachineColorRequest instead of ignoring it .add(polariton_server::operations::Ack::<45, _>::default()) // TODO handle UpdateThumbnailVersionRequest instead of ignoring it .add(weapon_order::weapon_order_provider(&init_ctx.cubes)) .add(regen_config::auto_regen_config_provider(&init_ctx.cubes)) .add(pageantry::after_battle_vote_thresholds_provider(&init_ctx.cubes)) .add(signup_time::user_signup_date_provider()) .add(validate_machine::validate_robot_provider()) .add(game_mode_config::game_mode_config_provider(&init_ctx.cubes)) .add(score_multipliers_config::tdm_ai_score_config_provider()) .add(player_robot_rank::player_robot_rank_provider()) .add(validate_machine::validate_campaign_robot_provider()) .add(singleplayer_campaigns::singleplayer_complete_campaign_provider(init_ctx)) .add(campaign_save_result::campaign_save_awards_provider()) .add(singleplayer_campaigns::singleplayer_save_complete_campaign_provider()) // TODO handle UpdatePlayerCompletedCampaignWaveRequest saving .add(garage_slot_limit::garage_slots_limit(&init_ctx.cubes)) .add(garage_slot_add::garage_slot_add_provider()) .add(garage_slots_order::garage_slot_order_provider()) .add(garage_slot_select::garage_slot_selector()) .add(garage_slot_dismantle::garage_slot_dismantler()) .add(garage_slot_upgrade::garage_slot_upgrage_provider()) .add(crf_earnings::robot_shop_user_earnings_provider()) .add(crf_list_query::crf_item_list_query_provider(&init_ctx.factory)) .add(crf_vehicle_data::crf_item_data_provider(&init_ctx.factory)) .add(crf_purchase::crf_copy_to_bay_provider(&init_ctx.factory, init_ctx.parsers.weapon_order(), init_ctx.parsers.cpu_counter())) .add(crf_upload::crf_upload_provider(&init_ctx.factory)) .add(avatar_set_custom::custom_avatar_upload_handler()) .add(avatar_set::avatar_set_provider()) .add(garage_slot_controls::garage_slot_controls_provider()) .add(garage_slot_set_customisations::garage_slot_customisation_provider()) .add(garage_slot_name::garage_slot_rename_provider()) .add(garage_slot_copy::garage_slot_copy_provider()) .add(polariton_server::operations::Ack::<12, _>::default()) // TODO handle UpdatePlayerDailyQuestProgressRequest instead of ignoring it .add(crf_rate_vehicle::crf_rating_provider(&init_ctx.factory)) .add(crf_shift_vehicle::factory_offset_provider(&init_ctx.factory, init_ctx.parsers.offset())) .add(steam_promo::steam_promos_provider()) .add(item_shop_purchase::item_purchase_provider(&init_ctx.cubes)) .add(code_redeem::code_redeem_provider(&init_ctx.cubes)) .add(crf_make_featured::factory_featured_provider(&init_ctx.factory)) .add(crf_unmake_featured::factory_featured_provider(&init_ctx.factory)) .add(polariton_server::operations::Ack::<101, _>::default()) // RestoreCRFFeaturedRobot unused and also redundant??? .add(tech_tree_unlock_cube::tech_tree_cube_unlock_provider(&init_ctx.cubes)) .add(crf_remove::factory_remove_provider(&init_ctx.factory)) .add(polariton_server::operations::Ack::<94, _>::default()) // ReportCommunityShopItemRequest FIXME: log reports }