Compare commits

..

537 Commits

  • Fix issues with regions (#2177)
    Luckily, SceneRegion and TriggerExcelConfigData both have group numbers, so we can use those to differentiate regions!
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/game/ability/actions/ActionAvatarSkillStart.java
    #	src/main/java/emu/grasscutter/game/entity/EntityAvatar.java
  • Quick fix for questing, needs more investigation
    This would make the questing work again
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/game/entity/EntityWeapon.java
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/auth/DefaultAuthenticators.java
    #	src/main/java/emu/grasscutter/game/ability/AbilityManager.java
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/server/http/documentation/HandbookHandler.java
  • Implement a proper ability system (#2166)
    * Apply fix `21dec2fe`
    
    * Apply fix `89d01d5f`
    
    * Apply fix `d900f154`
    
    this one was already implemented; updated to use call from previous commit
    
    * Ability changing commit
    
    TODO: change info to debug
    
    * Remove use of deprecated methods/fields
    
    * Temp commit v2
    (Adding LoseHP and some fixes)
    
    * Oopsie
    
    * Probably fix monster battle
    
    * Fix issue with reflecting into fields
    
    * Fix some things
    
    * Fix ability names for 3.6 resources
    
    * Improve logging
    
    ---------
    
    Co-authored-by: StartForKiller <jesussanz2003@gmail.com>
  • Fully fix fairy clock for real this time (#2167)
    * Fully fix fairy clock For real this time
    
    * Make it so relogging keeps the time lock state.
    
    * Refactor out questLockTime
    
    * Per Hartie, the client packet needs to be changed too
    
    * Update src/main/java/emu/grasscutter/game/world/World.java
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
    
    * Update src/main/java/emu/grasscutter/server/packet/recv/HandlerClientLockGameTimeNotify.java
    
    * Remove all code not needed to get clock working
    
    ---------
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/data/excels/MonsterSpecialNameData.java
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/data/GameData.java
    #	src/main/java/emu/grasscutter/data/excels/monster/MonsterData.java
    #	src/main/java/emu/grasscutter/data/excels/monster/MonsterDescribeData.java
    #	src/main/java/emu/grasscutter/game/entity/EntityMonster.java
  • Implement some lua variables for less console spam (#2172)
    * Implement some lua variables for less console spam
    
    * Add GetHostQuestState
    
    This fixes some chapter 3 stuff.
  • Implement fetching a player across servers & Add a chainable JsonObject
    useful for plugins! might be used in grasscutter eventually
  • Fix protocol definitions
    thank you Nazrin! (+ hiro for raw definitions)
  • Add initial startup message
    this is so the server appears like its preparing to start
  • Partially fix Chasing Shadows (#2159)
    * Partially fix Chasing Shadows
    
    * Go ahead and move it before the return before Magix tells me to.
  • fix NPC talk triggering main quest in 46101 (#2158)
    Make it so that only talks where the param matches the talkId are checked.
  • Remove banned packets
    client modifications already perform the job of blocking malicious packets from being executed, no point in having this if self-windy is wanted
  • Add/fix colors
    also fix tailwind
  • format imports
    this is really just to see if build handbook works kek
  • Gm handbook lmao (#2149)
    * Fix font issue
    
    * Fix avatars
    
    * Fix text overflow in commands
    
    * Fix virtualized lists and items page 😭😭
    
    * magix why 💀
    
    * use hover style in all minicards
    
    * button
    
    * remove console.log
    
    * lint
    
    * Add icons
    
    * magix asked
    
    * Fix overflow padding issue
    
    * Fix achievement text overflow
    
    * remove icons from repo
    
    * Change command icon
    
    * Add the wiki page as a submodule
    
    * total magix moment
    
    * fix text overflow in commands
    
    * Fix discord button
    
    * Make text scale on Minicard
    
    * import icons and font from another source
    
    * Add hover effects to siebar buttons
    
    * move font and readme to submodule repo
    
    * Make data folder a submodule
    
    * import icons and font from data submodule
    
    * Update README.md
    
    * total magix moment
    
    * magix moment v2
    
    * submodule change
    
    * Import `.webp` files
    
    * Resize `HomeButton`
    
    * Fix 'Copy Command' reappearing after changing pages
    
    ---------
    
    Co-authored-by: KingRainbow44 <kobedo11@gmail.com>
  • Separate the dispatch and game servers (pt. 3)
    implement handbook across servers!
  • Separate the dispatch and game servers (pt. 2)
    this commit fixes the gacha page
  • Separate the dispatch and game servers (pt. 1)
    gacha is still broken, handbook still needs to be done
  • Update translation (#2150)
    * Update translation
    
    * Update translation
  • Implement handbook teleporting
    also a few formatting changes and sort data by logical sense
  • unload scene when there are no players (#2147)
    * unload scene when there are no players
    
    * Update src/main/java/emu/grasscutter/game/world/Scene.java
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/game/talk/TalkManager.java
  • Fully fix fairy clock (#2146)
    * Fix scene transition
    
    * fully fix fairy clock
  • Merge pull request #2107 from Grasscutters/unstable-quests
    Merge `unstable-quests` into `unstable`
  • Remove setting the dungeon ID
    dungeon ID and dungeon enter will break things
  • Merge branch 'unstable' into unstable-quests
    # Conflicts:
    #	.gitignore
    #	src/generated/main/java/emu/grasscutter/net/proto/ABJDNCBDEKIOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AKFPAANICKGOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityActionGenerateElemBallOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAppliedAbilityOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAppliedModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAttachedModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityControlBlockOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityEmbryoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityIdentifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeEntryHeadOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaAddAbilityOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaModifierChangeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaModifierDurabilityChangeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaReInitOverrideMapOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMixinRecoverInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityScalarTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityScalarValueEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityStringOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilitySyncStateInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityPushTipsDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityPushTipsStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityShopSheetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddBackupAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddBackupAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddNoGachaAvatarCardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddNoGachaAvatarCardTransferItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AdjustTrackingInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiSkillCdInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiSyncInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiThreatInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AkaFesDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnimatorParameterValueInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnimatorParameterValueInfoPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AntiAddictNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ArenaChallengeActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ArenaChallengeMonsterLevelOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterLargeDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterLittleDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterLittleStageStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterMidCampInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterMidDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AsterProgressDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AttackHitEffectResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AttackResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEnterSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipAffixInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipAffixStartNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExcelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFollowRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarRenameInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarRenameInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSatiationDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSatiationDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamResonanceInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BEAMFIKPMLEOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BackMyWorldRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BartenderActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BartenderLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BartenderTaskInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BatchBuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BatchBuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTakeOptionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassUnlockStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BirthdayOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlessingActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlitzRushActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlitzRushStageOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlockInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomChestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusOpActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BossChestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BounceConjuringActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BounceConjuringChapterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutActionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutBrickInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutElementReactionCounterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutPhysicalObjectModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutPhysicalObjectOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSnapShotOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSpawnPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSyncConnectUidInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutVector2OuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BrickBreakerActivityStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BrickBreakerDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BrickBreakerLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuoyantCombatDailyInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuoyantCombatDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyResinReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyResinRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CFFFGFFKINKOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CKMJBOGJFMBOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CancelFinishParentQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeFinishTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeEnergyReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeHpReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannelerSlabActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannelerSlabCampOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannelerSlabChallengeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannelerSlabChallengeStageOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannelerSlabOneoffDungeonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabAssistInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabBuffInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabBuffSchemeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabLoopDungeonInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabLoopDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabLoopDungeonStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChapterStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CharAmusementAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CharAmusementDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CharAmusementStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChatEmojiCollectionDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChatInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckUgcStateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckUgcStateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckUgcUpdateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckUgcUpdateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChessActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChildQuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CityReputationQuestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAIStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientInputTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientLoadingCostumeVerificationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientLockGameTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CloseCommonTipsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClosedItemNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexTypeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectOperatorInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectTeamAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectTeamInfoDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundBoostTakeStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundQueueDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoopCgOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoopChapterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoopPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoopRewardOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrucibleActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrucibleBattleUidInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkBuffInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkDungeonAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkDungeonSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkTeamInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CurVehicleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomCommonNodeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomDungeonFinishTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomGadgetTreeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CutSceneExtraParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DKFDACEPNALOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyDungeonEntryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskFilterCityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskFilterCityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskProgressNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskUnlockedCitiesNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DataResVersionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendResultTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelBackupAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelBackupAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeliveryActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeshretObeliskGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DigActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DigMarkPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoSetPlayerBornDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DragonSpineActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DragonSpineChapterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DuelHeartDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DuelHeartLevelDifficultyInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DuelHeartLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonCandidateTeamChangeAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonCandidateTeamChangeAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEnterPosInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryPointInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonPlayerDieNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonPlayerDieReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonPlayerDieRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleExhibitionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSlipRevivePointActivateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSlipRevivePointActivateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointActivateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointActivateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EchoShellDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EchoShellInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyChallengeDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyChallengeV2DetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyChallengeV2LevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyChallengeV2SettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyDailyInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ElectroherculesBattleDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ElectroherculesBattleLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ElectroherculesBattleStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EndCameraSceneLookNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTrialAvatarActivityDungeonReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTrialAvatarActivityDungeonRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAbilityInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAuthorityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityClientDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityClientExtraInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityEnvironmentInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityMoveInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityRendererChangedInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipRoguelikeRuneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipRoguelikeRuneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAnimatorParameterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExecuteGadgetLuaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExecuteGadgetLuaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExhibitionDisplayInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExitTransPointRegionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExpeditionActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExpeditionChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExpeditionPathInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExpeditionStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FEEHAOJCNCGOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FeatureBlockInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FetterDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FightPropPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlAcceptQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlDayContentInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlFinishSecondQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FishPoolInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FishtankFishInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairBalloonInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairChapterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairDungeonSectionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairFallInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMinigameInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameSettleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameSettleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2DetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2MusicGameInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2PacmanInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2PhotoInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2PhotoPosDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairV2StageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FlightActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FlightDailyRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForceUpdateInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForwardTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FoundationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FoundationStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendEnterHomeOptionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendOnlineStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusFighterDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusFighterMonsterDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusFighterV2DetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusFighterV2LevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusFighterV2SettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusPlotStageDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusTrainingDungeonDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusTrainingMonsterPreviewDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusTrainingPoolPreviewDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FungusTrainingProgressDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeBeHelpedDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeBeHelpedNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeCancelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeCancelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeMakeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeSlotOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GCGFestivalDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GCGTCTavernChallengeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GCGTCTavernChallengeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaOpenWishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaTransferItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaUpInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetBornTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetCrucibleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetGeneralRewardInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetPlayInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GalleryStopReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationElementReliquaryRequestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationElementReliquaryResponseOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryMainPropDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryRequestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryResponseOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GatherGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GearActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GearLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityShopSheetInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityShopSheetInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllH5ActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllH5ActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailResultNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetBlossomBriefInfoListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetBlossomBriefInfoListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetChatEmojiCollectionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetChatEmojiCollectionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetCompoundDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetCompoundDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowNameCardInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowNameCardInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetHomeExchangeWoodInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetHomeLevelUpRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetHomeLevelUpRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMapAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOpActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOpActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetParentQuestVideoKeyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetParentQuestVideoKeyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestLackingResourceReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestLackingResourceRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestTalkHistoryReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestTalkHistoryRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetRegionSearchReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcBriefInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcBriefInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceCampInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceCampStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceCarveInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceCarveStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocencePhotoInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocencePhotoObjectInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocencePhotoStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceRaceInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GravenInnocenceRaceLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/H5ActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HDOMFAKCLHGOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HOKJIFJPJLBOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HachiActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HachiStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HideAndSeekActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HideAndSeekMapInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitColliderTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitCollisionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeAllUnlockedBgmIdListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeAnimalDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockArrangementInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockDotPatternOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockFieldDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockSubFieldDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeModuleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeModuleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeCustomFurnitureInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeCustomFurnitureInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEditCustomFurnitureReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEditCustomFurnitureRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEnterEditModeFinishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEnterEditModeFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureCustomSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureGroupDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetOnlineStatusReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetOnlineStatusRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGroupPlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopBuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopBuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointFurnitureDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNPCDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointSceneDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleComfortInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleSeenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleSeenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeNewUnlockedBgmIdListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeNpcDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomePlantFieldStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomePreChangeEditModeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeFetterExpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeFetterExpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeHomeCoinReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeHomeCoinRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneArrangementInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureAllRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureGalleryScoreNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureOneRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurniturePlayerScoreOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InferencePageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InfernceWordInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayDungeonSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayTeamInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InterOpTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationMonsterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationMonsterUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationQuestDailyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationReadQuestDailyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationTargetOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEntranceDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEntranceInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEquipCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEquipCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessMapDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessMonsterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriFlowerDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriMasterLevelDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriMasterLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriPoetryDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriPoetryThemeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IslandPartyDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IslandPartyStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemCdGroupTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemHintOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemRenameAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemRenameAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/JAAACKLMLHIOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/JILBANAJEEFOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/JKFJFNMCNDNOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/JNMLLBGCBOBOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/JigsawPictureDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LCMFDAHJIBKOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LLBFJGELKIBOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternProjectionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternProjectionLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LevelupCityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LuminanceStoneChallengeActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteAreaInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteHintPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteHintPointTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteHintStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunchBoxDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MPLevelEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailCollectStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapAreaInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkFromTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkPointTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkTargetInvestigationMonsterNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MassivePropParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MassivePropSyncInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteReturnNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteReturnTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MathQuaternionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MichiaeMatsuriActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MichiaeMatsuriChallengePositionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MichiaeMatsuriChestPositionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MichiaeMatsuriStageOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MiracleRingDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MiracleRingDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MistTrialActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MistTrialBestAvatarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MistTrialLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierActionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierDurabilityOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierPropertyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterAIConfigHashNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterBornTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterPointArrayRouteUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterRouteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MoonfinTrialActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MoonfinTrialLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MotionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MotionStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MovingPlatformTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MpPlayRewardInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MpSettingTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MuqadasPotionActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MuqadasPotionDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MuqadasPotionLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NightCrowGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ObstacleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ObstacleModifyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OfferingInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OfficialCustomDungeonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OneoffGatherPointDetectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OnlinePlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PGHIDDKHGALOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PIHDFMDILLFOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PSPlayerApplyEnterMpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PSPlayerApplyEnterMpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PacmanSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParamListOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestInferenceDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestRandomInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParkourLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PathfindingEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PathfindingEnterSceneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PhotoActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PhotoPosDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlantFlowerActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformChangeRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformStartRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformStopRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayTeamEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialBoostReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialBoostRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerDieTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerForceExitRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerInvestigationAllInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerInvestigationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerInvestigationTargetNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerRTTInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWidgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProfilePictureChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProfilePictureOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropChangeReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropValueOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProtEntityTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCurrRegionHttpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryFilterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryRegionListHttpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestCreateEntityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestCreateEntityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyEntityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyEntityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyNpcReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyNpcRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestRenameAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestRenameAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestTransmitReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestTransmitRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestTimeVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestVarOpOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReadPrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReceivedTrialAvatarActivityRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReceivedTrialAvatarActivityRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RecordUsageOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RegionSimpleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryFilterStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryFilterStateSaveNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinCostTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RobotPushPlayerDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RockBoardExploreDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RockBoardExploreStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryAvatarDisableStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryDungeonRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryProgressOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueShowAvatarTeamInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeDungeonActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeDungeonSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeRuneRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeSettleCoinInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeShikigamiRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RouteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoutePointChangeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoutePointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageBundleChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageScoreChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SandwormCannonDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SaveUgcReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SaveUgcRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAudioNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAvatarStaminaStepReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAiInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneFishInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneForceLockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneGalleryHomeSeekFurnitureInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneNpcInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerSoundNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneReliquaryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneRouteChangeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneRouteChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTeamAvatarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneWeaponInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScreenInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampContributeItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampContributeItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampSectionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3CampInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3CampStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3DetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3RaceInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3RaceLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3ShadowInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3ShadowLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampV3ShadowStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeeMonsterReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServantInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerBuffOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerGlobalValueChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetChatEmojiCollectionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetChatEmojiCollectionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetFriendEnterHomeOptionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetFriendEnterHomeOptionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetIsAutoUnlockSpecificEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetIsAutoUnlockSpecificEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopConcertProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopGoodsOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopMcoinProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShortAbilityHashPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowClientGuideNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowCommonTipsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowEquipOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkyCrystalDetectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkyCrystalDetectorQuickUseResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SocialDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SocialShowAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SorushTrialDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SpiceActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SpiceStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StatueGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StopServerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StrengthenPointDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeDungeonInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeSprintBoatInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeSprintBoatRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeV2BoatStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeV2DetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeV2DungeonSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SummerTimeV2DungeonStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoTeamDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementGoalRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementGoalRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBackGivingItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBackGivingItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCityReputationParentQuestReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCityReputationParentQuestRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCompoundOutputReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCompoundOutputRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeInvestigationRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeInvestigationRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeInvestigationTargetRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeInvestigationTargetRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeMaterialDeleteReturnReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeMaterialDeleteReturnRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TanukiTravelActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TanukiTravelFinishGuideQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TanukiTravelLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamChainChooseAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamChainDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamChainSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamChainStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamEnterSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonQueryPathReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonQueryPathRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerBriefDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerMonthlyBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrackingIOInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapBonusChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapRegionInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapRegionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureSeelieActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureSeelieRegionDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarActivityRewardDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarInDungeonIndexNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TriggerCreateGadgetToEquipPartNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicBriefInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicNoteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicTrackOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/Uint32PairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnionCmdOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdateAbilityCreatedMovingPlatformNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowNameCardListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowNameCardListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/Vector3IntOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VectorOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VectorPlaneOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleMemberOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageBoothUsedItemDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageCampChallengeLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageCampChallengeStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageHuntingStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketDealInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketStoreInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketTraderInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintagePresentLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintagePresentStageDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VisionTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WaterSpiritActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeatherInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeatherWizardDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeekendDjinnInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeeklyBossResinDiscountInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreateLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreatorInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreatorOpTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotOpOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotTagOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindFieldDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindFieldDungeonFailReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindFieldDungeonSettleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindFieldStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindSeedClientNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindSeedType1NotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptAllGiveItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptAllGiveItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptGiveItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptGiveItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptItemResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetCanGiveFriendItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetCanGiveFriendItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetRecvItemListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetRecvItemListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGiveFriendItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGiveFriendItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampRaceStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampRecvItemDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampRecvItemNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorktopInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldChestOpenNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldOwnerBlossomBriefInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldOwnerDailyTaskNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java
    #	src/main/java/emu/grasscutter/GameConstants.java
    #	src/main/java/emu/grasscutter/Grasscutter.java
    #	src/main/java/emu/grasscutter/command/commands/SetPropCommand.java
    #	src/main/java/emu/grasscutter/config/ConfigContainer.java
    #	src/main/java/emu/grasscutter/config/Configuration.java
    #	src/main/java/emu/grasscutter/data/excels/ItemData.java
    #	src/main/java/emu/grasscutter/data/excels/SceneData.java
    #	src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java
    #	src/main/java/emu/grasscutter/game/managers/ResinManager.java
    #	src/main/java/emu/grasscutter/game/player/Player.java
    #	src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
    #	src/main/java/emu/grasscutter/server/http/dispatch/RegionHandler.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java
    #	src/main/java/emu/grasscutter/tools/Dumpers.java
    #	src/main/java/emu/grasscutter/utils/Crypto.java
    #	src/main/java/emu/grasscutter/utils/FileUtils.java
    #	src/main/java/emu/grasscutter/utils/Language.java
    #	src/main/java/emu/grasscutter/utils/StartupArguments.java
    #	src/main/java/emu/grasscutter/utils/Utils.java
  • Implement game time locking
    implement for quests
  • Run spotlessApply
    also set line endings to native, no more line conflict errors!
  • Revert final's added by 15e2f3ca34 (#2144)
    * Revert final's added by 15e2f3ca34
    
    * Apply suggestions from code review
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
    
    * Apply suggestions from code review
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
    
    ---------
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
  • Partially fix fairy clock (#2143)
    updatePlayerGameTime() expects time since game start not since day start.
  • Revert "Run spotlessApply"
    This reverts commit d67e2d0c5e.
  • Implement hiding in-game icons
    this will also enable exception showing if 'DEBUG' is enabled
  • Merge pull request Grasscutter-Quests#53
    'Updated with how talks are handle' by `mjolsic`
  • Mark dungeons as completed and trigger the event
    the event & completion were moved to the same location
  • Merge branch 'development' into unstable
    # Conflicts:
    #	build.gradle
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityActionGenerateElemBallOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAppliedAbilityOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAppliedModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityAttachedModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityControlBlockOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityEmbryoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityIdentifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvocationsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeArgumentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeEntryHeadOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaModifierChangeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMetaReInitOverrideMapOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityMixinRecoverInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityScalarTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityScalarValueEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilityStringOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AbilitySyncStateInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AchievementUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityPushTipsDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityPushTipsStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityScheduleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityShopSheetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityTakeWatcherRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityUpdateWatcherNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ActivityWatcherInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddBackupAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddBackupAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddNoGachaAvatarCardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddNoGachaAvatarCardTransferItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AddQuestContentProgressRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AdjustTrackingInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiSkillCdInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiSyncInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AiThreatInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AllWidgetDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnchorPointDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnimatorParameterValueInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnimatorParameterValueInfoPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AnnounceDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AskAddFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AttackHitEffectResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AttackResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarAddNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeCostumeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarChangeElementTypeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarDieAnimationEndRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEnterSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipAffixInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipAffixStartNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarEquipChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExcelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionCallBackRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionGetRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarExpeditionStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFetterLevelRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFightPropUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFlycloakChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarFollowRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarGainCostumeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarGainFlycloakNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarLifeStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarRenameInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarRenameInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSatiationDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSatiationDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillDepotChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillMaxChargeCountNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarSkillUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamResonanceInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTeamUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUnlockTalentNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarWearFlycloakRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BackMyWorldRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BatchBuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BatchBuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassCurScheduleUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassCycleOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassMissionUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTagOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassRewardTakeOptionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassScheduleOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BattlePassUnlockStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BirthdayOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlockInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomBriefInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BlossomChestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BonusOpActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BossChestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutActionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutBrickInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutElementReactionCounterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutPhysicalObjectModifierOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutPhysicalObjectOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSnapShotOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSpawnPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutSyncConnectUidInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BreakoutVector2OuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyBattlePassLevelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/BuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CalcWeaponUpgradeReturnItemsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CanUseSkillNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CancelFinishParentQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CardProductRewardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChallengeFinishTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeEnergyReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeGameTimeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeHpReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMailStarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeMpTeamAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChangeTeamNameRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChannellerSlabLoopDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChapterStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChapterStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CharAmusementAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChatEmojiCollectionDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChatInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CheckAddItemExceedLimitNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChildQuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ChooseCurAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CityReputationQuestInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAIStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientAbilityInitFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientCollectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientInputTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientLoadingCostumeVerificationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClientLockGameTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ClosedItemNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexDataFullNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexDataUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexTypeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CodexTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectOperatorInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CoinCollectTeamAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatInvocationsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombatTypeArgumentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CombineRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundBoostTakeStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CompoundQueueDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CookRecipeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CreateVehicleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CrystalLinkDungeonAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CurVehicleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomCommonNodeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomDungeonFinishTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CustomGadgetTreeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CutSceneBeginNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/CutSceneExtraParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyDungeonEntryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskFilterCityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskFilterCityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskProgressNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DailyTaskUnlockedCitiesNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendResultTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DealAddFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelBackupAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelBackupAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelMailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelMailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DelTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeleteFriendRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DeshretObeliskGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DestroyMaterialRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoGachaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoGachaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DoSetPlayerBornDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropHintNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DropItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonCandidateTeamChangeAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonCandidateTeamChangeAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeBeginNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonChallengeFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEnterPosInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonEntryPointInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonShowReminderNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSlipRevivePointActivateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonSlipRevivePointActivateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointActivateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointActivateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/DungeonWayPointNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EchoShellInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EffigyChallengeDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EndCameraSceneLookNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneDoneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterScenePeerNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterSceneReadyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTransPointRegionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EnterWorldAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAbilityInvokeEntryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAiSyncNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityAuthorityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityClientDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityClientExtraInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityEnvironmentInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityFightPropUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityMoveInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EntityRendererChangedInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipRoguelikeRuneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EquipRoguelikeRuneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncCombatThreatInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAiSyncSkillCdNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAnimatorParameterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarLockChairRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarSitDownNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtAvatarStandUpNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtBeingHitInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtCreateGadgetNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtDestroyGadgetNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtDoSkillSuccNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/EvtEntityRenderersChangedNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ExitTransPointRegionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FeatureBlockInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FetterDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FightPropPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlAcceptQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FindHilichurlFinishSecondQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FinishedParentQuestUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FishPoolInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FishtankFishInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameSettleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameSettleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FleurFairMusicGameStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForceUpdateInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeGetQueueDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeQueueManipulateTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForgeStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ForwardTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FoundationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FoundationStatusOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendEnterHomeOptionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FriendOnlineStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureCurModuleArrangeCountNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeBeHelpedDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeBeHelpedNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeCancelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeCancelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeFinishNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeHelpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeMakeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeSlotOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureMakeStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/FurnitureOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GCGTCTavernChallengeDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaTransferItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaUpInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaWishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GachaWishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetAutoPickDropInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetBornTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetCrucibleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetGeneralRewardInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetInteractRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetPlayInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GadgetStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GalleryStopReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationElementReliquaryRequestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationElementReliquaryResponseOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryMainPropDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryRequestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GameplayRecommendationReliquaryResponseOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GatherGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityShopSheetInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetActivityShopSheetInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllH5ActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllH5ActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailResultNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllMailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAllUnlockNameCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetAuthkeyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetBlossomBriefInfoListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetBlossomBriefInfoListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetChatEmojiCollectionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetChatEmojiCollectionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetCompoundDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetCompoundDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetDailyDungeonEntryInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowAvatarInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowNameCardInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFriendShowNameCardInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetFurnitureCurModuleArrangeCountReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetGachaInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetHomeLevelUpRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetHomeLevelUpRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetInvestigationMonsterRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMailItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMailItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetMapAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOnlinePlayerListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOpActivityInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetOpActivityInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetParentQuestVideoKeyReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetParentQuestVideoKeyRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerAskFriendListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerBlacklistRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerFriendListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerHomeCompInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerSocialDetailRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetPlayerTokenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestLackingResourceReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestLackingResourceRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestTalkHistoryReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetQuestTalkHistoryRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetRegionSearchReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetSceneAreaRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetScenePointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetScenePointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetShopmallDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetUgcTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWidgetSlotRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GetWorldMpInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GroupSuiteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/GroupUnloadNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/H5ActivityIdsNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/H5ActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitColliderTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitCollisionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HitTreeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeAllUnlockedBgmIdListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeAnimalDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBasicInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockArrangementInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockDotPatternOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockFieldDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeBlockSubFieldDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeBgmRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeEditModeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeModuleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChangeModuleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeChooseModuleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeComfortInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeCustomFurnitureInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeCustomFurnitureInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEditCustomFurnitureReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEditCustomFurnitureRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEnterEditModeFinishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeEnterEditModeFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureCustomSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureGroupDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeFurnitureSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetArrangementInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetBasicInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetOnlineStatusReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGetOnlineStatusRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeGroupPlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopBuyGoodsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopBuyGoodsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopGoodsOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeLimitedShopOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointFurnitureDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNPCDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointSceneDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeMarkPointSuiteDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleComfortInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleSeenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleSeenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeModuleUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeNewUnlockedBgmIdListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeNpcDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomePreChangeEditModeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeFetterExpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeFetterExpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeHomeCoinReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeResourceTakeHomeCoinRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneArrangementInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneInitFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSceneJumpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureAllRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureGalleryScoreNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurnitureOneRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeSeekFurniturePlayerScoreOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HomeUpdateArrangementInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/HostPlayerNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InferencePageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InfernceWordInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InstableSprayAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InterOpTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InteractTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationMonsterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationMonsterUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationQuestDailyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/InvestigationReadQuestDailyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEquipCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/IrodoriChessEquipCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemAddHintNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemCdGroupTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemGivingReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemGivingRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemHintOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemRenameAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ItemRenameAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternProjectionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternProjectionLevelInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LanternRiteFireworksStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LevelupCityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LifeStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LockedPersonallineDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunaRiteHintStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/LunchBoxDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MPLevelEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailCollectStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailItemOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MailTextContentOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapAreaInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkFromTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkPointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MapMarkPointTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkMapReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkMapRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkNewNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MarkTargetInvestigationMonsterNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MassivePropParamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MassivePropSyncInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteReturnNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteReturnTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialDeleteUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MaterialOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MathQuaternionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/McoinExchangeHcoinRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MiracleRingDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MiracleRingDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MistTrialBestAvatarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MistTrialLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierActionOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierDurabilityOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ModifierPropertyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterAIConfigHashNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterBornTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterPointArrayRouteUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MonsterRouteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MotionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MotionStateOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MovingPlatformTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MpPlayRewardInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MpSettingTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MuqadasPotionDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameActivityDetailInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameSettleRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/MusicGameStartRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NightCrowGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NpcTalkReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/NpcTalkRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ObstacleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ObstacleModifyNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OfferingInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OneoffGatherPointDetectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OnlinePlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpenStateChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/OpenStateUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PSPlayerApplyEnterMpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PSPlayerApplyEnterMpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParamListOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestInferenceDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ParentQuestRandomInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PathfindingEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PathfindingEnterSceneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalLineAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PersonalSceneJumpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PingReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PingRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformChangeRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformStartRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformStopRouteNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlatformTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayTeamEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpResultRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerApplyEnterMpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialBoostReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialBoostRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCompoundMaterialRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookArgsRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerCookRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerDieTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterDungeonRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerEnterSceneNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerForceExitRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGameTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerGetForceQuitBanInfoRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerHomeCompInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLevelRewardUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerLoginRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropChangeReasonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerPropNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerQuitDungeonReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerRTTInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerSetPauseRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerStoreNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWidgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PlayerWorldSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PostEnterSceneRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PotionDungeonResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PrivateChatNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProfilePictureChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProfilePictureOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropChangeReasonOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PropValueOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProtEntityTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProudSkillChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ProudSkillExtraLevelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullPrivateChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/PullRecentChatRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCodexMonsterBeKilledNumRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryCurrRegionHttpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryFilterOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryPathReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryPathRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QueryRegionListHttpRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestCreateEntityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestCreateEntityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyEntityReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyEntityRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyNpcReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestDestroyNpcRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestGlobalVarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestListNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestListUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestProgressUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestRenameAvatarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestRenameAvatarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestTransmitReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestTransmitRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestTimeVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestUpdateQuestVarRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuestVarOpOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/QuickUseWidgetRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReadMailNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReadPrivateChatReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RecordUsageOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RegionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RegionSimpleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryDecomposeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryFilterStateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryFilterStateSaveNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ReliquaryUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResVersionConfigOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinCostTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RobotPushPlayerDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueDiaryDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RogueShowAvatarTeamInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoguelikeGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RouteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoutePointChangeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/RoutePointOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalesmanStatusTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageBundleChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageScoreChallengeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SalvageStageInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAreaUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAreaWeatherNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneAvatarStaminaStepReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAiInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityAppearNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDisappearNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityDrownRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneEntityMoveNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneFishInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneForceLockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneForceUnlockNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneGalleryHomeSeekFurnitureInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneInitFinishRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneKickPlayerRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneMonsterInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneNpcInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePlayerLocationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneReliquaryInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneRouteChangeInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneRouteChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTeamAvatarOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTeamUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneTransToPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SceneWeaponInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ScreenInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampActivityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampContributeItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampContributeItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeaLampSectionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SeeMonsterReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SelectWorktopOptionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServantInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerAnnounceRevokeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerBuffChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerBuffOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerCondMeetQuestListUpdateNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerGlobalValueChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ServerTimeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetBattlePassViewedRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetChatEmojiCollectionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetChatEmojiCollectionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEntityClientDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetEquipLockStateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetFriendEnterHomeOptionReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetFriendEnterHomeOptionRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetIsAutoUnlockSpecificEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetIsAutoUnlockSpecificEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetNameCardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetNameCardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetOpenStateRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBirthdayRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerBornDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerHeadImageRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerNameRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerPropRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetPlayerSignatureRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpAvatarTeamRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetUpLunchBoxWidgetRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SetWidgetSlotRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopCardProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopConcertProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopGoodsOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopMcoinProductOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShopOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShortAbilityHashPairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ShowEquipOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkipPlayerGameTimeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkyCrystalDetectorDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SkyCrystalDetectorQuickUseResultOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SocialDetailOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SocialShowAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StatueGadgetInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StopServerInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreItemChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreItemDelNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StoreWeightLimitNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/StrengthenPointDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SumoDungeonSettleNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SyncScenePlayTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/SyncTeamEntityNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementGoalRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementGoalRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeAchievementRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBackGivingItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBackGivingItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassMissionPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeBattlePassRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCityReputationParentQuestReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCityReputationParentQuestRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCompoundOutputReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeCompoundOutputRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeFurnitureMakeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeMaterialDeleteReturnReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeMaterialDeleteReturnRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakePlayerLevelRewardRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TakeoffEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TanukiTravelFinishGuideQuestNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TanukiTravelLevelDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamChainChooseAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamEnterSceneInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TeamEntityInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonEnterSceneReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonQueryPathReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/ToTheMoonQueryPathRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerAllDataRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerCurLevelRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerEnterLevelRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerFloorRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelEndNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerLevelStarCondNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerMiddleLevelChangeTeamNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerMonthlyBriefOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TowerTeamSelectRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrackingIOInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapRegionInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TreasureMapRegionInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarFirstPassDungeonNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarGrantRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TrialAvatarInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TriggerCreateGadgetToEquipPartNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/TryEnterHomeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicBriefInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicNoteOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicRecordOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcMusicTrackOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UgcTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/Uint32PairOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnionCmdNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnionCmdOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockAvatarTalentRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockNameCardNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockPersonalLineRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockTransPointRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureFormulaDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UnlockedFurnitureSuiteDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdateAbilityCreatedMovingPlatformNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowAvatarListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowNameCardListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UpdatePlayerShowNameCardListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UseItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/UseItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/Vector3IntOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VectorOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VectorPlaneOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleInteractTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleMemberOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VehicleStaminaNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageBoothUsedItemDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketDeliverItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VintageMarketDeliverItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/VisionTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponAwakenRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponPromoteRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeaponUpgradeRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WearEquipReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WearEquipRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeatherInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeatherWizardDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeekendDjinnInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WeeklyBossResinDiscountInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCoolDownNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreateLocationInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreatorInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetCreatorOpTypeOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetDoBagRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetAllDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetGadgetDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotChangeNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotOpOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WidgetSlotTagOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WindSeedClientNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptAllGiveItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptAllGiveItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptGiveItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptGiveItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampAcceptItemResultInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetCanGiveFriendItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetCanGiveFriendItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetRecvItemListReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGetRecvItemListRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGiveFriendItemReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampGiveFriendItemRspOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampRecvItemDataOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WinterCampRecvItemNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorktopInfoOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorktopOptionNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldChestOpenNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldDataNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldOwnerBlossomBriefInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldOwnerDailyTaskNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerDieNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerInfoNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerLocationNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerRTTNotifyOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveReqOuterClass.java
    #	src/generated/main/java/emu/grasscutter/net/proto/WorldPlayerReviveRspOuterClass.java
    #	src/main/java/emu/grasscutter/GameConstants.java
    #	src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
    #	src/main/java/emu/grasscutter/utils/Language.java
  • Fix trial avatar removal
    it is still *sort of* broken when combined with early leaving a domain
  • Fix removing trial avatars
    this prevents exceptions from being thrown. see questing thread for more information.
  • Fix some behavior of trial avatars
    investigation is required on the exceptions thrown
  • Attempt to correct PlayerSetPauseReq
    this is still broken; further investigation is required
  • Fix potential NPE
    this can occur if the player disconnects before logging in
  • Merge branch 'development' into unstable-quests
    # Conflicts:
    #	src/main/java/emu/grasscutter/command/commands/SetPropCommand.java
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/command/commands/SetPropCommand.java
  • Add sub-quest data only in BinOutput
    could fix things sometimes
  • Fixing the starting world time
    the proper start time should be 9 game hours
  • Send avatar type to client
    also switch to lambda reference
  • Merge branch 'development' into unstable-quests
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
    #	src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerDungeonEntryInfoReq.java
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/game/dungeons/DungeonSystem.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerCombatInvocationsNotify.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerDungeonEntryInfoReq.java
  • implement getCachePath (#2121)
    * implement getCachePath
    
    for further use like grids cache.
    
    * Update src/main/java/emu/grasscutter/utils/FileUtils.java
    
    ---------
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
  • Fix entity controllers not loading
    elemental monuments should now work
  • Fix issue with Amber not being added
    the field for an item's `useOnGain` was final!
  • Remove .gitattributes
    this should fix some line separator issues
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/ScenePointUnlockNotifyOuterClass.java
  • Set CRLF as the default line separator
    this will be changed back to LF after unstable-quests is finished
  • Implement a new item drops system (#2112)
    * 1
    
    * Delete .gitattributes
    
    * implement
    
    * Update PacketDropHintNotify.java
    
    * Update PacketWorldChestOpenNotify.java
    
    * Update FileUtils.java
    
    * Update PacketDropHintNotify.java
    
    * Update WorldDataSystem.java
    
    ---------
    
    Co-authored-by: Magix <27646710+KingRainbow44@users.noreply.github.com>
  • Fix Lua exec call (#2115)
    * Fix Lua exec call
    
    ## Description
    fix 352 should not have any slime spawns, its 353 and 351 has a single slime spawn
    
    Please carefully read the [Contributing note](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/Grasscutters/Grasscutter/blob/development/CODE_OF_CONDUCT.md) before making any pull requests.
    
    ## Issues fixed by this PR
    
    <!--- Put the links of issues that may be fixed by this PR here (if any). -->
    ## Type of changes
    
    <!--- Put an `x` in all the boxes that apply your changes. -->
    
    - [x] Bug fix
    - [ ] New feature 
    - [ ] Enhancement
    - [ ] Documentation
    
    ## Checklist:
    
    - [x] My code follows the style guidelines of this project
    - [x] My pull request is unique and no other pull requests have been opened for these changes
    - [x] I have read the [Contributing note](https://github.com/Grasscutters/Grasscutter/blob/stable/CONTRIBUTING.md) and [Code of conduct](https://github.com/Grasscutters/Grasscutter/blob/development/CODE_OF_CONDUCT.md)
    - [x] I am responsible for any copyright issues with my code if it occurs in the future.
    
    * Update ExecNotifyGroupLua.java
    
    * Update ExecNotifyGroupLua.java
    
    * Update ExecNotifyGroupLua.java
    
    * new ScriptArgs(groupId, eventType, quest.getSubQuestId())          .setEventSource(String.valueOf(quest.getSubQuestId()));
  • Fix hanging on scene creation
    Invoke `SceneScriptManager#init` in a thread.
  • Enable 'big world scripts' by default
    this uses significantly more system resources, but in turn allows for the *quest* system to work!
  • Fix grid parsing
    now compatiable with Yukki's resources!
  • Merge branch 'development' into unstable-quests
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
    #	src/main/java/emu/grasscutter/game/managers/ResinManager.java
    #	src/main/java/emu/grasscutter/game/player/Player.java
    #	src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java
    #	src/main/java/emu/grasscutter/server/http/dispatch/RegionHandler.java
    #	src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java
    #	src/main/java/emu/grasscutter/utils/Crypto.java
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/server/http/dispatch/RegionHandler.java
    #	src/main/java/emu/grasscutter/utils/Crypto.java
  • Add packet for WindSeedClientNotify
    still a blacklisted packet however
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/ResinChangeNotifyOuterClass.java
    #	src/main/java/emu/grasscutter/game/managers/ResinManager.java
    #	src/main/java/emu/grasscutter/game/player/Player.java
    #	src/main/java/emu/grasscutter/game/props/ItemUseAction/ItemUseAddItem.java
    #	src/main/java/emu/grasscutter/server/packet/send/PacketResinChangeNotify.java
  • Merge remote-tracking branch 'origin/unstable' into unstable
    # Conflicts:
    #	src/handbook/src/backend/types.ts
    #	src/handbook/src/ui/pages/ItemsPage.tsx
    #	src/handbook/src/ui/widgets/MiniCard.tsx
  • Continue merging quests (pt. 1)
    Finished last at: `World.java`, line `player.setAvatarsAbilityForScene(newScene);`
  • Remove duplicate item entries
    This filters items by name and ID.
  • Fix item icons to be more accurate
    Project Amber is now the primary icon source!
  • Add "react-virtualized"
    automatically patch it to remove unnecessary import
  • Implement avatars/characters page
    Handle edge-cases for avatar image rendering
  • Fix linting script
    (forgot that actions are in `src/handbook` already)
  • Implement the commands page
    additionally, clean-up imports
  • Add linter script
    Fix issue with running `cd src/handbook` while in the handbook directory for building
  • Attempt to fix handbook actions
    clearly running cd prior to setting up node doesnt work
  • Create initial handbook data dumpers
    these can be accessed by using `-dump=commands,en-us` or `-dump=avatars/items,EN` (all languages supported)
  • Merge branch 'development' into unstable-quests
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/generated/main/java/emu/grasscutter/net/proto/AvatarUpgradeRspOuterClass.java
  • Implement handbook sidebar
    only works on desktops atm, mobile support is non-existant
  • Add building for handbook
    also implement linting, ci for handbook, and change `.editorconfig` to do 2-line for .yml
  • Add more home buttons & Add content disclaimer
    i added a place to add credits; will do next probs
  • Merge branch 'development' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
    #	src/main/java/emu/grasscutter/utils/Utils.java
  • Add basis of the content panel
    - Home buttons
    - Implement sidebar
    - Add home title
  • Scaffold class-based React + Tailwind project
    now configured with TypeScript aliases!
  • Merge branch 'development' into unstable-quests
    # Conflicts:
    #	src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
    #	src/main/java/emu/grasscutter/utils/Utils.java
  • Merge branch 'fixmail' into unstable
    # Conflicts:
    #	src/main/java/emu/grasscutter/game/mail/Mail.java
    #	src/main/java/emu/grasscutter/net/packet/PacketOpcodes.java
    #	src/main/java/emu/grasscutter/server/packet/recv/HandlerGetAllMailReq.java
    #	src/main/java/emu/grasscutter/server/packet/send/PacketGetAllMailRsp.java
    #	src/main/java/emu/grasscutter/utils/Utils.java
  • Continue updating/refactoring classes
    Most code is matched from `Grasscutter-Quests`.
  • Comment-out unknown packet handlers/encoders
    These are mostly related to the teapot, music game, and custom teams
  • Add additional protocol classes
    Using `gc-quest-fix`
  • Fix existing protocol classes
    Using `gc-quest-fix`
  • Copy some files from Grasscutter-Quests
    NOT completely finished, nor is it completely done. Protocol issues remain! (including lack of packet IDs)
  • Create files from Grasscutter-Quests
    these files are NOT directly compatible with Grasscutter, and require additional modifications to the codebase to work.
  • Remove reflowLongStrings
    Causes an issue with Spotless!
  • Add support for unit testing
    - Add argument `-testing`, which allows for a threaded console
41 changed files with 207 additions and 336 deletions
+2 -1
View File
@@ -4,6 +4,7 @@ on:
pull_request_target:
types:
- opened
- reopened
branches:
- development
paths:
@@ -19,4 +20,4 @@ jobs:
steps:
- uses: superbrothers/close-pull-request@v3
with:
comment: "This PR has been closed for modifying protected files. See `CONTRIBUTING.md` for more information."
comment: "This PR has been closed for modifying protected files. See `CONTRIBUTING.md` for more information."
+2 -2
View File
@@ -80,7 +80,7 @@ Grasscutter uses Gradle to handle dependencies & building.
##### Windows
```shell
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
git clone --recurse-submodules -b unstable https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
.\gradlew.bat # Setting up environments
.\gradlew jar # Compile
@@ -89,7 +89,7 @@ cd Grasscutter
##### Linux (GNU)
```bash
git clone --recurse-submodules https://github.com/Grasscutters/Grasscutter.git
git clone --recurse-submodules -b unstable https://github.com/Grasscutters/Grasscutter.git
cd Grasscutter
chmod +x gradlew
./gradlew jar # Compile
+1 -1
View File
@@ -57,7 +57,7 @@ sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
group = 'io.grasscutter'
version = '1.6.1'
version = '2.0.0-unstable'
java {
withJavadocJar()
+8 -25
View File
@@ -1,11 +1,14 @@
package emu.grasscutter;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
import ch.qos.logback.classic.*;
import emu.grasscutter.auth.*;
import emu.grasscutter.command.*;
import emu.grasscutter.config.ConfigContainer;
import emu.grasscutter.data.ResourceLoader;
import emu.grasscutter.database.*;
import emu.grasscutter.database.DatabaseManager;
import emu.grasscutter.plugin.PluginManager;
import emu.grasscutter.plugin.api.ServerHelper;
import emu.grasscutter.server.dispatch.DispatchServer;
@@ -18,20 +21,16 @@ import emu.grasscutter.tools.Tools;
import emu.grasscutter.utils.*;
import emu.grasscutter.utils.lang.Language;
import io.netty.util.concurrent.FastThreadLocalThread;
import java.io.*;
import java.util.Calendar;
import java.util.concurrent.*;
import javax.annotation.Nullable;
import lombok.*;
import org.jline.reader.*;
import org.jline.terminal.*;
import org.reflections.Reflections;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import java.io.*;
import java.util.Calendar;
import java.util.concurrent.*;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
public final class Grasscutter {
public static final File configFile = new File("./config.json");
public static final Reflections reflector = new Reflections("emu.grasscutter");
@@ -184,22 +183,6 @@ public final class Grasscutter {
private static void onShutdown() {
// Disable all plugins.
if (pluginManager != null) pluginManager.disablePlugins();
try {
// Wait for Grasscutter's thread pool to finish.
var executor = Grasscutter.getThreadPool();
executor.shutdown();
if (!executor.awaitTermination(5, TimeUnit.SECONDS)) {
executor.shutdownNow();
}
// Wait for database operations to finish.
var dbExecutor = DatabaseHelper.getEventExecutor();
dbExecutor.shutdown();
if (!dbExecutor.awaitTermination(5, TimeUnit.SECONDS)) {
dbExecutor.shutdownNow();
}
} catch (InterruptedException ignored) { }
}
/*
@@ -1,13 +1,12 @@
package emu.grasscutter.command.commands;
import emu.grasscutter.command.*;
import static emu.grasscutter.utils.lang.Language.translate;
import emu.grasscutter.command.Command;
import emu.grasscutter.command.CommandHandler;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.quest.GameQuest;
import java.util.List;
import java.util.stream.Collectors;
import static emu.grasscutter.utils.lang.Language.translate;
@Command(
label = "quest",
@@ -132,22 +131,6 @@ public final class QuestCommand implements CommandHandler {
"Triggers registered for %s: %s."
.formatted(questId, String.join(", ", quest.getTriggers().keySet())));
}
case "grouptriggers" -> {
var scene = targetPlayer.getScene();
var scriptManager = scene.getScriptManager();
var group = scriptManager.getGroupById(questId);
if (group == null) {
CommandHandler.sendMessage(sender, "The group does not exist.");
return;
}
CommandHandler.sendMessage(sender,
group.triggers.entrySet().stream()
.map(entry -> "%s: %s".formatted(entry.getKey(), entry.getValue()))
.collect(Collectors.joining(", "))
);
}
default -> this.sendUsageMessage(sender);
}
}
@@ -17,21 +17,19 @@ import static emu.grasscutter.Grasscutter.*;
public class ConfigContainer {
/*
* Configuration changes:
* Version 5 - 'questing' has been changed from a boolean
* to a container of options ('questOptions').
* This field will be removed in future versions.
* Version 6 - 'questing' has been fully replaced with 'questOptions'.
* The field for 'legacyResources' has been removed.
* Version 7 - 'regionKey' is being added for authentication
* with the new dispatch server.
* Version 8 - 'server' is being added for enforcing handbook server
* addresses.
* Version 9 - 'limits' was added for handbook requests.
* Version 10 - 'trialCostumes' was added for enabling costumes
* on trial avatars.
* Version 5 - 'questing' has been changed from a boolean
* to a container of options ('questOptions').
* This field will be removed in future versions.
* Version 6 - 'questing' has been fully replaced with 'questOptions'.
* The field for 'legacyResources' has been removed.
* Version 7 - 'regionKey' is being added for authentication
* with the new dispatch server.
* Version 8 - 'server' is being added for enforcing handbook server
* addresses.
* Version 9 - 'limits' was added for handbook requests.
*/
private static int version() {
return 10;
return 9;
}
/**
@@ -257,8 +255,6 @@ public class ConfigContainer {
public boolean staminaUsage = true;
public boolean energyUsage = true;
public boolean fishhookTeleport = true;
public boolean trialCostumes = false;
@SerializedName(value = "questing", alternate = "questOptions")
public Questing questing = new Questing();
public ResinOptions resinOptions = new ResinOptions();
@@ -87,10 +87,7 @@ public class AbilityData {
}
private void initializeModifiers() {
if (modifiers == null) {
this.modifiers = new HashMap<>();
return;
}
if (modifiers == null) return;
var _modifiers =
modifiers.entrySet().stream()
@@ -1,11 +1,12 @@
package emu.grasscutter.data.excels;
import com.google.gson.annotations.SerializedName;
import emu.grasscutter.data.*;
import emu.grasscutter.data.GameResource;
import emu.grasscutter.data.ResourceType;
import emu.grasscutter.game.talk.TalkExec;
import lombok.*;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ResourceType(name = "TalkExcelConfigData.json")
@EqualsAndHashCode(callSuper = false)
@@ -37,14 +38,6 @@ public final class TalkConfigData extends GameResource {
this.finishExec == null
? List.of()
: this.finishExec.stream().filter(x -> x.getType() != null).toList();
if (this.questId <= 0) {
var id = String.valueOf(this.getId());
this.questId = Integer.parseInt(
id.length() < 5 ? "0" :
id.substring(0, 3)
);
}
}
@Data
@@ -1,8 +1,12 @@
package emu.grasscutter.database;
import dev.morphia.query.*;
import static com.mongodb.client.model.Filters.eq;
import dev.morphia.query.FindOptions;
import dev.morphia.query.Sort;
import dev.morphia.query.experimental.filters.Filters;
import emu.grasscutter.*;
import emu.grasscutter.GameConstants;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.game.Account;
import emu.grasscutter.game.achievement.Achievements;
import emu.grasscutter.game.activity.PlayerActivityData;
@@ -19,16 +23,12 @@ import emu.grasscutter.game.quest.GameMainQuest;
import emu.grasscutter.game.world.SceneGroupInstance;
import emu.grasscutter.utils.objects.Returnable;
import io.netty.util.concurrent.FastThreadLocalThread;
import lombok.Getter;
import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Stream;
import static com.mongodb.client.model.Filters.eq;
public final class DatabaseHelper {
@Getter private static final ExecutorService eventExecutor =
private static final ExecutorService eventExecutor =
new ThreadPoolExecutor(
6,
6,
@@ -1,5 +1,7 @@
package emu.grasscutter.game.avatar;
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
import dev.morphia.annotations.*;
import emu.grasscutter.GameConstants;
import emu.grasscutter.data.GameData;
@@ -30,14 +32,11 @@ import emu.grasscutter.net.proto.TrialAvatarInfoOuterClass.TrialAvatarInfo;
import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.helpers.ProtoHelper;
import it.unimi.dsi.fastutil.ints.*;
import lombok.*;
import org.bson.types.ObjectId;
import javax.annotation.*;
import java.util.*;
import java.util.stream.Stream;
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
import javax.annotation.*;
import lombok.*;
import org.bson.types.ObjectId;
@Entity(value = "avatars", useDiscriminator = false)
public class Avatar {
@@ -1244,15 +1243,13 @@ public class Avatar {
});
// Add costume if avatar has a costume.
if (GAME_OPTIONS.trialCostumes) {
GameData.getAvatarCostumeDataItemIdMap()
GameData.getAvatarCostumeDataItemIdMap()
.values()
.forEach(
costumeData -> {
if (costumeData.getCharacterId() != this.getAvatarId()) return;
this.setCostume(costumeData.getId());
});
}
costumeData -> {
if (costumeData.getCharacterId() != this.getAvatarId()) return;
this.setCostume(costumeData.getId());
});
}
/** Equips the items applied from {@link Avatar#applyTrialItems()}. */
@@ -75,7 +75,6 @@ public class GadgetChest extends GadgetContent {
} else if (chest.chest_drop_id != 0) {
status = dropSystem.handleChestDrop(chest.chest_drop_id, chest.drop_count, getGadget());
}
if (status) {
getGadget().updateState(ScriptGadgetState.ChestOpened);
player.sendPacket(
@@ -317,9 +317,7 @@ public class StaminaManager extends BasePlayerManager {
entity.getWorld().broadcastPacket(new PacketEntityFightPropUpdateNotify(entity, FightProperty.FIGHT_PROP_CUR_HP));
entity.getWorld().broadcastPacket(new PacketLifeStateChangeNotify(0, entity, LifeState.LIFE_DEAD));
player.getScene().removeEntity(entity);
if (entity instanceof EntityAvatar avatar)
avatar.onDeath(dieType, 0);
((EntityAvatar) entity).onDeath(dieType, 0);
}
public void startSustainedStaminaHandler() {
@@ -345,9 +345,8 @@ public class Player implements PlayerHook, FieldFetch {
this.playerGameTime = gameTime;
// If the player is the host of the world, update the game time as well.
var world = this.getWorld();
if (world != null && world.getHost() == this) {
world.changeTime(gameTime);
if (this.getWorld().getHost() == this) {
this.getWorld().changeTime(gameTime);
}
// Trigger the script event for game time update.
@@ -708,16 +707,14 @@ public class Player implements PlayerHook, FieldFetch {
}
public void onEnterRegion(SceneRegion region) {
var enterRegionName = "ENTER_REGION_" + region.config_id;
this.getQuestManager().forEachActiveQuest(quest -> {
if (quest.getTriggerData() != null &&
quest.getTriggers().containsKey(enterRegionName) &&
region.getGroupId() == quest.getTriggerData().get(enterRegionName).getGroupId()) {
quest.getTriggers().containsKey("ENTER_REGION_"+ region.config_id)) {
// If trigger hasn't been fired yet
if (!Boolean.TRUE.equals(quest.getTriggers().put(enterRegionName, true))) {
if (!Boolean.TRUE.equals(quest.getTriggers().put("ENTER_REGION_" + region.config_id, true))) {
this.getSession().send(new PacketServerCondMeetQuestListUpdateNotify());
this.getQuestManager().queueEvent(QuestContent.QUEST_CONTENT_TRIGGER_FIRE,
quest.getTriggerData().get(enterRegionName).getId(), 0);
quest.getTriggerData().get("ENTER_REGION_" + region.config_id).getId(), 0);
}
}
});
@@ -725,15 +722,13 @@ public class Player implements PlayerHook, FieldFetch {
}
public void onLeaveRegion(SceneRegion region) {
var leaveRegionName = "LEAVE_REGION_" + region.config_id;
this.getQuestManager().forEachActiveQuest(quest -> {
if (quest.getTriggers().containsKey(leaveRegionName) &&
region.getGroupId() == quest.getTriggerData().get(leaveRegionName).getGroupId()) {
if (quest.getTriggers().containsKey("LEAVE_REGION_" + region.config_id)) {
// If trigger hasn't been fired yet
if (!Boolean.TRUE.equals(quest.getTriggers().put(leaveRegionName, true))) {
if (!Boolean.TRUE.equals(quest.getTriggers().put("LEAVE_REGION_" + region.config_id, true))) {
this.getSession().send(new PacketServerCondMeetQuestListUpdateNotify());
this.getQuestManager().queueEvent(QuestContent.QUEST_CONTENT_TRIGGER_FIRE,
quest.getTriggerData().get(leaveRegionName).getId(), 0);
quest.getTriggerData().get("LEAVE_REGION_" + region.config_id).getId(), 0);
}
}
});
@@ -1,12 +1,12 @@
package emu.grasscutter.game.player;
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
import dev.morphia.annotations.Entity;
import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.net.proto.AvatarTeamOuterClass.AvatarTeam;
import java.util.*;
import static emu.grasscutter.config.Configuration.GAME_OPTIONS;
import java.util.ArrayList;
import java.util.List;
@Entity
public final class TeamInfo {
@@ -87,8 +87,6 @@ public final class TeamInfo {
for (int i = 0; i < this.getAvatars().size(); i++) {
Avatar avatar = player.getAvatars().getAvatarById(this.getAvatars().get(i));
if (avatar == null) continue;
avatarTeam.addAvatarGuidList(avatar.getGuid());
}
@@ -16,11 +16,10 @@ import emu.grasscutter.net.proto.ChildQuestOuterClass.ChildQuest;
import emu.grasscutter.net.proto.ParentQuestOuterClass.ParentQuest;
import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.ConversionUtils;
import lombok.*;
import org.bson.types.ObjectId;
import java.util.*;
import java.util.stream.Collectors;
import lombok.*;
import org.bson.types.ObjectId;
@Entity(value = "quests", useDiscriminator = false)
public class GameMainQuest {
@@ -315,7 +314,7 @@ public class GameMainQuest {
0, new Position(avatarPosPos.get(0), avatarPosPos.get(1), avatarPosPos.get(2))); // position
posAndRot.add(
1, new Position(avatarPosRot.get(0), avatarPosRot.get(1), avatarPosRot.get(2))); // rotation
Grasscutter.getLogger().debug("Successfully loaded rewind data for quest {}.", subId);
Grasscutter.getLogger().info("Succesfully loaded rewind data for subQuest {}", subId);
return true;
}
@@ -15,10 +15,9 @@ import emu.grasscutter.scripts.data.SceneGroup;
import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.Utils;
import it.unimi.dsi.fastutil.ints.IntIntImmutablePair;
import lombok.*;
import javax.script.Bindings;
import java.util.*;
import javax.script.Bindings;
import lombok.*;
@Entity
public class GameQuest {
@@ -143,7 +142,7 @@ public class GameQuest {
}
public void setFinishProgress(int index, int value) {
this.finishProgressList[index] = value;
finishProgressList[index] = value;
}
public void setFailProgress(int index, int value) {
@@ -111,9 +111,7 @@ public class QuestManager extends BasePlayerManager {
30700, // Quest which is responsible for unlocking Crash Course.
30800, // Quest which is responsible for unlocking Sparks Amongst the Pages.
47001, 47002, 47003, 47004,
2010103, 2010144 // Prologue Act 2: Chasing Shadows
47001, 47002, 47003, 47004
));
}
}
@@ -1,11 +1,12 @@
package emu.grasscutter.game.quest.content;
import emu.grasscutter.data.excels.quest.QuestData;
import emu.grasscutter.game.quest.*;
import lombok.val;
import static emu.grasscutter.game.quest.enums.QuestContent.QUEST_CONTENT_COMPLETE_TALK;
import emu.grasscutter.data.excels.quest.QuestData;
import emu.grasscutter.game.quest.GameQuest;
import emu.grasscutter.game.quest.QuestValueContent;
import lombok.val;
@QuestValueContent(QUEST_CONTENT_COMPLETE_TALK)
public class ContentCompleteTalk extends BaseContent {
@Override
@@ -53,8 +53,7 @@ public class ExecNotifyGroupLua extends QuestExecHandler {
? EventType.EVENT_QUEST_FINISH
: EventType.EVENT_QUEST_START;
scriptManager.callEvent(
new ScriptArgs(groupId, eventType, quest.getSubQuestId(),
quest.getState() == QuestState.QUEST_STATE_FINISHED ? 1 : 0)
new ScriptArgs(groupId, eventType, quest.getSubQuestId())
.setEventSource(quest.getSubQuestId()));
});
@@ -1,13 +1,15 @@
package emu.grasscutter.game.talk;
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_COMPLETE_TALK;
import static emu.grasscutter.game.quest.enums.QuestContent.QUEST_CONTENT_COMPLETE_ANY_TALK;
import static emu.grasscutter.game.quest.enums.QuestContent.QUEST_CONTENT_COMPLETE_TALK;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.binout.MainQuestData.TalkData;
import emu.grasscutter.game.player.*;
import emu.grasscutter.game.player.BasePlayerManager;
import emu.grasscutter.game.player.Player;
import lombok.NonNull;
import static emu.grasscutter.game.quest.enums.QuestCond.QUEST_COND_COMPLETE_TALK;
import static emu.grasscutter.game.quest.enums.QuestContent.*;
public final class TalkManager extends BasePlayerManager {
public TalkManager(@NonNull Player player) {
super(player);
@@ -20,31 +22,30 @@ public final class TalkManager extends BasePlayerManager {
* @param npcEntityId The entity ID of the NPC being talked to.
*/
public void triggerTalkAction(int talkId, int npcEntityId) {
var player = this.getPlayer();
var talkData = GameData.getTalkConfigDataMap().get(talkId);
if (talkData != null) {
// Check if the NPC id is valid.
var entity = player.getScene().getEntityById(npcEntityId);
if (entity != null) {
// The config ID of the entity is the NPC's ID.
if (!talkData.getNpcId().contains(entity.getConfigId())) return;
}
if (talkData == null) return;
// Execute the talk action on associated handlers.
talkData
var player = this.getPlayer();
// Check if the NPC id is valid.
var entity = player.getScene().getEntityById(npcEntityId);
if (entity != null) {
// The config ID of the entity is the NPC's ID.
if (!talkData.getNpcId().contains(entity.getConfigId())) return;
}
// Execute the talk action on associated handlers.
talkData
.getFinishExec()
.forEach(e -> player.getServer().getTalkSystem().triggerExec(player, talkData, e));
// Save the talk value to the quest's data.
this.saveTalkToQuest(talkId, talkData.getQuestId());
}
// Invoke the talking events for quests.
var questManager = player.getQuestManager();
questManager.queueEvent(QUEST_CONTENT_COMPLETE_ANY_TALK, talkId);
questManager.queueEvent(QUEST_CONTENT_COMPLETE_TALK, talkId);
questManager.queueEvent(QUEST_COND_COMPLETE_TALK, talkId);
// Save the talk value to the quest's data.
this.saveTalkToQuest(talkId, talkData.getQuestId());
}
public void saveTalkToQuest(int talkId, int mainQuestId) {
@@ -1,44 +1,54 @@
package emu.grasscutter.game.world;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.data.*;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.GameDepot;
import emu.grasscutter.data.binout.SceneNpcBornEntry;
import emu.grasscutter.data.binout.routes.Route;
import emu.grasscutter.data.excels.*;
import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.data.excels.SceneData;
import emu.grasscutter.data.excels.codex.CodexAnimalData;
import emu.grasscutter.data.excels.monster.MonsterData;
import emu.grasscutter.data.excels.world.WorldLevelData;
import emu.grasscutter.data.server.Grid;
import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.dungeons.*;
import emu.grasscutter.game.dungeons.DungeonManager;
import emu.grasscutter.game.dungeons.DungeonSettleListener;
import emu.grasscutter.game.dungeons.challenge.WorldChallenge;
import emu.grasscutter.game.dungeons.enums.DungeonPassConditionType;
import emu.grasscutter.game.entity.*;
import emu.grasscutter.game.entity.gadget.GadgetWorktop;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.game.managers.blossom.BlossomManager;
import emu.grasscutter.game.player.*;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.player.TeamInfo;
import emu.grasscutter.game.props.*;
import emu.grasscutter.game.quest.QuestGroupSuite;
import emu.grasscutter.game.world.data.TeleportProperties;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.proto.AttackResultOuterClass.AttackResult;
import emu.grasscutter.net.proto.*;
import emu.grasscutter.net.proto.EnterTypeOuterClass;
import emu.grasscutter.net.proto.SelectWorktopOptionReqOuterClass;
import emu.grasscutter.net.proto.VisionTypeOuterClass.VisionType;
import emu.grasscutter.scripts.*;
import emu.grasscutter.scripts.SceneIndexManager;
import emu.grasscutter.scripts.SceneScriptManager;
import emu.grasscutter.scripts.constants.EventType;
import emu.grasscutter.scripts.data.*;
import emu.grasscutter.scripts.data.SceneBlock;
import emu.grasscutter.scripts.data.SceneGroup;
import emu.grasscutter.scripts.data.ScriptArgs;
import emu.grasscutter.server.event.entity.EntityCreationEvent;
import emu.grasscutter.server.event.player.PlayerTeleportEvent;
import emu.grasscutter.server.packet.send.*;
import emu.grasscutter.utils.objects.KahnsSort;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import lombok.*;
import javax.annotation.Nullable;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import javax.annotation.Nullable;
import lombok.Getter;
import lombok.Setter;
import lombok.val;
public final class Scene {
@Getter private final World world;
@@ -1,18 +1,17 @@
package emu.grasscutter.plugin;
import static emu.grasscutter.utils.lang.Language.translate;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.server.event.*;
import emu.grasscutter.utils.*;
import lombok.*;
import javax.annotation.Nullable;
import java.io.*;
import java.lang.reflect.Method;
import java.net.*;
import java.util.*;
import java.util.jar.*;
import static emu.grasscutter.utils.lang.Language.translate;
import javax.annotation.Nullable;
import lombok.*;
/** Manages the server's plugins and the event system. */
public final class PluginManager {
@@ -217,14 +216,9 @@ public final class PluginManager {
Grasscutter.getLogger().info(translate("plugin.enabling_plugin", name));
try {
plugin.onEnable();
return;
} catch (NoSuchMethodError ignored) {
Grasscutter.getLogger().error(translate("plugin.invalid_api.outdated", name));
} catch (Throwable exception) {
Grasscutter.getLogger().error(translate("plugin.enabling_failed", name), exception);
}
this.disablePlugin(plugin);
});
}
@@ -1,5 +1,7 @@
package emu.grasscutter.scripts;
import static emu.grasscutter.scripts.constants.EventType.EVENT_TIMER_EVENT;
import com.github.davidmoten.rtreemulti.RTree;
import com.github.davidmoten.rtreemulti.geometry.Geometry;
import emu.grasscutter.Grasscutter;
@@ -19,20 +21,17 @@ import emu.grasscutter.server.packet.send.PacketGroupSuiteNotify;
import emu.grasscutter.utils.*;
import io.netty.util.concurrent.FastThreadLocalThread;
import it.unimi.dsi.fastutil.ints.*;
import kotlin.Pair;
import lombok.val;
import org.luaj.vm2.*;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
import javax.annotation.*;
import java.io.*;
import java.nio.file.Files;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import static emu.grasscutter.scripts.constants.EventType.EVENT_TIMER_EVENT;
import javax.annotation.*;
import kotlin.Pair;
import lombok.val;
import org.luaj.vm2.*;
import org.luaj.vm2.lib.jse.CoerceJavaToLua;
public class SceneScriptManager {
private final Scene scene;
@@ -802,26 +801,26 @@ public class SceneScriptManager {
private void realCallEvent(@Nonnull ScriptArgs params) {
try {
ScriptLoader.getScriptLib().setSceneScriptManager(this);
var eventType = params.type;
var relevantTriggers = switch (eventType) {
case EventType.EVENT_ENTER_REGION, EventType.EVENT_LEAVE_REGION ->
this.getTriggersByEvent(eventType).stream()
.filter(
t ->
t.getCondition().contains(String.valueOf(params.param1))
&& (t.getSource().isEmpty()
|| t.getSource().equals(params.getEventSource())))
.collect(Collectors.toSet());
default ->
this.getTriggersByEvent(eventType).stream()
.filter(
t -> params.getGroupId() == 0 || t.getCurrentGroup().id == params.getGroupId())
.filter(
t -> (t.getSource().isEmpty() || t.getSource().equals(params.getEventSource())))
.collect(Collectors.toSet());
};
int eventType = params.type;
Set<SceneTrigger> relevantTriggers = new HashSet<>();
if (eventType == EventType.EVENT_ENTER_REGION || eventType == EventType.EVENT_LEAVE_REGION) {
relevantTriggers =
this.getTriggersByEvent(eventType).stream()
.filter(
t ->
t.getCondition().contains(String.valueOf(params.param1))
&& (t.getSource().isEmpty()
|| t.getSource().equals(params.getEventSource())))
.collect(Collectors.toSet());
} else {
relevantTriggers =
this.getTriggersByEvent(eventType).stream()
.filter(
t -> params.getGroupId() == 0 || t.getCurrentGroup().id == params.getGroupId())
.filter(
t -> (t.getSource().isEmpty() || t.getSource().equals(params.getEventSource())))
.collect(Collectors.toSet());
}
for (SceneTrigger trigger : relevantTriggers) {
handleEventForTrigger(params, trigger);
}
@@ -129,7 +129,7 @@ public class ScriptLib {
public int SetWorktopOptionsByGroupId(int groupId, int configId, int[] options) {
logger.debug("[LUA] Call SetWorktopOptionsByGroupId with {},{},{}",
groupId, configId, options);
groupId,configId,options);
val entity = getSceneScriptManager().getScene().getEntityByConfigId(configId, groupId);
@@ -1,5 +1,8 @@
package emu.grasscutter.server.game;
import static emu.grasscutter.config.Configuration.*;
import static emu.grasscutter.utils.lang.Language.translate;
import emu.grasscutter.*;
import emu.grasscutter.Grasscutter.ServerRunMode;
import emu.grasscutter.database.DatabaseHelper;
@@ -29,18 +32,13 @@ import emu.grasscutter.server.event.internal.*;
import emu.grasscutter.server.event.types.ServerEvent;
import emu.grasscutter.server.scheduler.ServerTaskScheduler;
import emu.grasscutter.task.TaskMap;
import emu.grasscutter.utils.Utils;
import kcp.highway.*;
import lombok.*;
import org.jetbrains.annotations.NotNull;
import java.net.*;
import java.time.*;
import java.util.*;
import java.util.concurrent.*;
import static emu.grasscutter.config.Configuration.*;
import static emu.grasscutter.utils.lang.Language.translate;
import java.util.concurrent.ConcurrentHashMap;
import kcp.highway.*;
import lombok.*;
import org.jetbrains.annotations.NotNull;
@Getter
public final class GameServer extends KcpServer implements Iterable<Player> {
@@ -328,27 +326,16 @@ public final class GameServer extends KcpServer implements Iterable<Player> {
}
public void onServerShutdown() {
var event = new ServerStopEvent(ServerEvent.Type.GAME, OffsetDateTime.now());
ServerStopEvent event = new ServerStopEvent(ServerEvent.Type.GAME, OffsetDateTime.now());
event.call();
this.getPlayers()
.forEach(
(uid, player) -> player.getSession().close());
.forEach(
(uid, player) -> {
player.getSession().close();
});
this.getWorlds().forEach(World::save);
Utils.sleep(1000L); // Wait 1 second for operations to finish.
try {
var threadPool = GameSessionManager.getLogicThread();
// Shutdown network thread.
threadPool.shutdownGracefully();
// Wait for the network thread to finish.
if (!threadPool.awaitTermination(5, TimeUnit.SECONDS)) {
Grasscutter.getLogger().error("Logic thread did not terminate!");
}
} catch (InterruptedException ignored) { }
}
@NotNull @Override
@@ -1,21 +1,27 @@
package emu.grasscutter.server.game;
import static emu.grasscutter.config.Configuration.GAME_INFO;
import static emu.grasscutter.config.Configuration.SERVER;
import static emu.grasscutter.utils.lang.Language.translate;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.Grasscutter.ServerDebugMode;
import emu.grasscutter.game.Account;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.packet.PacketOpcodesUtils;
import emu.grasscutter.server.event.game.SendPacketEvent;
import emu.grasscutter.utils.*;
import io.netty.buffer.*;
import lombok.*;
import emu.grasscutter.utils.Crypto;
import emu.grasscutter.utils.FileUtils;
import emu.grasscutter.utils.Utils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import java.io.File;
import java.net.InetSocketAddress;
import java.nio.file.Path;
import static emu.grasscutter.config.Configuration.*;
import static emu.grasscutter.utils.lang.Language.translate;
import lombok.Getter;
import lombok.Setter;
public class GameSession implements GameSessionManager.KcpChannel {
private final GameServer server;
@@ -133,11 +139,7 @@ public class GameSession implements GameSessionManager.KcpChannel {
SendPacketEvent event = new SendPacketEvent(this, packet);
event.call();
if (!event.isCanceled()) { // If event is not cancelled, continue.
try {
tunnel.writeData(event.getPacket().build());
} catch (Exception ignored) {
Grasscutter.getLogger().debug("Unable to send packet to client.");
}
tunnel.writeData(event.getPacket().build());
}
}
@@ -2,16 +2,16 @@ package emu.grasscutter.server.game;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.utils.Utils;
import io.netty.buffer.*;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.DefaultEventLoop;
import kcp.highway.*;
import lombok.Getter;
import java.net.InetSocketAddress;
import java.util.concurrent.ConcurrentHashMap;
import kcp.highway.KcpListener;
import kcp.highway.Ukcp;
public class GameSessionManager {
@Getter private static final DefaultEventLoop logicThread = new DefaultEventLoop();
private static final DefaultEventLoop logicThread = new DefaultEventLoop();
private static final ConcurrentHashMap<Ukcp, GameSession> sessions = new ConcurrentHashMap<>();
private static final KcpListener listener =
new KcpListener() {
@@ -1,13 +1,15 @@
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.data.GameData;
import emu.grasscutter.data.excels.GadgetData;
import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.data.excels.monster.MonsterData;
import emu.grasscutter.game.entity.*;
import emu.grasscutter.game.world.Position;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.QuestCreateEntityReqOuterClass.QuestCreateEntityReq;
import emu.grasscutter.scripts.data.SceneGadget;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketQuestCreateEntityRsp;
import lombok.val;
@@ -28,29 +30,12 @@ public class HandlerQuestCreateEntityReq extends PacketHandler {
case GADGET_ID -> {
val gadgetId = entity.getGadgetId();
val gadgetInfo = entity.getGadget();
var gadgetData = GameData.getGadgetDataMap().get(gadgetId);
GadgetData gadgetData = GameData.getGadgetDataMap().get(gadgetId);
gameEntity =
switch (gadgetData.getType()) {
case Vehicle -> new EntityVehicle(scene, session.getPlayer(), gadgetId, 0, pos, rot);
case Chest -> {
var chest = gadgetInfo.getChest();
var gadget = new EntityGadget(scene, gadgetId, pos, rot);
// Create the gadget data for the chest.
var metaGadget = new SceneGadget();
metaGadget.drop_count = 1; // TODO: Check if more items should be dropped.
metaGadget.chest_drop_id = chest.getChestDropId();
metaGadget.setShowcutscene(chest.getIsShowCutscene());
// Apply the gadget data to the chest.
gadget.setMetaGadget(metaGadget);
yield gadget;
}
default -> new EntityGadget(scene, gadgetId, pos, rot);
};
if (gameEntity instanceof EntityGadget gadget) {
gadget.buildContent();
}
}
case ITEM_ID -> {
val itemId = entity.getItemId();
+5 -37
View File
@@ -1,5 +1,8 @@
package emu.grasscutter.utils;
import static emu.grasscutter.utils.FileUtils.getResourcePath;
import static emu.grasscutter.utils.lang.Language.translate;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.config.ConfigContainer;
import emu.grasscutter.data.DataLoader;
@@ -8,20 +11,15 @@ import emu.grasscutter.utils.objects.Returnable;
import io.javalin.http.Context;
import io.netty.buffer.*;
import it.unimi.dsi.fastutil.ints.*;
import org.slf4j.Logger;
import javax.annotation.Nullable;
import java.io.*;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.nio.file.*;
import java.time.*;
import java.time.temporal.TemporalAdjusters;
import java.util.*;
import java.util.concurrent.ThreadLocalRandom;
import static emu.grasscutter.utils.FileUtils.getResourcePath;
import static emu.grasscutter.utils.lang.Language.translate;
import javax.annotation.Nullable;
import org.slf4j.Logger;
@SuppressWarnings({"UnusedReturnValue", "BooleanMethodIsAlwaysInverted"})
public final class Utils {
@@ -486,7 +484,6 @@ public final class Utils {
*
* @param runnable The task to run.
*/
@SuppressWarnings("BusyWait")
public static void waitFor(Returnable<Boolean> runnable) {
while (!runnable.invoke()) {
try {
@@ -496,33 +493,4 @@ public final class Utils {
}
}
}
/**
* Recursively finds all fields in a class.
*
* @param type The class to find fields in.
* @return A list of all fields in the class.
*/
public static List<Field> getAllFields(Class<?> type) {
var fields = new LinkedList<>(Arrays.asList(type.getDeclaredFields()));
// Check for superclasses.
if (type.getSuperclass() != null) {
fields.addAll(getAllFields(type.getSuperclass()));
}
return fields;
}
/**
* Sleeps the current thread without an exception.
*
* @param millis The amount of milliseconds to sleep.
*/
public static void sleep(long millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException ignored) {
}
}
}
@@ -1,11 +1,11 @@
package emu.grasscutter.utils.objects;
import com.google.gson.*;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import emu.grasscutter.server.dispatch.IDispatcher;
import emu.grasscutter.utils.Utils;
import java.lang.reflect.Field;
import java.util.*;
import java.util.Arrays;
import java.util.HashMap;
public interface FieldFetch {
/**
@@ -18,7 +18,7 @@ public interface FieldFetch {
// Prepare field properties.
var fieldValues = new JsonObject();
var fieldMap = new HashMap<String, Field>();
Utils.getAllFields(this.getClass())
Arrays.stream(this.getClass().getDeclaredFields())
.forEach(field -> fieldMap.put(field.getName(), field));
// Find the values of all requested fields.
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Failed to disable plugin: %s",
"invalid_api": {
"not_present": "Plugin %s does not specify an API version.",
"lower": "Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "Plugin %s is using an outdated API method."
"lower": "Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Error al desactivar el plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Impossible de désactiver le plugin %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Impossibile disabilitare il plug-in: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "プラグインの無効化に失敗しました: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "플러그인을 비활성화하는데 실패했습니다: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Nie udało się wyłączyć pluginu: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "🇺🇸Failed to disable plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "Ошибка отключения Плагина: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "无法禁用插件:%s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}
+1 -2
View File
@@ -463,8 +463,7 @@
"disabling_failed": "🇺🇸Failed to disable plugin: %s",
"invalid_api": {
"not_present": "🇺🇸Plugin %s does not specify an API version.",
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s.",
"outdated": "🇺🇸Plugin %s is using an outdated API method."
"lower": "🇺🇸Plugin %s is using API version %s, while the server is using API version %s."
}
}
}