#pragma once struct BaseUserData { std::string account_id; std::string nickname; std::string avatar_url; int sex = 0; int online = 0; std::vector group_ids; long long guild_id = 0; int last_login_time = 0; long long user_value1 = 0; long long user_value2 = 0; long long user_value3 = 0; long long base_data_version = 0; }; struct UserTempCustomData { long long value1 = 0; long long value2 = 0; long long value3 = 0; }; struct Friend { BaseUserData base_data; UserTempCustomData temp_custom_data; std::string server_host; int server_port; std::string server_key; long long server_instance_id = 0; class Player* hum = nullptr; list_head watch_node; unsigned int crc32_code = 0; Friend() { INIT_LIST_HEAD(&watch_node); } }; struct FriendApply { long long idx = 0; long long applyid = 0; std::string target_id; BaseUserData base_data; }; struct Event { long long idx = 0; std::string sender_id; std::string target_id; std::string event_name; std::string param1; std::string param2; std::string param3; std::string event_data; int status = 0; int createtime = 0; };