gitextract_ph8u3uww/ ├── .editorconfig ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── dependabot.yml │ └── workflows/ │ ├── build.yml │ └── publish.yml ├── .gitignore ├── LICENSE ├── README.md ├── SECURITY.md ├── build-logic/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── kotlin/ │ ├── extensions.kt │ ├── vb.base-conventions.gradle.kts │ ├── vb.build-logic.gradle.kts │ └── vb.shadow-conventions.gradle.kts ├── build.gradle.kts ├── bukkit/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── viaversion/ │ │ └── viabackwards/ │ │ ├── BukkitPlugin.java │ │ ├── listener/ │ │ │ ├── DurabilitySync1_11.java │ │ │ ├── FireExtinguish1_16.java │ │ │ ├── ItemDropSync1_17.java │ │ │ ├── LecternInteract1_14.java │ │ │ ├── PlayerHurtSound1_12.java │ │ │ └── SpearAttack1_21_11.java │ │ └── provider/ │ │ └── BukkitAdvancementCriteriaProvider.java │ └── resources/ │ └── plugin.yml ├── common/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── viaversion/ │ │ └── viabackwards/ │ │ ├── ViaBackwards.java │ │ ├── ViaBackwardsConfig.java │ │ ├── ViaBackwardsPlatformImpl.java │ │ ├── api/ │ │ │ ├── BackwardsProtocol.java │ │ │ ├── DialogStyleConfig.java │ │ │ ├── ViaBackwardsConfig.java │ │ │ ├── ViaBackwardsPlatform.java │ │ │ ├── data/ │ │ │ │ ├── BackwardsMappingData.java │ │ │ │ ├── BackwardsMappingDataLoader.java │ │ │ │ ├── ItemMappings.java │ │ │ │ ├── MappedItem.java │ │ │ │ ├── MappedLegacyBlockItem.java │ │ │ │ └── TranslatableMappings.java │ │ │ ├── entities/ │ │ │ │ └── storage/ │ │ │ │ ├── EntityObjectData.java │ │ │ │ ├── EntityPositionHandler.java │ │ │ │ ├── EntityPositionStorage.java │ │ │ │ ├── EntityReplacement.java │ │ │ │ ├── PlayerPositionStorage.java │ │ │ │ └── WrappedEntityData.java │ │ │ └── rewriters/ │ │ │ ├── BackwardsItemRewriter.java │ │ │ ├── BackwardsItemRewriterBase.java │ │ │ ├── BackwardsRegistryRewriter.java │ │ │ ├── BackwardsStructuredItemRewriter.java │ │ │ ├── EnchantmentRewriter.java │ │ │ ├── EntityRewriter.java │ │ │ ├── EntityRewriterBase.java │ │ │ ├── LegacyBlockItemRewriter.java │ │ │ ├── LegacyEnchantmentRewriter.java │ │ │ ├── LegacyEntityRewriter.java │ │ │ ├── LegacySoundRewriter.java │ │ │ ├── MapColorRewriter.java │ │ │ ├── SoundRewriter.java │ │ │ ├── StructuredEnchantmentRewriter.java │ │ │ └── text/ │ │ │ ├── JsonNBTComponentRewriter.java │ │ │ ├── NBTComponentRewriter.java │ │ │ └── TranslatableRewriter.java │ │ ├── item/ │ │ │ └── DataItemWithExtras.java │ │ ├── protocol/ │ │ │ ├── registration/ │ │ │ │ ├── BackwardsRegistrations.java │ │ │ │ └── RegistryRegistrations.java │ │ │ ├── template/ │ │ │ │ ├── BlockItemPacketRewriter99_1.java │ │ │ │ ├── ComponentRewriter99_1.java │ │ │ │ ├── EntityPacketRewriter99_1.java │ │ │ │ └── Protocol99_1To98_1.java │ │ │ ├── v1_10to1_9_3/ │ │ │ │ ├── Protocol1_10To1_9_3.java │ │ │ │ └── rewriter/ │ │ │ │ ├── BlockItemPacketRewriter1_10.java │ │ │ │ └── EntityPacketRewriter1_10.java │ │ │ ├── v1_11_1to1_11/ │ │ │ │ ├── Protocol1_11_1To1_11.java │ │ │ │ └── rewriter/ │ │ │ │ ├── EntityPacketRewriter1_11_1.java │ │ │ │ └── ItemPacketRewriter1_11_1.java │ │ │ ├── v1_11to1_10/ │ │ │ │ ├── Protocol1_11To1_10.java │ │ │ │ ├── data/ │ │ │ │ │ └── SplashPotionMappings1_10.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_11.java │ │ │ │ │ ├── EntityPacketRewriter1_11.java │ │ │ │ │ └── PlayerPacketRewriter1_11.java │ │ │ │ └── storage/ │ │ │ │ ├── ChestedHorseStorage.java │ │ │ │ └── WindowTracker.java │ │ │ ├── v1_12_1to1_12/ │ │ │ │ └── Protocol1_12_1To1_12.java │ │ │ ├── v1_12_2to1_12_1/ │ │ │ │ ├── Protocol1_12_2To1_12_1.java │ │ │ │ └── storage/ │ │ │ │ └── KeepAliveTracker.java │ │ │ ├── v1_12to1_11_1/ │ │ │ │ ├── Protocol1_12To1_11_1.java │ │ │ │ ├── data/ │ │ │ │ │ ├── BlockColors1_11_1.java │ │ │ │ │ └── MapColorMappings1_11_1.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_12.java │ │ │ │ │ ├── ComponentRewriter1_12.java │ │ │ │ │ ├── EntityPacketRewriter1_12.java │ │ │ │ │ └── SoundPacketRewriter1_12.java │ │ │ │ └── storage/ │ │ │ │ ├── ParrotStorage.java │ │ │ │ └── ShoulderTracker.java │ │ │ ├── v1_13_1to1_13/ │ │ │ │ ├── Protocol1_13_1To1_13.java │ │ │ │ └── rewriter/ │ │ │ │ ├── CommandRewriter1_13_1.java │ │ │ │ ├── EntityPacketRewriter1_13_1.java │ │ │ │ ├── ItemPacketRewriter1_13_1.java │ │ │ │ └── WorldPacketRewriter1_13_1.java │ │ │ ├── v1_13_2to1_13_1/ │ │ │ │ ├── Protocol1_13_2To1_13_1.java │ │ │ │ └── rewriter/ │ │ │ │ ├── EntityPacketRewriter1_13_2.java │ │ │ │ ├── ItemPacketRewriter1_13_2.java │ │ │ │ └── WorldPacketRewriter1_13_2.java │ │ │ ├── v1_13to1_12_2/ │ │ │ │ ├── Protocol1_13To1_12_2.java │ │ │ │ ├── block_entity_handlers/ │ │ │ │ │ ├── BannerHandler.java │ │ │ │ │ ├── BedHandler.java │ │ │ │ │ ├── FlowerPotHandler.java │ │ │ │ │ ├── PistonHandler.java │ │ │ │ │ ├── SkullHandler.java │ │ │ │ │ └── SpawnerHandler.java │ │ │ │ ├── data/ │ │ │ │ │ ├── BackwardsMappingData1_13.java │ │ │ │ │ ├── EntityIdMappings1_12_2.java │ │ │ │ │ ├── EntityNameMappings1_12_2.java │ │ │ │ │ ├── NamedSoundMappings1_12_2.java │ │ │ │ │ ├── PaintingNames1_13.java │ │ │ │ │ └── ParticleIdMappings1_12_2.java │ │ │ │ ├── provider/ │ │ │ │ │ └── BackwardsBlockEntityProvider.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_13.java │ │ │ │ │ ├── EntityPacketRewriter1_13.java │ │ │ │ │ ├── PlayerPacketRewriter1_13.java │ │ │ │ │ └── SoundPacketRewriter1_13.java │ │ │ │ └── storage/ │ │ │ │ ├── BackwardsBlockStorage.java │ │ │ │ ├── NoteBlockStorage.java │ │ │ │ ├── PlayerPositionStorage1_13.java │ │ │ │ └── TabCompleteStorage.java │ │ │ ├── v1_14_1to1_14/ │ │ │ │ ├── Protocol1_14_1To1_14.java │ │ │ │ └── rewriter/ │ │ │ │ └── EntityPacketRewriter1_14_1.java │ │ │ ├── v1_14_2to1_14_1/ │ │ │ │ └── Protocol1_14_2To1_14_1.java │ │ │ ├── v1_14_3to1_14_2/ │ │ │ │ └── Protocol1_14_3To1_14_2.java │ │ │ ├── v1_14_4to1_14_3/ │ │ │ │ └── Protocol1_14_4To1_14_3.java │ │ │ ├── v1_14to1_13_2/ │ │ │ │ ├── Protocol1_14To1_13_2.java │ │ │ │ ├── data/ │ │ │ │ │ └── BackwardsMappingData1_14.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_14.java │ │ │ │ │ ├── CommandRewriter1_14.java │ │ │ │ │ ├── EntityPacketRewriter1_14.java │ │ │ │ │ ├── PlayerPacketRewriter1_14.java │ │ │ │ │ └── SoundPacketRewriter1_14.java │ │ │ │ └── storage/ │ │ │ │ ├── ChunkLightStorage.java │ │ │ │ ├── DifficultyStorage.java │ │ │ │ └── EntityPositionStorage1_14.java │ │ │ ├── v1_15_1to1_15/ │ │ │ │ └── Protocol1_15_1To1_15.java │ │ │ ├── v1_15_2to1_15_1/ │ │ │ │ └── Protocol1_15_2To1_15_1.java │ │ │ ├── v1_15to1_14_4/ │ │ │ │ ├── Protocol1_15To1_14_4.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_15.java │ │ │ │ │ └── EntityPacketRewriter1_15.java │ │ │ │ └── storage/ │ │ │ │ └── ImmediateRespawnStorage.java │ │ │ ├── v1_16_1to1_16/ │ │ │ │ └── Protocol1_16_1To1_16.java │ │ │ ├── v1_16_2to1_16_1/ │ │ │ │ ├── Protocol1_16_2To1_16_1.java │ │ │ │ ├── data/ │ │ │ │ │ └── BiomeMappings1_16_1.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_16_2.java │ │ │ │ │ ├── CommandRewriter1_16_2.java │ │ │ │ │ └── EntityPacketRewriter1_16_2.java │ │ │ │ └── storage/ │ │ │ │ └── BiomeStorage.java │ │ │ ├── v1_16_3to1_16_2/ │ │ │ │ └── Protocol1_16_3To1_16_2.java │ │ │ ├── v1_16_4to1_16_3/ │ │ │ │ ├── Protocol1_16_4To1_16_3.java │ │ │ │ └── storage/ │ │ │ │ └── PlayerHandStorage.java │ │ │ ├── v1_16to1_15_2/ │ │ │ │ ├── Protocol1_16To1_15_2.java │ │ │ │ ├── data/ │ │ │ │ │ ├── BackwardsMappingData1_16.java │ │ │ │ │ └── MapColorMappings1_15_2.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_16.java │ │ │ │ │ ├── CommandRewriter1_16.java │ │ │ │ │ ├── EntityPacketRewriter1_16.java │ │ │ │ │ └── TranslatableRewriter1_16.java │ │ │ │ └── storage/ │ │ │ │ ├── PlayerAttributesStorage.java │ │ │ │ ├── PlayerSneakStorage.java │ │ │ │ ├── WolfDataMaskStorage.java │ │ │ │ └── WorldNameTracker.java │ │ │ ├── v1_17_1to1_17/ │ │ │ │ ├── Protocol1_17_1To1_17.java │ │ │ │ └── storage/ │ │ │ │ └── InventoryStateIds.java │ │ │ ├── v1_17to1_16_4/ │ │ │ │ ├── Protocol1_17To1_16_4.java │ │ │ │ ├── data/ │ │ │ │ │ └── MapColorMappings1_16_4.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_17.java │ │ │ │ │ └── EntityPacketRewriter1_17.java │ │ │ │ └── storage/ │ │ │ │ └── PlayerLastCursorItem.java │ │ │ ├── v1_18_2to1_18/ │ │ │ │ ├── Protocol1_18_2To1_18.java │ │ │ │ └── rewriter/ │ │ │ │ └── CommandRewriter1_18_2.java │ │ │ ├── v1_18to1_17_1/ │ │ │ │ ├── Protocol1_18To1_17_1.java │ │ │ │ ├── data/ │ │ │ │ │ ├── BackwardsMappingData1_18.java │ │ │ │ │ └── BlockEntityMappings1_17_1.java │ │ │ │ └── rewriter/ │ │ │ │ ├── BlockItemPacketRewriter1_18.java │ │ │ │ └── EntityPacketRewriter1_18.java │ │ │ ├── v1_19_1to1_19/ │ │ │ │ ├── Protocol1_19_1To1_19.java │ │ │ │ ├── rewriter/ │ │ │ │ │ └── EntityPacketRewriter1_19_1.java │ │ │ │ └── storage/ │ │ │ │ ├── ChatRegistryStorage.java │ │ │ │ ├── ChatRegistryStorage1_19_1.java │ │ │ │ ├── NonceStorage.java │ │ │ │ └── ReceivedMessagesStorage.java │ │ │ ├── v1_19_3to1_19_1/ │ │ │ │ ├── Protocol1_19_3To1_19_1.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_19_3.java │ │ │ │ │ └── EntityPacketRewriter1_19_3.java │ │ │ │ └── storage/ │ │ │ │ ├── ChatSessionStorage.java │ │ │ │ ├── ChatTypeStorage1_19_3.java │ │ │ │ └── NonceStorage.java │ │ │ ├── v1_19_4to1_19_3/ │ │ │ │ ├── Protocol1_19_4To1_19_3.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_19_4.java │ │ │ │ │ └── EntityPacketRewriter1_19_4.java │ │ │ │ └── storage/ │ │ │ │ ├── EntityTracker1_19_4.java │ │ │ │ └── LinkedEntityStorage.java │ │ │ ├── v1_19to1_18_2/ │ │ │ │ ├── Protocol1_19To1_18_2.java │ │ │ │ ├── data/ │ │ │ │ │ └── BackwardsMappingData1_19.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_19.java │ │ │ │ │ ├── CommandRewriter1_19.java │ │ │ │ │ └── EntityPacketRewriter1_19.java │ │ │ │ └── storage/ │ │ │ │ ├── DimensionRegistryStorage.java │ │ │ │ ├── EntityTracker1_19.java │ │ │ │ ├── LastDeathPosition.java │ │ │ │ ├── NonceStorage.java │ │ │ │ └── StoredPainting.java │ │ │ ├── v1_20_2to1_20/ │ │ │ │ ├── Protocol1_20_2To1_20.java │ │ │ │ ├── provider/ │ │ │ │ │ └── AdvancementCriteriaProvider.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_20_2.java │ │ │ │ │ ├── BlockRewriter1_20_2.java │ │ │ │ │ └── EntityPacketRewriter1_20_2.java │ │ │ │ └── storage/ │ │ │ │ └── ConfigurationPacketStorage.java │ │ │ ├── v1_20_3to1_20_2/ │ │ │ │ ├── Protocol1_20_3To1_20_2.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_20_3.java │ │ │ │ │ ├── BlockPacketRewriter1_20_3.java │ │ │ │ │ └── EntityPacketRewriter1_20_3.java │ │ │ │ └── storage/ │ │ │ │ ├── ResourcepackIDStorage.java │ │ │ │ └── SpawnPositionStorage.java │ │ │ ├── v1_20_5to1_20_3/ │ │ │ │ ├── Protocol1_20_5To1_20_3.java │ │ │ │ ├── Types1_20_3.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── NoopTransferProvider.java │ │ │ │ │ └── TransferProvider.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_20_5.java │ │ │ │ │ ├── BlockPacketRewriter1_20_5.java │ │ │ │ │ ├── ComponentRewriter1_20_5.java │ │ │ │ │ └── EntityPacketRewriter1_20_5.java │ │ │ │ └── storage/ │ │ │ │ ├── CookieStorage.java │ │ │ │ ├── RegistryDataStorage.java │ │ │ │ └── SecureChatStorage.java │ │ │ ├── v1_20to1_19_4/ │ │ │ │ ├── Protocol1_20To1_19_4.java │ │ │ │ ├── data/ │ │ │ │ │ └── BackwardsMappingData1_20.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_20.java │ │ │ │ │ ├── BlockPacketRewriter1_20.java │ │ │ │ │ └── EntityPacketRewriter1_20.java │ │ │ │ └── storage/ │ │ │ │ └── BackSignEditStorage.java │ │ │ ├── v1_21_11to1_21_9/ │ │ │ │ ├── Protocol1_21_11To1_21_9.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21_11.java │ │ │ │ │ ├── ComponentRewriter1_21_11.java │ │ │ │ │ └── EntityPacketRewriter1_21_11.java │ │ │ │ └── storage/ │ │ │ │ └── GameTimeStorage.java │ │ │ ├── v1_21_2to1_21/ │ │ │ │ ├── Protocol1_21_2To1_21.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21_2.java │ │ │ │ │ ├── ComponentRewriter1_21_2.java │ │ │ │ │ ├── EntityPacketRewriter1_21_2.java │ │ │ │ │ └── ParticleRewriter1_21_2.java │ │ │ │ ├── storage/ │ │ │ │ │ ├── InventoryStateIdStorage.java │ │ │ │ │ ├── ItemTagStorage.java │ │ │ │ │ ├── PlayerStorage.java │ │ │ │ │ ├── RecipeStorage.java │ │ │ │ │ └── SignStorage.java │ │ │ │ └── task/ │ │ │ │ └── PlayerPacketsTickTask.java │ │ │ ├── v1_21_4to1_21_2/ │ │ │ │ ├── Protocol1_21_4To1_21_2.java │ │ │ │ └── rewriter/ │ │ │ │ ├── BlockItemPacketRewriter1_21_4.java │ │ │ │ ├── ComponentRewriter1_21_4.java │ │ │ │ ├── EntityPacketRewriter1_21_4.java │ │ │ │ └── ParticleRewriter1_21_4.java │ │ │ ├── v1_21_5to1_21_4/ │ │ │ │ ├── Protocol1_21_5To1_21_4.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21_5.java │ │ │ │ │ ├── BlockPacketRewriter1_21_5.java │ │ │ │ │ ├── ComponentRewriter1_21_5.java │ │ │ │ │ ├── EntityPacketRewriter1_21_5.java │ │ │ │ │ └── RegistryDataRewriter1_21_5.java │ │ │ │ └── storage/ │ │ │ │ ├── HashedItemConverterStorage.java │ │ │ │ └── HorseDataStorage.java │ │ │ ├── v1_21_6to1_21_5/ │ │ │ │ ├── Protocol1_21_6To1_21_5.java │ │ │ │ ├── data/ │ │ │ │ │ ├── Button.java │ │ │ │ │ ├── Dialog.java │ │ │ │ │ ├── Template.java │ │ │ │ │ ├── input/ │ │ │ │ │ │ ├── BooleanInput.java │ │ │ │ │ │ ├── Input.java │ │ │ │ │ │ ├── NumberRangeInput.java │ │ │ │ │ │ ├── SingleOptionInput.java │ │ │ │ │ │ └── TextInput.java │ │ │ │ │ └── widget/ │ │ │ │ │ ├── ItemWidget.java │ │ │ │ │ ├── TextWidget.java │ │ │ │ │ └── Widget.java │ │ │ │ ├── provider/ │ │ │ │ │ ├── ChestDialogViewProvider.java │ │ │ │ │ └── DialogViewProvider.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21_6.java │ │ │ │ │ ├── ComponentRewriter1_21_6.java │ │ │ │ │ ├── EntityPacketRewriter1_21_6.java │ │ │ │ │ └── RegistryDataRewriter1_21_6.java │ │ │ │ ├── storage/ │ │ │ │ │ ├── ChestDialogStorage.java │ │ │ │ │ ├── ClickEvents.java │ │ │ │ │ ├── RegistryAndTags.java │ │ │ │ │ └── ServerLinks.java │ │ │ │ └── task/ │ │ │ │ └── ChestDialogViewTask.java │ │ │ ├── v1_21_7to1_21_6/ │ │ │ │ ├── Protocol1_21_7To1_21_6.java │ │ │ │ └── rewriter/ │ │ │ │ ├── BlockItemPacketRewriter1_21_7.java │ │ │ │ └── EntityPacketRewriter1_21_7.java │ │ │ ├── v1_21_9to1_21_7/ │ │ │ │ ├── Protocol1_21_9To1_21_7.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21_9.java │ │ │ │ │ ├── ComponentRewriter1_21_9.java │ │ │ │ │ ├── EntityPacketRewriter1_21_9.java │ │ │ │ │ ├── ParticleRewriter1_21_9.java │ │ │ │ │ └── RegistryDataRewriter1_21_9.java │ │ │ │ ├── storage/ │ │ │ │ │ ├── DimensionScaleStorage.java │ │ │ │ │ ├── MannequinData.java │ │ │ │ │ └── PlayerRotationStorage.java │ │ │ │ └── tracker/ │ │ │ │ └── EntityTracker1_21_9.java │ │ │ ├── v1_21to1_20_5/ │ │ │ │ ├── Protocol1_21To1_20_5.java │ │ │ │ ├── rewriter/ │ │ │ │ │ ├── BlockItemPacketRewriter1_21.java │ │ │ │ │ ├── ComponentRewriter1_21.java │ │ │ │ │ └── EntityPacketRewriter1_21.java │ │ │ │ └── storage/ │ │ │ │ ├── EnchantmentsPaintingsStorage.java │ │ │ │ ├── OpenScreenStorage.java │ │ │ │ └── PlayerRotationStorage.java │ │ │ ├── v1_9_1to1_9/ │ │ │ │ └── Protocol1_9_1To1_9.java │ │ │ ├── v1_9_3to1_9_1/ │ │ │ │ ├── Protocol1_9_3To1_9_1.java │ │ │ │ └── data/ │ │ │ │ └── BlockEntity1_9_1.java │ │ │ └── v26_1to1_21_11/ │ │ │ ├── Protocol26_1To1_21_11.java │ │ │ ├── rewriter/ │ │ │ │ ├── BlockItemPacketRewriter26_1.java │ │ │ │ ├── ComponentRewriter26_1.java │ │ │ │ └── EntityPacketRewriter26_1.java │ │ │ └── storage/ │ │ │ ├── DayTimeStorage.java │ │ │ └── GameModeStorage.java │ │ └── utils/ │ │ ├── BackwardsProtocolLogger.java │ │ ├── ChatUtil.java │ │ └── VelocityUtil.java │ ├── java-templates/ │ │ └── com/ │ │ └── viaversion/ │ │ └── viabackwards/ │ │ └── utils/ │ │ └── VersionInfo.java │ └── resources/ │ └── assets/ │ └── viabackwards/ │ ├── config.yml │ └── data/ │ ├── biome-mappings.json │ ├── chat-types-1.19.1.nbt │ ├── item-mappings-1.10.json │ ├── item-mappings-1.11.1.json │ ├── item-mappings-1.11.json │ ├── item-mappings-1.12.json │ ├── mappings-1.10to1.9.4.nbt │ ├── mappings-1.11to1.10.nbt │ ├── mappings-1.12to1.11.nbt │ ├── mappings-1.13.2to1.13.nbt │ ├── mappings-1.13to1.12.nbt │ ├── mappings-1.14to1.13.2.nbt │ ├── mappings-1.15to1.14.nbt │ ├── mappings-1.16.2to1.16.nbt │ ├── mappings-1.16to1.15.nbt │ ├── mappings-1.17to1.16.2.nbt │ ├── mappings-1.18to1.17.nbt │ ├── mappings-1.19.3to1.19.nbt │ ├── mappings-1.19.4to1.19.3.nbt │ ├── mappings-1.19to1.18.nbt │ ├── mappings-1.20.2to1.20.nbt │ ├── mappings-1.20.3to1.20.2.nbt │ ├── mappings-1.20.5to1.20.3.nbt │ ├── mappings-1.20to1.19.4.nbt │ ├── mappings-1.21.11to1.21.9.nbt │ ├── mappings-1.21.2to1.21.nbt │ ├── mappings-1.21.4to1.21.2.nbt │ ├── mappings-1.21.5to1.21.4.nbt │ ├── mappings-1.21.6to1.21.5.nbt │ ├── mappings-1.21.7to1.21.6.nbt │ ├── mappings-1.21.9to1.21.7.nbt │ ├── mappings-1.21to1.20.5.nbt │ ├── mappings-26.1to1.21.11.nbt │ ├── translation-mappings.json │ └── trim_pattern-1.19.4.nbt ├── fabric/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ ├── java/ │ │ └── com/ │ │ └── viaversion/ │ │ └── viabackwards/ │ │ ├── ViaFabricAddon.java │ │ └── fabric/ │ │ └── util/ │ │ └── LoggerWrapper.java │ └── resources/ │ └── fabric.mod.json ├── gradle/ │ ├── libs.versions.toml │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts ├── sponge/ │ ├── build.gradle.kts │ └── src/ │ └── main/ │ └── resources/ │ └── META-INF/ │ └── sponge_plugins.json ├── universal/ │ └── build.gradle.kts └── velocity/ ├── build.gradle.kts └── src/ └── main/ └── java/ └── com/ └── viaversion/ └── viabackwards/ └── VelocityPlugin.java