diff --git a/gc_needed2.json b/gc_needed2.json new file mode 100644 index 00000000..9d2fa74e --- /dev/null +++ b/gc_needed2.json @@ -0,0 +1,1880 @@ +[ + { + "name": "VisionType" + }, + { + "name": "Route" + }, + { + "name": "RoutePoint" + }, + { + "name": "BattlePassMission" + }, + { + "name": "AbilityInvokeEntryHead" + }, + { + "name": "AbilityInvokeEntry" + }, + { + "name": "AbilityMetaModifierChange" + }, + { + "name": "AbilityMetaReInitOverrideMap" + }, + { + "name": "AbilityMixinCostStamina" + }, + { + "name": "AbilityScalarValueEntry" + }, + { + "name": "ModifierAction" + }, + { + "name": "ActivityInfo" + }, + { + "name": "MusicGameActivityDetailInfo" + }, + { + "name": "UgcMusicBriefInfo" + }, + { + "name": "MusicBeatmapList" + }, + { + "name": "MusicBeatmapNote" + }, + { + "name": "MusicBeatmap" + }, + { + "name": "MusicGameRecord" + }, + { + "name": "ActivityWatcherInfo" + }, + { + "name": "AvatarFetterInfo" + }, + { + "name": "AvatarInfo" + }, + { + "name": "AvatarSkillInfo" + }, + { + "name": "FetterData" + }, + { + "name": "ShowAvatarInfo" + }, + { + "name": "ShowEquip" + }, + { + "name": "BattlePassCycle" + }, + { + "name": "BattlePassRewardTakeOption" + }, + { + "name": "BattlePassSchedule" + }, + { + "name": "BattlePassUnlockStatus" + }, + { + "name": "BattlePassRewardTag" + }, + { + "name": "ChatInfo" + }, + { + "name": "Retcode" + }, + { + "name": "DailyTaskInfo" + }, + { + "name": "DungeonSettleNotify" + }, + { + "name": "ParamList" + }, + { + "name": "ItemParam" + }, + { + "name": "TowerLevelEndNotify" + }, + { + "name": "TrialAvatarFirstPassDungeonNotify" + }, + { + "name": "AbilityControlBlock" + }, + { + "name": "AbilityEmbryo" + }, + { + "name": "AbilitySyncStateInfo" + }, + { + "name": "AnimatorParameterValueInfoPair" + }, + { + "name": "ChangeEnergyReason" + }, + { + "name": "ChangeHpReason" + }, + { + "name": "EntityAuthorityInfo" + }, + { + "name": "EntityClientData" + }, + { + "name": "EntityRendererChangedInfo" + }, + { + "name": "PlayerDieType" + }, + { + "name": "PropChangeReason" + }, + { + "name": "PropPair" + }, + { + "name": "ProtEntityType" + }, + { + "name": "SceneAvatarInfo" + }, + { + "name": "SceneEntityAiInfo" + }, + { + "name": "SceneEntityInfo" + }, + { + "name": "Vector" + }, + { + "name": "ClientGadgetInfo" + }, + { + "name": "EvtCreateGadgetNotify" + }, + { + "name": "MotionInfo" + }, + { + "name": "SceneGadgetInfo" + }, + { + "name": "GadgetInteractReq" + }, + { + "name": "GadgetBornType" + }, + { + "name": "InteractType" + }, + { + "name": "MonsterBornType" + }, + { + "name": "SceneMonsterInfo" + }, + { + "name": "SceneWeaponInfo" + }, + { + "name": "VehicleInfo" + }, + { + "name": "VehicleMember" + }, + { + "name": "BossChestInfo" + }, + { + "name": "InterOpType" + }, + { + "name": "ResinCostType" + }, + { + "name": "GatherGadgetInfo" + }, + { + "name": "SelectWorktopOptionReq" + }, + { + "name": "WorktopInfo" + }, + { + "name": "FightPropPair" + }, + { + "name": "MotionState" + }, + { + "name": "AvatarExpeditionInfo" + }, + { + "name": "FriendBrief" + }, + { + "name": "FriendOnlineState" + }, + { + "name": "PlatformType" + }, + { + "name": "ProfilePicture" + }, + { + "name": "DealAddFriendResultType" + }, + { + "name": "GachaInfo" + }, + { + "name": "GachaUpInfo" + }, + { + "name": "GachaItem" + }, + { + "name": "GachaTransferItem" + }, + { + "name": "GetGachaInfoRsp" + }, + { + "name": "FurnitureMakeData" + }, + { + "name": "FurnitureMakeSlot" + }, + { + "name": "HomeAnimalData" + }, + { + "name": "HomeFurnitureData" + }, + { + "name": "HomeBlockArrangementInfo" + }, + { + "name": "HomeMarkPointFurnitureData" + }, + { + "name": "HomeNpcData" + }, + { + "name": "HomeSceneArrangementInfo" + }, + { + "name": "Equip" + }, + { + "name": "Furniture" + }, + { + "name": "ItemHint" + }, + { + "name": "Item" + }, + { + "name": "Material" + }, + { + "name": "Reliquary" + }, + { + "name": "SceneReliquaryInfo" + }, + { + "name": "Weapon" + }, + { + "name": "BlossomBriefInfo" + }, + { + "name": "CompoundQueueData" + }, + { + "name": "GetCompoundDataReq" + }, + { + "name": "PlayerCompoundMaterialReq" + }, + { + "name": "TakeCompoundOutputReq" + }, + { + "name": "CookRecipeData" + }, + { + "name": "PlayerCookArgsReq" + }, + { + "name": "PlayerCookReq" + }, + { + "name": "HitTreeNotify" + }, + { + "name": "AbilityActionGenerateElemBall" + }, + { + "name": "AbilityIdentifier" + }, + { + "name": "AttackResult" + }, + { + "name": "EvtBeingHitInfo" + }, + { + "name": "ForgeQueueData" + }, + { + "name": "ForgeQueueManipulateReq" + }, + { + "name": "ForgeQueueManipulateType" + }, + { + "name": "ForgeStartReq" + }, + { + "name": "MapMarkFromType" + }, + { + "name": "MapMarkPoint" + }, + { + "name": "MapMarkPointType" + }, + { + "name": "MarkMapReq" + }, + { + "name": "EntityMoveInfo" + }, + { + "name": "VehicleInteractType" + }, + { + "name": "ForwardType" + }, + { + "name": "CombatInvokeEntry" + }, + { + "name": "MpSettingType" + }, + { + "name": "OnlinePlayerInfo" + }, + { + "name": "PlayerApplyEnterMpResultNotify" + }, + { + "name": "PlayerLocationInfo" + }, + { + "name": "PlayerWorldLocationInfo" + }, + { + "name": "SocialDetail" + }, + { + "name": "SocialShowAvatarInfo" + }, + { + "name": "Birthday" + }, + { + "name": "ServerBuffChangeNotify" + }, + { + "name": "ServerBuff" + }, + { + "name": "AvatarTeam" + }, + { + "name": "EnterType" + }, + { + "name": "ChildQuest" + }, + { + "name": "ParentQuest" + }, + { + "name": "ChapterState" + }, + { + "name": "Quest" + }, + { + "name": "AnnounceData" + }, + { + "name": "MaterialInfo" + }, + { + "name": "PlayerApplyEnterMpReason" + }, + { + "name": "InvestigationMonster" + }, + { + "name": "PacketHead" + }, + { + "name": "ForceUpdateInfo" + }, + { + "name": "QueryCurrRegionHttpRsp" + }, + { + "name": "QueryRegionListHttpRsp" + }, + { + "name": "RegionInfo" + }, + { + "name": "RegionSimpleInfo" + }, + { + "name": "AbilityInvocationsNotify" + }, + { + "name": "ActivityTakeWatcherRewardReq" + }, + { + "name": "AddQuestContentProgressReq" + }, + { + "name": "AskAddFriendReq" + }, + { + "name": "AvatarChangeCostumeReq" + }, + { + "name": "AvatarChangeElementTypeReq" + }, + { + "name": "AvatarDieAnimationEndReq" + }, + { + "name": "AvatarExpeditionCallBackReq" + }, + { + "name": "AvatarExpeditionGetRewardReq" + }, + { + "name": "AvatarExpeditionStartReq" + }, + { + "name": "AvatarFetterLevelRewardReq" + }, + { + "name": "AvatarPromoteReq" + }, + { + "name": "AvatarSkillUpgradeReq" + }, + { + "name": "AvatarUpgradeReq" + }, + { + "name": "AvatarWearFlycloakReq" + }, + { + "name": "BuyBattlePassLevelReq" + }, + { + "name": "BuyGoodsReq" + }, + { + "name": "CalcWeaponUpgradeReturnItemsReq" + }, + { + "name": "ChangeAvatarReq" + }, + { + "name": "ChangeGameTimeReq" + }, + { + "name": "Unk2700BEDLIGJANCJClientReq" + }, + { + "name": "ChangeMailStarNotify" + }, + { + "name": "ChangeMpTeamAvatarReq" + }, + { + "name": "ChangeTeamNameReq" + }, + { + "name": "ChooseCurAvatarTeamReq" + }, + { + "name": "ClientAbilityInitFinishNotify" + }, + { + "name": "CombatInvocationsNotify" + }, + { + "name": "EvtAnimatorParameterInfo" + }, + { + "name": "CombineReq" + }, + { + "name": "CreateVehicleReq" + }, + { + "name": "DailyTaskFilterCityReq" + }, + { + "name": "DealAddFriendReq" + }, + { + "name": "DeleteFriendReq" + }, + { + "name": "DelMailReq" + }, + { + "name": "DestroyMaterialReq" + }, + { + "name": "DoGachaReq" + }, + { + "name": "DungeonEntryInfoReq" + }, + { + "name": "DungeonSlipRevivePointActivateReq" + }, + { + "name": "DungeonWayPointActivateReq" + }, + { + "name": "EnterWorldAreaReq" + }, + { + "name": "EntityAiSyncNotify" + }, + { + "name": "EvtAvatarLockChairReq" + }, + { + "name": "EvtAvatarSitDownNotify" + }, + { + "name": "EvtAvatarStandUpNotify" + }, + { + "name": "EvtDestroyGadgetNotify" + }, + { + "name": "EvtDoSkillSuccNotify" + }, + { + "name": "EvtEntityRenderersChangedNotify" + }, + { + "name": "FireWorkReq" + }, + { + "name": "FireworkSetReq" + }, + { + "name": "FurnitureMakeStartReq" + }, + { + "name": "GachaWishReq" + }, + { + "name": "GetActivityInfoReq" + }, + { + "name": "GetActivityShopSheetInfoReq" + }, + { + "name": "GetAllMailReq" + }, + { + "name": "GetDailyDungeonEntryInfoReq" + }, + { + "name": "GetFriendShowAvatarInfoReq" + }, + { + "name": "GetFriendShowNameCardInfoReq" + }, + { + "name": "GetInvestigationMonsterReq" + }, + { + "name": "GetMailItemReq" + }, + { + "name": "GetPlayerSocialDetailReq" + }, + { + "name": "GetPlayerTokenReq" + }, + { + "name": "GetSceneAreaReq" + }, + { + "name": "GetScenePointReq" + }, + { + "name": "GetShopReq" + }, + { + "name": "HomeChangeEditModeReq" + }, + { + "name": "HomeChooseModuleReq" + }, + { + "name": "HomeGetArrangementInfoReq" + }, + { + "name": "HomeSceneJumpReq" + }, + { + "name": "HomeUpdateArrangementInfoReq" + }, + { + "name": "McoinExchangeHcoinReq" + }, + { + "name": "MusicGameCreateBeatmapReq" + }, + { + "name": "MusicGameGetBeatmapReq" + }, + { + "name": "MusicGameSearchBeatmapReq" + }, + { + "name": "MusicGameSettleReq" + }, + { + "name": "MusicGameStartReq" + }, + { + "name": "MusicGameStartToPlayOthersBeatmapReq" + }, + { + "name": "NpcTalkReq" + }, + { + "name": "PersonalSceneJumpReq" + }, + { + "name": "PingReq" + }, + { + "name": "PlayerApplyEnterMpReq" + }, + { + "name": "PlayerApplyEnterMpResultReq" + }, + { + "name": "PlayerChatReq" + }, + { + "name": "PlayerEnterDungeonReq" + }, + { + "name": "PlayerLoginReq" + }, + { + "name": "PlayerSetPauseReq" + }, + { + "name": "PrivateChatReq" + }, + { + "name": "PullPrivateChatReq" + }, + { + "name": "QueryCodexMonsterBeKilledNumReq" + }, + { + "name": "QueryPathReq" + }, + { + "name": "QuestCreateEntityReq" + }, + { + "name": "QuestUpdateQuestVarReq" + }, + { + "name": "QuestVarOp" + }, + { + "name": "QuickUseWidgetRsp" + }, + { + "name": "ReadMailNotify" + }, + { + "name": "ReliquaryDecomposeReq" + }, + { + "name": "ReliquaryUpgradeReq" + }, + { + "name": "DelBackupAvatarTeamReq" + }, + { + "name": "SceneEntityDrownReq" + }, + { + "name": "SceneKickPlayerReq" + }, + { + "name": "SceneTransToPointReq" + }, + { + "name": "SetBattlePassViewedReq" + }, + { + "name": "SetChatEmojiCollectionReq" + }, + { + "name": "SetEntityClientDataNotify" + }, + { + "name": "SetEquipLockStateReq" + }, + { + "name": "SetFriendEnterHomeOptionReq" + }, + { + "name": "SetNameCardReq" + }, + { + "name": "SetOpenStateReq" + }, + { + "name": "SetPlayerBirthdayReq" + }, + { + "name": "SetPlayerBornDataReq" + }, + { + "name": "SetPlayerHeadImageReq" + }, + { + "name": "SetPlayerNameReq" + }, + { + "name": "PropValue" + }, + { + "name": "SetPlayerPropReq" + }, + { + "name": "SetPlayerSignatureReq" + }, + { + "name": "SetUpAvatarTeamReq" + }, + { + "name": "SetUpLunchBoxWidgetReq" + }, + { + "name": "SetWidgetSlotReq" + }, + { + "name": "WidgetSlotOp" + }, + { + "name": "WidgetSlotTag" + }, + { + "name": "TakeBattlePassMissionPointReq" + }, + { + "name": "TakeBattlePassRewardReq" + }, + { + "name": "TakeFurnitureMakeReq" + }, + { + "name": "TakeoffEquipReq" + }, + { + "name": "TakePlayerLevelRewardReq" + }, + { + "name": "TowerEnterLevelReq" + }, + { + "name": "TowerTeam" + }, + { + "name": "TowerTeamSelectReq" + }, + { + "name": "FriendEnterHomeOption" + }, + { + "name": "TryEnterHomeReq" + }, + { + "name": "UnionCmdNotify" + }, + { + "name": "UnionCmd" + }, + { + "name": "UnlockAvatarTalentReq" + }, + { + "name": "UnlockPersonalLineReq" + }, + { + "name": "UnlockTransPointReq" + }, + { + "name": "UpdateAbilityCreatedMovingPlatformNotify" + }, + { + "name": "UpdatePlayerShowAvatarListReq" + }, + { + "name": "UpdatePlayerShowNameCardListReq" + }, + { + "name": "UseItemReq" + }, + { + "name": "VehicleInteractReq" + }, + { + "name": "WeaponAwakenReq" + }, + { + "name": "WeaponPromoteReq" + }, + { + "name": "WeaponUpgradeReq" + }, + { + "name": "WearEquipReq" + }, + { + "name": "WidgetDoBagReq" + }, + { + "name": "WorldPlayerDieNotify" + }, + { + "name": "TakeCompoundOutputRsp" + }, + { + "name": "AbilityChangeNotify" + }, + { + "name": "ActivityInfoNotify" + }, + { + "name": "ActivityScheduleInfoNotify" + }, + { + "name": "ActivityScheduleInfo" + }, + { + "name": "ActivityTakeWatcherRewardRsp" + }, + { + "name": "ActivityUpdateWatcherNotify" + }, + { + "name": "AddBackupAvatarTeamRsp" + }, + { + "name": "AddQuestContentProgressRsp" + }, + { + "name": "AllWidgetDataNotify" + }, + { + "name": "LunchBoxData" + }, + { + "name": "WidgetSlotData" + }, + { + "name": "AskAddFriendNotify" + }, + { + "name": "AskAddFriendRsp" + }, + { + "name": "AvatarAddNotify" + }, + { + "name": "AvatarChangeCostumeNotify" + }, + { + "name": "AvatarChangeCostumeRsp" + }, + { + "name": "AvatarChangeElementTypeRsp" + }, + { + "name": "AvatarDataNotify" + }, + { + "name": "AvatarDieAnimationEndRsp" + }, + { + "name": "AvatarEquipChangeNotify" + }, + { + "name": "AvatarExpeditionAllDataRsp" + }, + { + "name": "AvatarExpeditionCallBackRsp" + }, + { + "name": "AvatarExpeditionDataNotify" + }, + { + "name": "AvatarExpeditionGetRewardRsp" + }, + { + "name": "AvatarExpeditionStartRsp" + }, + { + "name": "AvatarFetterDataNotify" + }, + { + "name": "AvatarFetterLevelRewardRsp" + }, + { + "name": "AvatarFightPropNotify" + }, + { + "name": "AvatarFightPropUpdateNotify" + }, + { + "name": "AvatarFlycloakChangeNotify" + }, + { + "name": "AvatarGainCostumeNotify" + }, + { + "name": "AvatarGainFlycloakNotify" + }, + { + "name": "AvatarLifeStateChangeNotify" + }, + { + "name": "AvatarPromoteRsp" + }, + { + "name": "AvatarPropNotify" + }, + { + "name": "AvatarSkillChangeNotify" + }, + { + "name": "AvatarSkillDepotChangeNotify" + }, + { + "name": "AvatarSkillInfoNotify" + }, + { + "name": "AvatarSkillMaxChargeCountNotify" + }, + { + "name": "AvatarSkillUpgradeRsp" + }, + { + "name": "AvatarTeamUpdateNotify" + }, + { + "name": "AvatarUnlockTalentNotify" + }, + { + "name": "AvatarUpgradeRsp" + }, + { + "name": "AvatarWearFlycloakRsp" + }, + { + "name": "BattlePassAllDataNotify" + }, + { + "name": "BattlePassCurScheduleUpdateNotify" + }, + { + "name": "BattlePassMissionUpdateNotify" + }, + { + "name": "BlossomBriefInfoNotify" + }, + { + "name": "BuyBattlePassLevelRsp" + }, + { + "name": "BuyGoodsRsp" + }, + { + "name": "ShopGoods" + }, + { + "name": "CalcWeaponUpgradeReturnItemsRsp" + }, + { + "name": "CanUseSkillNotify" + }, + { + "name": "CardProductRewardNotify" + }, + { + "name": "ChallengeDataNotify" + }, + { + "name": "ChangeAvatarRsp" + }, + { + "name": "ChangeGameTimeRsp" + }, + { + "name": "HomeChangeBgmNotify" + }, + { + "name": "HomeChangeBgmRsp" + }, + { + "name": "ChangeMpTeamAvatarRsp" + }, + { + "name": "ChangeTeamNameRsp" + }, + { + "name": "ChapterStateNotify" + }, + { + "name": "ChooseCurAvatarTeamRsp" + }, + { + "name": "CodexDataFullNotify" + }, + { + "name": "CodexTypeData" + }, + { + "name": "CodexDataUpdateNotify" + }, + { + "name": "CombineDataNotify" + }, + { + "name": "CombineFormulaDataNotify" + }, + { + "name": "CombineRsp" + }, + { + "name": "CompoundDataNotify" + }, + { + "name": "CookDataNotify" + }, + { + "name": "CookRecipeDataNotify" + }, + { + "name": "CreateVehicleRsp" + }, + { + "name": "AvatarTeamAllDataNotify" + }, + { + "name": "DailyTaskDataNotify" + }, + { + "name": "DailyTaskFilterCityRsp" + }, + { + "name": "DailyTaskProgressNotify" + }, + { + "name": "DailyTaskUnlockedCitiesNotify" + }, + { + "name": "DealAddFriendRsp" + }, + { + "name": "DeleteFriendNotify" + }, + { + "name": "DeleteFriendRsp" + }, + { + "name": "DelMailRsp" + }, + { + "name": "QuestDelNotify" + }, + { + "name": "DelTeamEntityNotify" + }, + { + "name": "DestroyMaterialRsp" + }, + { + "name": "DoGachaRsp" + }, + { + "name": "DungeonChallengeBeginNotify" + }, + { + "name": "DungeonChallengeFinishNotify" + }, + { + "name": "DungeonEntryInfo" + }, + { + "name": "DungeonEntryInfoRsp" + }, + { + "name": "DungeonShowReminderNotify" + }, + { + "name": "DungeonSlipRevivePointActivateRsp" + }, + { + "name": "DungeonWayPointActivateRsp" + }, + { + "name": "EnterSceneDoneRsp" + }, + { + "name": "EnterScenePeerNotify" + }, + { + "name": "EnterSceneReadyRsp" + }, + { + "name": "EnterWorldAreaRsp" + }, + { + "name": "AiSyncInfo" + }, + { + "name": "EntityFightPropChangeReasonNotify" + }, + { + "name": "EntityFightPropUpdateNotify" + }, + { + "name": "EvtAvatarLockChairRsp" + }, + { + "name": "FinishedParentQuestNotify" + }, + { + "name": "FinishedParentQuestUpdateNotify" + }, + { + "name": "FireWorkData" + }, + { + "name": "FireWorkNotify" + }, + { + "name": "FireworkSetData" + }, + { + "name": "FireworkSetNotify" + }, + { + "name": "ForgeDataNotify" + }, + { + "name": "ForgeFormulaDataNotify" + }, + { + "name": "ForgeGetQueueDataRsp" + }, + { + "name": "ForgeQueueDataNotify" + }, + { + "name": "ForgeQueueManipulateRsp" + }, + { + "name": "ForgeStartRsp" + }, + { + "name": "FurnitureCurModuleArrangeCountNotify" + }, + { + "name": "Uint32Pair" + }, + { + "name": "FurnitureMakeRsp" + }, + { + "name": "FurnitureMakeStartRsp" + }, + { + "name": "GachaWishRsp" + }, + { + "name": "GadgetAutoPickDropInfoNotify" + }, + { + "name": "GadgetInteractRsp" + }, + { + "name": "GadgetStateNotify" + }, + { + "name": "GetActivityInfoRsp" + }, + { + "name": "ActivityShopSheetInfo" + }, + { + "name": "GetActivityShopSheetInfoRsp" + }, + { + "name": "EquipParam" + }, + { + "name": "GetAllMailRsp" + }, + { + "name": "MailData" + }, + { + "name": "MailItem" + }, + { + "name": "MailTextContent" + }, + { + "name": "GetAllUnlockNameCardRsp" + }, + { + "name": "GetAuthkeyRsp" + }, + { + "name": "ChatEmojiCollectionData" + }, + { + "name": "GetChatEmojiCollectionRsp" + }, + { + "name": "GetCompoundDataRsp" + }, + { + "name": "DailyDungeonEntryInfo" + }, + { + "name": "GetDailyDungeonEntryInfoRsp" + }, + { + "name": "GetFriendShowAvatarInfoRsp" + }, + { + "name": "GetFriendShowNameCardInfoRsp" + }, + { + "name": "GetInvestigationMonsterRsp" + }, + { + "name": "GetMailItemRsp" + }, + { + "name": "GetOnlinePlayerListReq" + }, + { + "name": "GetOnlinePlayerListRsp" + }, + { + "name": "GetPlayerAskFriendListRsp" + }, + { + "name": "GetPlayerFriendListRsp" + }, + { + "name": "GetPlayerSocialDetailRsp" + }, + { + "name": "GetPlayerTokenRsp" + }, + { + "name": "CityInfo" + }, + { + "name": "GetSceneAreaRsp" + }, + { + "name": "GetScenePointRsp" + }, + { + "name": "GetShopmallDataRsp" + }, + { + "name": "GetShopRsp" + }, + { + "name": "Shop" + }, + { + "name": "GetWidgetSlotRsp" + }, + { + "name": "GetWorldMpInfoRsp" + }, + { + "name": "GroupSuiteNotify" + }, + { + "name": "GroupUnloadNotify" + }, + { + "name": "H5ActivityIdsNotify" + }, + { + "name": "HomeBasicInfoNotify" + }, + { + "name": "HomeBasicInfo" + }, + { + "name": "HomeChangeEditModeRsp" + }, + { + "name": "HomeChooseModuleRsp" + }, + { + "name": "HomeComfortInfoNotify" + }, + { + "name": "HomeModuleComfortInfo" + }, + { + "name": "HomeGetArrangementInfoRsp" + }, + { + "name": "HomeMarkPointNotify" + }, + { + "name": "HomeMarkPointSceneData" + }, + { + "name": "HomeSceneInitFinishReq" + }, + { + "name": "HomeSceneJumpRsp" + }, + { + "name": "HomeUnknown1Notify" + }, + { + "name": "HostPlayerNotify" + }, + { + "name": "ItemAddHintNotify" + }, + { + "name": "LifeStateChangeNotify" + }, + { + "name": "McoinExchangeHcoinRsp" + }, + { + "name": "MusicGameCreateBeatmapRsp" + }, + { + "name": "MusicGameUnknown1Enum" + }, + { + "name": "MusicBriefInfo" + }, + { + "name": "MusicGameGetBeatmapRsp" + }, + { + "name": "MusicGameSearchBeatmapRsp" + }, + { + "name": "MusicGameSettleRsp" + }, + { + "name": "MusicGameStartRsp" + }, + { + "name": "MusicGameStartToPlayOthersBeatmapRsp" + }, + { + "name": "NpcTalkRsp" + }, + { + "name": "OpenStateChangeNotify" + }, + { + "name": "OpenStateUpdateNotify" + }, + { + "name": "PersonalLineAllDataRsp" + }, + { + "name": "PersonalSceneJumpRsp" + }, + { + "name": "PingRsp" + }, + { + "name": "PlatformStartRouteNotify" + }, + { + "name": "PlatformStopRouteNotify" + }, + { + "name": "PlayerApplyEnterMpNotify" + }, + { + "name": "PlayerApplyEnterMpResultRsp" + }, + { + "name": "PlayerApplyEnterMpRsp" + }, + { + "name": "PlayerChatNotify" + }, + { + "name": "SystemHint" + }, + { + "name": "PlayerChatRsp" + }, + { + "name": "PlayerCompoundMaterialRsp" + }, + { + "name": "PlayerCookArgsRsp" + }, + { + "name": "PlayerCookRsp" + }, + { + "name": "PlayerDataNotify" + }, + { + "name": "PlayerEnterDungeonRsp" + }, + { + "name": "AvatarEnterSceneInfo" + }, + { + "name": "MPLevelEntityInfo" + }, + { + "name": "PlayerEnterSceneInfoNotify" + }, + { + "name": "TeamEnterSceneInfo" + }, + { + "name": "PlayerEnterSceneNotify" + }, + { + "name": "PlayerGameTimeNotify" + }, + { + "name": "PlayerGetForceQuitBanInfoRsp" + }, + { + "name": "PlayerHomeCompInfoNotify" + }, + { + "name": "PlayerHomeCompInfo" + }, + { + "name": "PlayerLevelRewardUpdateNotify" + }, + { + "name": "PlayerLoginRsp" + }, + { + "name": "PlayerPropChangeNotify" + }, + { + "name": "PlayerPropChangeReasonNotify" + }, + { + "name": "PlayerPropNotify" + }, + { + "name": "PlayerStoreNotify" + }, + { + "name": "StoreType" + }, + { + "name": "PlayerTimeNotify" + }, + { + "name": "PlayerWorldSceneInfoListNotify" + }, + { + "name": "PlayerWorldSceneInfo" + }, + { + "name": "PostEnterSceneRsp" + }, + { + "name": "PrivateChatNotify" + }, + { + "name": "ProudSkillChangeNotify" + }, + { + "name": "ProudSkillExtraLevelNotify" + }, + { + "name": "PullPrivateChatRsp" + }, + { + "name": "PullRecentChatRsp" + }, + { + "name": "QueryCodexMonsterBeKilledNumRsp" + }, + { + "name": "QueryPathRsp" + }, + { + "name": "CreateEntityInfo" + }, + { + "name": "QuestCreateEntityRsp" + }, + { + "name": "QuestListNotify" + }, + { + "name": "QuestListUpdateNotify" + }, + { + "name": "QuestProgressUpdateNotify" + }, + { + "name": "QuestUpdateQuestVarRsp" + }, + { + "name": "ReliquaryDecomposeRsp" + }, + { + "name": "ReliquaryUpgradeRsp" + }, + { + "name": "DelBackupAvatarTeamRsp" + }, + { + "name": "ResinChangeNotify" + }, + { + "name": "SceneAreaUnlockNotify" + }, + { + "name": "SceneAreaWeatherNotify" + }, + { + "name": "SceneEntityAppearNotify" + }, + { + "name": "SceneEntityDisappearNotify" + }, + { + "name": "SceneEntityDrownRsp" + }, + { + "name": "SceneEntityMoveNotify" + }, + { + "name": "SceneInitFinishRsp" + }, + { + "name": "SceneKickPlayerRsp" + }, + { + "name": "ScenePlayerInfoNotify" + }, + { + "name": "ScenePlayerInfo" + }, + { + "name": "ScenePlayerLocationNotify" + }, + { + "name": "ScenePointUnlockNotify" + }, + { + "name": "SceneTeamAvatar" + }, + { + "name": "SceneTeamUpdateNotify" + }, + { + "name": "SceneTimeNotify" + }, + { + "name": "SceneTransToPointRsp" + }, + { + "name": "SelectWorktopOptionRsp" + }, + { + "name": "ServerAnnounceNotify" + }, + { + "name": "ServerAnnounceRevokeNotify" + }, + { + "name": "ServerCondMeetQuestListUpdateNotify" + }, + { + "name": "ServerTimeNotify" + }, + { + "name": "SetBattlePassViewedRsp" + }, + { + "name": "SetEquipLockStateRsp" + }, + { + "name": "SetNameCardRsp" + }, + { + "name": "SetOpenStateRsp" + }, + { + "name": "SetPlayerBirthdayRsp" + }, + { + "name": "SetPlayerHeadImageRsp" + }, + { + "name": "SetPlayerNameRsp" + }, + { + "name": "SetPlayerPropRsp" + }, + { + "name": "SetPlayerSignatureRsp" + }, + { + "name": "SetUpAvatarTeamRsp" + }, + { + "name": "SetUpLunchBoxWidgetRsp" + }, + { + "name": "SetWidgetSlotRsp" + }, + { + "name": "StoreItemChangeNotify" + }, + { + "name": "StoreItemDelNotify" + }, + { + "name": "StoreWeightLimitNotify" + }, + { + "name": "SyncScenePlayTeamEntityNotify" + }, + { + "name": "SyncTeamEntityNotify" + }, + { + "name": "TeamEntityInfo" + }, + { + "name": "AchievementInfo" + }, + { + "name": "TakeAchievementRewardReq" + }, + { + "name": "TakeBattlePassMissionPointRsp" + }, + { + "name": "TakeBattlePassRewardRsp" + }, + { + "name": "TakeFurnitureMakeRsp" + }, + { + "name": "TakeoffEquipRsp" + }, + { + "name": "TakePlayerLevelRewardRsp" + }, + { + "name": "TowerAllDataRsp" + }, + { + "name": "TowerCurLevelRecord" + }, + { + "name": "TowerFloorRecord" + }, + { + "name": "TowerLevelRecord" + }, + { + "name": "TowerCurLevelRecordChangeNotify" + }, + { + "name": "TowerEnterLevelRsp" + }, + { + "name": "TowerFloorRecordChangeNotify" + }, + { + "name": "TowerLevelStarCondData" + }, + { + "name": "TowerLevelStarCondNotify" + }, + { + "name": "TowerMiddleLevelChangeTeamNotify" + }, + { + "name": "TowerTeamSelectRsp" + }, + { + "name": "TryEnterHomeRsp" + }, + { + "name": "UnlockAvatarTalentRsp" + }, + { + "name": "UnlockedFurnitureFormulaDataNotify" + }, + { + "name": "UnlockedFurnitureSuiteDataNotify" + }, + { + "name": "HomeAllUnlockedBgmIdListNotify" + }, + { + "name": "HomeNewUnlockedBgmIdListNotify" + }, + { + "name": "UnlockNameCardNotify" + }, + { + "name": "UnlockPersonalLineRsp" + }, + { + "name": "UnlockTransPointRsp" + }, + { + "name": "UpdatePlayerShowAvatarListRsp" + }, + { + "name": "UpdatePlayerShowNameCardListRsp" + }, + { + "name": "UseItemRsp" + }, + { + "name": "VehicleInteractRsp" + }, + { + "name": "VehicleStaminaNotify" + }, + { + "name": "WeaponAwakenRsp" + }, + { + "name": "WeaponPromoteRsp" + }, + { + "name": "WeaponUpgradeRsp" + }, + { + "name": "WearEquipRsp" + }, + { + "name": "WidgetCoolDownData" + }, + { + "name": "WidgetCoolDownNotify" + }, + { + "name": "WidgetDoBagRsp" + }, + { + "name": "WidgetGadgetAllDataNotify" + }, + { + "name": "WidgetGadgetDataNotify" + }, + { + "name": "WidgetGadgetData" + }, + { + "name": "WidgetSlotChangeNotify" + }, + { + "name": "WorktopOptionNotify" + }, + { + "name": "WorldDataNotify" + }, + { + "name": "WorldOwnerDailyTaskNotify" + }, + { + "name": "WorldPlayerInfoNotify" + }, + { + "name": "WorldPlayerLocationNotify" + }, + { + "name": "WorldPlayerReviveRsp" + }, + { + "name": "PlayerRTTInfo" + }, + { + "name": "WorldPlayerRTTNotify" + } +] \ No newline at end of file diff --git a/op.js b/op.js index f399631a..651e7226 100644 --- a/op.js +++ b/op.js @@ -9,7 +9,9 @@ const read_cmdid_output = "cmdid.json"; const read_cmdid_output_gc = "cmdid_gc.json"; const read_cmdid_output_gc_update = "cmdid_gc_update.json"; const read_cmdid_output_gc_nofound = "cmdid_gc_nofound.json"; + const file_gc_needed = "gc_needed.json"; +const file_gc_needed2 = "gc_needed2.json"; const write_op = "PacketOpcodes.java"; @@ -19,6 +21,7 @@ console.log(process.cwd()); // folder gc auto-generated proto const folder_proto_gc_gen = "../Grasscutter-Yuuki/src/generated/main/java/emu/grasscutter/net/proto/"; + // file PacketOpcodes currently in use const read_cmdid_gc = "../Grasscutter-Yuuki/src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java"; @@ -26,6 +29,8 @@ const read_cmdid_gc = const folder_packet_gc = "../Grasscutter-Yuuki/src/main/java/emu/grasscutter/server/packet/"; +const folder_gc_scan = "../Grasscutter-Yuuki/src/main/java/emu/grasscutter/"; + //const read_cmdid = fs.readFileSync("cmdid.csv"); //const read_packetopcodes = fs.readFileSync("PacketOpcodes.java"); @@ -366,7 +371,7 @@ function fix_packet(saveit = false) { //return; index_file_packet++; }); - save_json(file_gc_need, file_gc_needed); + save_json(file_gc_need, file_gc_needed); // This only applies to PacketOpcodes console.log( "Index file: " + index_file_packet + @@ -416,6 +421,8 @@ function getPacketOpcodes(raw) { return name; } +// C:\Users\Administrator\Desktop\Projek\Docker\GS\gs\Grasscutter-Yuuki\src\main\java\emu\grasscutter + var file_toclean = []; var file_toaddmore = []; var found_noclean = 0; @@ -426,10 +433,12 @@ function clean_proto_gen() { const files = getAllFiles("./proto"); const json_gc_needed = read_json(file_gc_needed); + const json_gc_needed2 = read_json(file_gc_needed2); + const json_gc_now = read_json(read_cmdid_output_gc); const json_gc_update = read_json(read_cmdid_output_gc_update); - //console.log(json_gc_needed); + //AbilityInvokeArgument console.log( "File proto: " + files.length + " | Need " + json_gc_needed.length ); @@ -438,66 +447,72 @@ function clean_proto_gen() { // find all file import files.forEach(function (file) { - var found = json_gc_needed.find((j) => file.match(j.name)); - if (found) { - // read file - const read = fs.readFileSync(file); - var rd = read.toString(); - // find import - while ((m = regex.exec(rd)) !== null) { - // This is necessary to avoid infinite loops with zero-width matches - if (m.index === regex.lastIndex) { - regex.lastIndex++; - } - // The result can be accessed through the `m`-variable. - m.forEach((match, groupIndex) => { - // only index 1 grup - if (groupIndex == 1) { - var found_rt = file_toaddmore.find((j) => j.name === match); - if (found_rt) { - //found_maybe_related++; - //console.log(`Skip ${match}`); - } else { - var subdata = new Object(); - subdata["name"] = match; - file_toaddmore.push(subdata); - found_maybe_related++; - } - } - }); + // read file + const read = fs.readFileSync(file); + var rd = read.toString(); + + // find import + while ((m = regex.exec(rd)) !== null) { + // This is necessary to avoid infinite loops with zero-width matches + if (m.index === regex.lastIndex) { + regex.lastIndex++; } + // The result can be accessed through the `m`-variable. + m.forEach((match, groupIndex) => { + // only index 1 grup + if (groupIndex == 1) { + var found_rt = file_toaddmore.find((j) => j.name === match); + if (found_rt) { + //console.log(`Skip ${match}`); + } else { + var subdata = new Object(); + subdata["name"] = match; + file_toaddmore.push(subdata); + } + } + }); } }); - // all + // last try files.forEach(function (file) { var todoremove = false; + // main file var found = json_gc_needed.find((j) => file.match(j.name)); if (found) { - found_noclean++; + // skip } else { - var found1 = file_toaddmore.find((j) => file.match(j.name)); + var found1 = file_toaddmore.find((j) => file.match(j.name)); // find import if (found1) { - found_noclean++; + // skip //console.log("Files sub are required: "+file); + found_maybe_related++; } else { - found_needclean++; if (file.match("Retcode")) { console.log("found"); } else { - todoremove = true; + var found2 = json_gc_needed2.find((j) => file.match(j.name)); // find miss scan + if (found2) { + // skip + found_maybe_related++; + } else { + todoremove = true; + } } } } if (todoremove) { + found_needclean++; try { fs.unlinkSync(file); //file removed } catch (err) { console.error(err); } + } else { + found_noclean++; } }); @@ -513,6 +528,55 @@ function clean_proto_gen() { ); } +var g_todump = []; +function scan_gc() { + const files = getAllFiles(folder_gc_scan); + + console.log("index file: " + files.length); + + const regex = /import emu.grasscutter.net.proto.(.*?);/g; + + files.forEach(function (file) { + // read file + const read = fs.readFileSync(file); + var rd = read.toString(); + // find import + while ((m = regex.exec(rd)) !== null) { + // This is necessary to avoid infinite loops with zero-width matches + if (m.index === regex.lastIndex) { + regex.lastIndex++; + } + // The result can be accessed through the `m`-variable. + m.forEach((match, groupIndex) => { + // only index 1 grup + if (groupIndex == 1) { + if (match === "*") { + return; + } + if (match.match(".")) { + match = match.split(".")[0]; + } + match = match.replace("OuterClass", ""); + var found_rt = g_todump.find((j) => j.name === match); + if (found_rt) { + //found_maybe_related++; + //console.log(`Skip ${match}`); + } else { + var subdata = new Object(); + subdata["name"] = match; + g_todump.push(subdata); + } + } + }); + } + }); + + save_json(g_todump, file_gc_needed2); // This only applies to PacketOpcodes + + //console.log(g_todump); +} + +//scan_gc(); clean_proto_gen(); //fix_packet(false); //cmdid_to_op();