This commit is contained in:
Yuuki 2024-06-24 01:46:20 +08:00
parent 75df595ce7
commit 153aed467a
43 changed files with 260 additions and 269 deletions

View File

@ -5,16 +5,15 @@ import "AvatarInfo.proto";
import "AvatarTeam.proto";
import "AvatarRenameInfo.proto";
// 4.6.0
// CmdId: 24452
// 4.7.0 ??
message AvatarDataNotify {
repeated uint32 owned_flycloak_list = 13;
repeated AvatarRenameInfo avatar_rename_list = 10;
repeated AvatarInfo avatar_list = 5;
map<uint32, AvatarTeam> avatar_team_map = 15;
//repeated uint32 backup_avatar_team_order_list = 9;//sus
repeated uint32 owned_costume_list = 2;
//repeated uint64 temp_avatar_guid_list = 999;//Wrong
uint32 cur_avatar_team_id = 1;
uint64 choose_avatar_guid = 11;
repeated AvatarInfo avatar_list = 7;
map<uint32, AvatarTeam> avatar_team_map = 14;
uint32 cur_avatar_team_id = 5;
uint64 choose_avatar_guid = 8;
repeated uint32 owned_costume_list = 10;
repeated uint32 owned_flycloak_list = 13;
repeated AvatarRenameInfo avatar_rename_list = 11;
repeated uint64 temp_avatar_guid_list = 1;
repeated uint32 backup_avatar_team_order_list = 4;
}

View File

@ -1,8 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// 4.7.0 ??
message AvatarRenameInfo {
uint32 avatar_id = 5;
string avatar_name = 12;
string avatar_name = 13;
uint32 avatar_id = 3;
}

View File

@ -1,8 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// 4.7.0
message AvatarTeam {
repeated uint64 avatar_guid_list = 10;
string team_name = 12;
repeated uint64 avatar_guid_list = 5;
string team_name = 1;
}

View File

@ -3,10 +3,9 @@ option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeEntry.proto";
//obf: PHBIGCMGNHM
// CmdId: 28122
// 4.7.0 ??
message ClientAbilityChangeNotify {
bool is_init_hash = 6;
uint32 entity_id = 8;
repeated AbilityInvokeEntry invokes = 9;
bool is_init_hash = 5;
repeated AbilityInvokeEntry invokes = 6;
uint32 entity_id = 12;
}

View File

@ -3,9 +3,8 @@ option java_package = "emu.grasscutter.net.proto";
import "AbilityInvokeEntry.proto";
//obf: HMICLOFFJGD
// CmdId: 21190
// 4.7.0
message ClientAbilityInitFinishNotify {
repeated AbilityInvokeEntry invokes = 3;
uint32 entity_id = 14;
repeated AbilityInvokeEntry invokes = 11;
uint32 entity_id = 14;
}

View File

@ -4,10 +4,9 @@ option java_package = "emu.grasscutter.net.proto";
import "CutSceneExtraParam.proto";
// 4.6.0
// CmdId: 28649
// 4.7.0
message CutSceneBeginNotify {
repeated CutSceneExtraParam extra_param_list = 2;
bool is_wait_others = 6;
uint32 cutscene_id = 12;
uint32 cutscene_id = 11;
bool is_wait_others = 8;
repeated CutSceneExtraParam extra_param_list = 15;
}

View File

@ -2,7 +2,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// 4.7.0
message CutSceneExtraParam {
repeated double detail_param_list = 12;
repeated double detail_param_list = 14;
}

View File

@ -1,11 +1,10 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 20243
// 4.7.0
message EnterScenePeerNotify {
uint32 dest_scene_id = 1;
uint32 enter_scene_token = 9;
uint32 peer_id = 11;//11 or 3
uint32 host_peer_id = 3;//11 or 3
uint32 enter_scene_token = 1;
uint32 peer_id = 10;
uint32 host_peer_id = 6;
uint32 dest_scene_id = 15;
}

View File

@ -1,8 +1,7 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 9184
// 4.7.0
message EnterSceneReadyReq {
uint32 enter_scene_token = 7;
uint32 enter_scene_token = 8;
}

View File

@ -2,10 +2,8 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 1104
// 4.7.0
message EnterSceneReadyRsp {
uint32 enter_scene_token = 10;
int32 retcode = 99;
uint32 enter_scene_token = 3;
int32 retcode = 2;
}

View File

@ -3,10 +3,8 @@ option java_package = "emu.grasscutter.net.proto";
import "FriendBrief.proto";
// 4.6.0
// CmdId: 8658
// 4.7.0
message GetPlayerFriendListRsp {
repeated FriendBrief friend_list = 9;
repeated FriendBrief ask_friend_list = 99;//wrong
int32 retcode = 98;//wrong
repeated FriendBrief friend_list = 1;
repeated FriendBrief ask_friend_list = 2;
}

View File

@ -2,9 +2,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 7440
// 4.7.0
message GetPlayerSocialDetailReq {
uint32 uid = 15;
uint32 uid = 4;
}

View File

@ -1,12 +1,23 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 28960
// 4.7.0
message GetPlayerTokenReq {
uint32 platform_type = 7;
string account_uid = 9;
uint32 key_id = 550;
string client_rand_key = 1605;
string account_token = 14;
string client_rand_key = 204;
string account_uid = 10;
uint32 key_id = 220;
string account_token = 15;
uint32 platform_type = 11;
uint32 OGNFFAEKDBO = 1595;
uint32 account_type = 41;
uint32 channel_id = 1311;
string psn_id = 12;
string online_id = 1;
string client_ip_str = 14;
uint32 sub_channel_id = 7;
uint32 cloudClientIp = 177;
string birthday = 828;
uint32 uid = 131;
string country_code = 151;
bool is_guest = 6;
}

View File

@ -1,17 +1,40 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 4867
import "StopServerInfo.proto";
// 4.7.0
message GetPlayerTokenRsp {
string country_code = 1096;
uint32 key_id = 1411;
string client_ip_str = 703;
string server_rand_key = 1118;
string token = 14;
string account_uid = 3;
string sign = 477;
uint32 uid = 13;
string client_version_random_key = 207;
uint32 platform_type = 15; //15 or 1795
uint32 uid = 4;
string account_uid = 9;
string server_rand_key = 910;
string sign = 414;
string country_code = 254;
bytes security_cmd_buffer = 3;
string client_ip_str = 1950;
string token = 2;
string psn_id = 1402;
uint32 platform_type = 14;
uint32 key_id = 720;
bool PELBMOHDKHJ = 1292;
bool ILGBPPMFHIF = 1962;
uint64 secret_key_seed = 13;
string client_version_random_key = 678;
StopServerInfo stop_server = 875;
uint32 channel_id = 259;
uint32 reg_platform = 1241;
uint32 tag = 1572;
string birthday = 1437;
int32 retcode = 11;
bool is_guest = 211;
repeated uint32 finish_collection_id_list = 451;
string msg = 12;
bool is_proficient_player = 5;
uint32 account_type = 1585;
bytes extra_bin_data = 113;
uint32 sub_channel_id = 141;
string secret_key = 91;
uint32 blackUidEndTime = 15;
uint32 KCFIGJAPNIB = 6;
uint32 cloudClientIp = 508;
}

View File

@ -1,9 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 7890
// 4.7.0
message GetSceneAreaReq {
uint32 scene_id = 3;
uint32 belong_uid = 14;
uint32 scene_id = 7;
uint32 belong_uid = 9;
}

View File

@ -1,8 +1,7 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 21735
// 4.7.0
message GetShopReq {
uint32 shop_type = 4;
uint32 shop_type = 14;
}

View File

@ -6,5 +6,5 @@ import "Shop.proto";
// 4.7.0
message GetShopRsp {
Shop shop = 11;
int32 retcode = 14;
int32 retcode = 15;
}

View File

@ -3,9 +3,9 @@ option java_package = "emu.grasscutter.net.proto";
import "AbilitySyncStateInfo.proto";
// 4.6.0
// 4.7.0
message MPLevelEntityInfo {
uint32 entity_id = 3;
uint32 authority_peer_id = 4;
AbilitySyncStateInfo ability_info = 7;
AbilitySyncStateInfo ability_info = 6;
uint32 authority_peer_id = 9;
uint32 entity_id = 13;
}

View File

@ -1,9 +1,9 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// 4.7.0
message MapLayerInfo {
repeated uint32 unlocked_map_layer_id_list = 9;//sus
repeated uint32 unlocked_map_layer_group_id_list = 12;//sus
repeated uint32 unlocked_map_layer_floor_id_list = 13;//sus
repeated uint32 unlocked_map_layer_id_list = 13;
repeated uint32 unlocked_map_layer_floor_id_list = 4;
repeated uint32 unlocked_map_layer_group_id_list = 3;
}

View File

@ -1,8 +1,7 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 26330
// 4.7.0
message OpenStateUpdateNotify {
map<uint32, uint32> open_state_map = 9;
map<uint32, uint32> open_state_map = 4;
}

View File

@ -3,12 +3,11 @@ option java_package = "emu.grasscutter.net.proto";
import "PropValue.proto";
// 4.6.0
// CmdId: 2408
// 4.7.0
message PlayerDataNotify {
uint32 region_id = 3;
map<uint32, PropValue> prop_map = 8;
uint64 server_time = 9;
bool is_first_login_today = 10;
string nick_name = 12;
string nick_name = 5;
map<uint32, PropValue> prop_map = 10;
bool is_first_login_today = 2;
uint32 region_id = 1;
uint64 server_time = 12;
}

View File

@ -2,15 +2,14 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "TeamEnterSceneInfo.proto";
import "MPLevelEntityInfo.proto";
import "AvatarEnterSceneInfo.proto";
import "MPLevelEntityInfo.proto";
// 4.6.0
// CmdId: 1006
// 4.7.0
message PlayerEnterSceneInfoNotify {
TeamEnterSceneInfo team_enter_info = 10;
MPLevelEntityInfo mp_level_entity_info = 11;
repeated AvatarEnterSceneInfo avatar_enter_info = 5;
uint32 cur_avatar_entity_id = 12;
uint32 enter_scene_token = 9;
uint32 enter_scene_token = 1;
uint32 cur_avatar_entity_id = 4;
TeamEnterSceneInfo team_enter_info = 2;
repeated AvatarEnterSceneInfo avatar_enter_info = 12;
MPLevelEntityInfo mp_level_entity_info = 13;
}

View File

@ -5,31 +5,25 @@ import "Vector.proto";
import "EnterType.proto";
import "MapLayerInfo.proto";
// 4.6.0
// CmdId: 21317
// 2 -> 1, 4 -> 1, 376 -> 1, 1100 -> 1
// world_type type enter_reason is_first_login_enter_scene
// 4.7.0
message PlayerEnterSceneNotify {
uint32 prev_scene_id = 1; // OK
EnterType type = 2; // OK
uint32 world_level = 3; // OK
bool is_first_login_enter_scene = 4; // OK
uint64 scene_begin_time = 6; // OK
uint32 scene_id = 7; // OK
uint32 dungeon_id = 8; // OK
repeated uint32 scene_tag_id_list = 9; // OK
Vector prev_pos = 11; // OK
Vector pos = 13; // OK
uint32 target_uid = 14; // 14 or 189
uint32 enter_scene_token = 15; // OK
string scene_transaction = 120; // OK
uint32 create_player_uid = 189; // 14 or 189
MapLayerInfo map_layer_info = 317; // OK
uint32 world_type = 376; // OK
uint32 enter_reason = 1100; // OK
Vector dungeon_prev_pos = 1663; // NEW
uint32 dungeon_prev_scene_id = 1848; // NEW
bool is_skip_ui = 2000; // wrong
uint32 target_uid = 7;
uint64 scene_begin_time = 6;
uint32 scene_id = 13;
uint32 enter_scene_token = 15;
string scene_transaction = 607;
repeated uint32 scene_tag_id_list = 9;
Vector pos = 10;
EnterType type = 1;
uint32 create_player_uid = 1749;
MapLayerInfo map_layer_info = 1413;
bool is_skip_ui = 237;
bool is_first_login_enter_scene = 289;
Vector prev_pos = 1414;
uint32 prev_scene_id = 81;
uint32 world_type = 1327;
uint32 enter_reason = 670;
uint32 LAJGLCIFKCP = 1820;
uint32 world_level = 5;
uint32 dungeon_id = 11;
}

View File

@ -1,13 +1,11 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 27601
// 4.7.0
message PlayerLoginReq {
string device_info = 9;
string device_name = 13;
string system_version = 12;
uint32 platform_type = 7;
string token = 1;
string checksum_client_version = 868;
string device_info = 3;
string device_name = 1;
string system_version = 14;
string client_version = 15;
string token = 12;
}

View File

@ -2,16 +2,48 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "ResVersionConfig.proto";
//import "ShortAbilityHashPair.proto";
import "ShortAbilityHashPair.proto";
import "FeatureBlockInfo.proto";
import "StopServerInfo.proto";
import "BlockInfo.proto";
// 4.6.0
// CmdId: 25507
// 4.7.0
message PlayerLoginRsp {
string country_code = 1486;
string game_biz = 9;
ResVersionConfig res_version_config = 240;
string client_version_suffix = 1275;
string client_silence_version_suffix = 335;
uint32 client_data_version = 4;
//repeated ShortAbilityHashPair short_ability_hash_map = 1145;//sus
string game_biz = 13;
string country_code = 184;
ResVersionConfig res_version_config = 1498;
string client_md5 = 354;
string client_silence_md5 = 790;
double total_tick_time = 80;
uint32 client_data_version = 7;
uint32 client_silence_data_version = 10;
string client_version_suffix = 704;
bool is_use_ability_hash = 1192;
string client_silence_version_suffix = 1860;
map <string, int32> ability_hash_map = 1011;
bool is_transfer = 1988;
uint32 target_home_owner_uid = 816;
bool is_data_need_relogin = 1993;
int32 ability_hash_code = 511;
repeated ShortAbilityHashPair short_ability_hash_map = 1373;
bool FBFJPEPMAOF = 15;
bool is_audit = 335;
string msg = 4311;
repeated FeatureBlockInfo feature_block_info_list = 1627;
bool DNHHIMENOLD = 1371;
bool PKKKINOCFMJ = 211;
int32 retcode = 811;
string birthday = 1688;
bool BOKKNHEOKPD = 620;
uint32 target_uid = 911;
map <uint32, BlockInfo> block_info_map = 2007;
bool GOFGOCDJDND = 281;
string next_resource_url = 986;
bytes player_data = 134;
bytes sc_info = 416;
uint64 login_rand = 311;
string ENNOCBNIHIK = 1258;
uint32 player_data_version = 1111;
StopServerInfo ECKNMCACJKG = 2021;
ResVersionConfig next_res_version_config = 1132;
}

View File

@ -1,10 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "PropValue.proto";
// 4.6.0
// CmdId: 26336
// 4.7.0
message PlayerPropNotify {
map<uint32, PropValue> prop_map = 9;
map<uint32, PropValue> prop_map = 13;
}

View File

@ -2,9 +2,7 @@ syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// CmdId: 853
// Version: 4.6.0
// Obfs: INJOCNKNOAP
// 4.7.0
message PlayerSetPauseReq {
bool is_paused = 1;
bool is_paused = 15;
}

View File

@ -1,13 +1,12 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "StoreType.proto";
import "Item.proto";
import "StoreType.proto";
// 4.6.0
// CmdId: 24402
// 4.7.0
message PlayerStoreNotify {
uint32 weight_limit = 3;
repeated Item item_list = 4;
StoreType store_type = 11;
repeated Item item_list = 2;
StoreType store_type = 6;
uint32 weight_limit = 15;
}

View File

@ -3,10 +3,10 @@ option java_package = "emu.grasscutter.net.proto";
import "MapLayerInfo.proto";
// 4.6.0
// 4.7.0
message PlayerWorldSceneInfo {
MapLayerInfo map_layer_info = 4;
bool is_locked = 7;
repeated uint32 scene_tag_id_list = 9;
uint32 scene_id = 13;
MapLayerInfo map_layer_info = 10;
uint32 scene_id = 12;
bool is_locked = 3;
repeated uint32 scene_tag_id_list = 6;
}

View File

@ -3,9 +3,7 @@ option java_package = "emu.grasscutter.net.proto";
import "PlayerWorldSceneInfo.proto";
// 4.6.0
// CmdId: 250
// 4.7.0
message PlayerWorldSceneInfoListNotify {
repeated PlayerWorldSceneInfo info_list = 14;
repeated uint32 unlocked_area_id_list = 132;
repeated PlayerWorldSceneInfo info_list = 14;
}

View File

@ -1,9 +1,7 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 1328
// 4.7.0
message PostEnterSceneReq {
uint32 enter_scene_token = 15;
double total_tick_time = 13;
uint32 enter_scene_token = 6;
}

View File

@ -1,9 +1,7 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 7716
// 4.7.0
message PostEnterSceneRsp {
uint32 enter_scene_token = 6;
//int32 retcode = ?;
uint32 enter_scene_token = 2;
}

View File

@ -1,12 +1,11 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 3342
// 4.7.0
message PrivateChatReq {
uint32 target_uid = 6;
oneof content {
string text = 10;
uint32 icon = 7;
uint32 target_uid = 15;
oneof content {
string text = 7;
uint32 icon = 4;
}
}

View File

@ -1,9 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 6717
// 4.7.0
message SceneInitFinishRsp {
uint32 enter_scene_token = 11;
//int32 retcode = ?;
uint32 enter_scene_token = 10;
int32 retcode = 1;
}

View File

@ -3,9 +3,8 @@ option java_package = "emu.grasscutter.net.proto";
import "SceneTeamAvatar.proto";
// 4.6.0
// CmdId: 28422
// 4.7.0
message SceneTeamUpdateNotify {
repeated SceneTeamAvatar scene_team_avatar_list = 5;
bool is_in_mp = 88; //tentativeID
repeated SceneTeamAvatar scene_team_avatar_list = 1;
bool is_in_mp = 4;
}

View File

@ -1,9 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 20814
// 4.7.0
message SceneTransToPointReq {
uint32 point_id = 1;
uint32 scene_id = 12;
uint32 point_id = 11;
uint32 scene_id = 13;
}

View File

@ -1,10 +1,9 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// CmdId: 24449
// 4.7.0
message ServerGlobalValueChangeNotify {
uint32 entity_id = 8;
uint32 key_hash = 10;
float value = 15;
float value = 6;
uint32 key_hash = 2;
uint32 entity_id = 14;
}

View File

@ -1,27 +1,11 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "WidgetSlotOp.proto";
import "WidgetSlotTag.proto";
// CmdId: 21852
// Obf: INPIBEBKEEA
import "WidgetSlotOp.proto";
// 4.7.0
message SetWidgetSlotReq {
uint32 material_id = 15;
WidgetSlotOp op = 2;
repeated WidgetSlotTag tag_list = 11;
repeated WidgetSlotTag tag_list = 6;
uint32 material_id = 7;
WidgetSlotOp op = 14;
}

View File

@ -1,28 +1,12 @@
// https://github.com/SlushinPS/beach-simulator
// Copyright (C) 2023 Slushy Team
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as
// published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
import "WidgetSlotTag.proto";
import "WidgetSlotOp.proto";
// CmdId: 21258
// Obf: LOLIHGGKHCF
// 4.7.0
message SetWidgetSlotRsp {
int32 retcode = 11;
repeated WidgetSlotTag tag_list = 12;
uint32 material_id = 4;
WidgetSlotOp op = 3;
repeated WidgetSlotTag tag_list = 8;
uint32 material_id = 3;
int32 retcode = 13;
WidgetSlotOp op = 5;
}

View File

@ -3,13 +3,12 @@ option java_package = "emu.grasscutter.net.proto";
import "StoreType.proto";
// 4.6.0
// CmdId: 28238
// 4.7.0
message StoreWeightLimitNotify {
uint32 weight_limit = 2;
uint32 reliquary_count_limit = 4;
StoreType store_type = 8;
uint32 material_count_limit = 9;//sus
uint32 weapon_count_limit = 11;//sus
uint32 furniture_count_limit = 15;//sus
uint32 weight_limit = 12;
uint32 furniture_count_limit = 10;
uint32 weapon_count_limit = 7;
uint32 reliquary_count_limit = 1;
uint32 material_count_limit = 4;
StoreType store_type = 15;
}

View File

@ -4,9 +4,9 @@ option java_package = "emu.grasscutter.net.proto";
import "AbilityControlBlock.proto";
import "AbilitySyncStateInfo.proto";
// 4.6.0
// 4.7.0
message TeamEnterSceneInfo {
AbilityControlBlock ability_control_block = 1;
uint32 team_entity_id = 6;
AbilitySyncStateInfo team_ability_info = 15;
AbilityControlBlock ability_control_block = 11;
AbilitySyncStateInfo team_ability_info = 4;
uint32 team_entity_id = 3;
}

View File

@ -1,8 +1,8 @@
syntax = "proto3";
option java_package = "emu.grasscutter.net.proto";
// 4.6.0
// 4.7.0
message UnionCmd {
bytes body = 12;
uint32 message_id = 14;
bytes body = 15;
uint32 message_id = 3;
}

View File

@ -3,8 +3,7 @@ option java_package = "emu.grasscutter.net.proto";
import "UnionCmd.proto";
// 4.6.0
// CmdId: 25659
// 4.7.0
message UnionCmdNotify {
repeated UnionCmd cmd_list = 6;
repeated UnionCmd cmd_list = 1;
}