From c93a04a001b0f66b2724d46b04b6d1ed49a08d07 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Mon, 17 Nov 2025 19:55:02 +0100 Subject: refactor: port to mojmaps --- .../compat/jade/CustomFakeBlockProvider.kt | 2 +- .../compat/jade/CustomMiningHardnessProvider.kt | 14 +- .../nea/firmament/compat/jade/DrillToolProvider.kt | 10 +- .../firmament/compat/jade/FirmamentJadePlugin.kt | 2 +- .../nea/firmament/compat/jade/JadeIntegration.kt | 2 +- ...isplayForCustomBlocksInHarvestToolProvider.java | 6 +- .../mixins/compat/jade/OnUpdateBreakProgress.java | 10 +- .../compat/jade/PatchBreakingBarSpeedJade.java | 4 +- .../moulconfig/java/MCConfigEditorIntegration.kt | 18 +- .../PatchBlockModelInSodiumChunkGenerator.java | 14 +- .../PatchArmorTexturesInGenderMod.java | 12 +- src/compat/yacl/java/KeybindingController.kt | 16 +- src/compat/yacl/java/YaclIntegration.kt | 18 +- .../moe/nea/firmament/init/HandledScreenRiser.java | 22 +-- .../nea/firmament/init/SectionBuilderRiser.java | 16 +- .../firmament/mixins/AppendRepoAsResourcePack.java | 4 +- .../firmament/mixins/BandAidResourcePackPatch.java | 10 +- .../moe/nea/firmament/mixins/ChatPeekingPatch.java | 6 +- .../moe/nea/firmament/mixins/CopyChatPatch.java | 32 ++-- .../firmament/mixins/CustomDurabilityBarPatch.java | 30 +-- .../nea/firmament/mixins/DFUEntityIdFixPatch.java | 8 +- .../moe/nea/firmament/mixins/DisableHurtCam.java | 4 +- .../mixins/DispatchMouseInputEventsPatch.java | 10 +- .../firmament/mixins/EarlyResourceReloadPatch.java | 14 +- .../nea/firmament/mixins/EntityDespawnPatch.java | 6 +- .../firmament/mixins/EntityInteractEventPatch.java | 28 +-- .../mixins/EntityUpdateEventListener.java | 48 ++--- .../mixins/FirmKeybindsInVanillaControlsPatch.java | 32 ++-- .../firmament/mixins/HideStatusEffectsPatch.java | 14 +- .../nea/firmament/mixins/HudRenderEventsPatch.java | 20 +- .../mixins/IncomingPacketListenerPatches.java | 24 +-- .../mixins/KeyPressInWorldEventPatch.java | 12 +- .../firmament/mixins/MainWindowFirstLoadPatch.java | 8 +- .../mixins/MaintainKeyboardStatePatch.java | 10 +- .../mixins/MinecraftInitLevelListener.java | 6 +- .../nea/firmament/mixins/MixinHandledScreen.java | 72 +++---- .../firmament/mixins/MixinPlayerScreenHandler.java | 14 +- .../firmament/mixins/MixinRecipeBookScreen.java | 6 +- .../mixins/MousePressInWorldEventPatch.java | 12 +- .../firmament/mixins/OutgoingPacketEventPatch.java | 8 +- .../nea/firmament/mixins/PlayerDropEventPatch.java | 16 +- .../mixins/ResourceReloaderRegistrationPatch.java | 14 +- .../firmament/mixins/SaveCursorPositionPatch.java | 24 +-- .../mixins/SaveOriginalCommandTreePacket.java | 10 +- .../firmament/mixins/ScreenChangeEventPatch.java | 10 +- .../nea/firmament/mixins/SlotClickEventPatch.java | 22 +-- .../nea/firmament/mixins/SlotUpdateListener.java | 48 ++--- .../firmament/mixins/SoundReceiveEventPatch.java | 22 +-- .../nea/firmament/mixins/ToggleSprintPatch.java | 8 +- .../TolerateFirmamentTolerateRegistryOwners.java | 8 +- .../nea/firmament/mixins/WorldReadyEventPatch.java | 6 +- .../mixins/WorldRenderLastEventPatch.java | 41 ++-- .../AccessorAbstractClientPlayerEntity.java | 10 +- .../firmament/mixins/accessor/AccessorChatHud.java | 18 +- .../mixins/accessor/AccessorHandledScreen.java | 26 +-- .../mixins/accessor/AccessorNbtComponent.java | 10 +- .../mixins/accessor/AccessorPlayerListHud.java | 20 +- .../mixins/accessor/AccessorScreenHandler.java | 10 +- .../mixins/accessor/AccessorWorldRenderer.java | 10 +- .../mixins/customgui/OriginalSlotCoords.java | 2 +- .../mixins/customgui/PatchHandledScreen.java | 90 ++++----- .../mixins/devenv/DisableCommonPacketWarnings.java | 20 +- .../mixins/devenv/DisableInvalidFishingHook.java | 6 +- .../devenv/EarlyInstantiateTranslations.java | 8 +- .../firmament/mixins/devenv/IdentifyCloser.java | 2 +- .../mixins/devenv/IdentifyStopperPatch.java | 6 +- .../nea/firmament/mixins/devenv/MixinKeyboard.java | 10 +- .../firmament/mixins/devenv/MixinScoreboard.java | 5 +- .../devenv/WarnForUnknownCustomPayloadSends.java | 8 +- .../mixins/devenv/WarnOnMissingTranslations.java | 14 +- .../mixins/feature/DisableSlotHighlights.java | 12 +- .../devcosmetics/CustomCapeFeatureRenderer.java | 40 ++-- .../feature/devcosmetics/CustomCapeStorage.java | 4 +- .../IncreaseStackLimitSizeInDrawContext.java | 6 +- .../entitytints/ChangeColorOfLivingEntities.java | 30 +-- .../render/entitytints/EntityRenderStateTint.java | 2 +- .../render/entitytints/InjectIntoRenderState.java | 8 +- .../render/entitytints/ReplaceOverlayTexture.java | 8 +- .../UseOverlayableEquipmentRenderer.java | 26 +-- .../UseOverlayableHeadFeatureRenderer.java | 16 +- .../entitytints/UseOverlayableItemRenderer.java | 20 +- .../UseOverlayableSkullBlockEntityRenderer.java | 16 +- .../renderer/MultipleSpecialGuiRenderStates.java | 24 +-- .../moe/nea/firmament/util/data/ManagedConfig.kt | 28 +-- src/main/kotlin/Firmament.kt | 10 +- src/main/kotlin/apis/Profiles.kt | 6 +- src/main/kotlin/apis/UrsaManager.kt | 8 +- src/main/kotlin/commands/rome.kt | 94 +++++----- src/main/kotlin/events/AllowChatEvent.kt | 4 +- src/main/kotlin/events/AttackBlockEvent.kt | 16 +- .../kotlin/events/ChestInventoryUpdateEvent.kt | 2 +- src/main/kotlin/events/CommandEvent.kt | 6 +- src/main/kotlin/events/CustomItemModelEvent.kt | 36 ++-- src/main/kotlin/events/EarlyResourceReloadEvent.kt | 2 +- src/main/kotlin/events/EntityDespawnEvent.kt | 2 +- src/main/kotlin/events/EntityInteractionEvent.kt | 6 +- src/main/kotlin/events/EntityRenderTintEvent.kt | 14 +- src/main/kotlin/events/EntityUpdateEvent.kt | 26 +-- .../kotlin/events/FinalizeResourceManagerEvent.kt | 20 +- src/main/kotlin/events/HandledScreenClickEvent.kt | 4 +- .../kotlin/events/HandledScreenForegroundEvent.kt | 8 +- .../kotlin/events/HandledScreenKeyPressedEvent.kt | 16 +- .../kotlin/events/HandledScreenPushREIEvent.kt | 4 +- src/main/kotlin/events/HotbarItemRenderEvent.kt | 16 +- src/main/kotlin/events/HudRenderEvent.kt | 12 +- src/main/kotlin/events/IsSlotProtectedEvent.kt | 28 +-- src/main/kotlin/events/ItemTooltipEvent.kt | 10 +- src/main/kotlin/events/JoinServerEvent.kt | 6 +- src/main/kotlin/events/ModifyChatEvent.kt | 6 +- src/main/kotlin/events/OutgoingPacketEvent.kt | 2 +- src/main/kotlin/events/ParticleSpawnEvent.kt | 8 +- src/main/kotlin/events/PlayerInventoryUpdate.kt | 2 +- src/main/kotlin/events/ProcessChatEvent.kt | 4 +- src/main/kotlin/events/ScreenChangeEvent.kt | 2 +- src/main/kotlin/events/ScreenRenderPostEvent.kt | 6 +- src/main/kotlin/events/ServerConnectedEvent.kt | 10 +- src/main/kotlin/events/SlotClickEvent.kt | 8 +- src/main/kotlin/events/SlotRenderEvents.kt | 14 +- src/main/kotlin/events/SoundReceiveEvent.kt | 14 +- src/main/kotlin/events/UseBlockEvent.kt | 10 +- src/main/kotlin/events/UseItemEvent.kt | 12 +- src/main/kotlin/events/WorldRenderLastEvent.kt | 14 +- src/main/kotlin/events/registration/ChatEvents.kt | 22 +-- src/main/kotlin/features/chat/AutoCompletions.kt | 2 +- src/main/kotlin/features/chat/ChatLinks.kt | 48 ++--- src/main/kotlin/features/chat/CopyChat.kt | 4 +- src/main/kotlin/features/chat/PartyCommands.kt | 4 +- src/main/kotlin/features/chat/QuickCommands.kt | 26 +-- .../features/debug/AnimatedClothingScanner.kt | 34 ++-- src/main/kotlin/features/debug/DebugLogger.kt | 4 +- .../kotlin/features/debug/DeveloperFeatures.kt | 12 +- .../features/debug/ExportedTestConstantMeta.kt | 2 +- src/main/kotlin/features/debug/MinorTrolling.kt | 4 +- src/main/kotlin/features/debug/PowerUserTools.kt | 134 +++++++------- src/main/kotlin/features/debug/SkinPreviews.kt | 18 +- src/main/kotlin/features/debug/SoundVisualizer.kt | 4 +- .../features/debug/itemeditor/ExportRecipe.kt | 30 +-- .../features/debug/itemeditor/ItemExporter.kt | 20 +- .../features/debug/itemeditor/LegacyItemData.kt | 8 +- .../debug/itemeditor/LegacyItemExporter.kt | 98 +++++----- .../kotlin/features/diana/AncestralSpadeSolver.kt | 16 +- .../kotlin/features/diana/NearbyBurrowsSolver.kt | 12 +- .../events/anniversity/AnniversaryFeatures.kt | 30 +-- .../events/anniversity/CenturyRaffleFeatures.kt | 28 +-- .../features/events/carnival/MinesweeperHelper.kt | 38 ++-- src/main/kotlin/features/fixes/Fixes.kt | 30 +-- .../kotlin/features/garden/HideComposterNoises.kt | 14 +- .../kotlin/features/inventory/CraftingOverlay.kt | 26 +-- .../features/inventory/ItemRarityCosmetics.kt | 18 +- .../kotlin/features/inventory/JunkHighlighter.kt | 2 +- src/main/kotlin/features/inventory/PetFeatures.kt | 134 +++++++------- src/main/kotlin/features/inventory/PriceData.kt | 18 +- .../features/inventory/REIDependencyWarner.kt | 26 +-- .../features/inventory/SaveCursorPosition.kt | 6 +- src/main/kotlin/features/inventory/SlotLocking.kt | 128 ++++++------- src/main/kotlin/features/inventory/TimerInLore.kt | 12 +- .../kotlin/features/inventory/WardrobeKeybinds.kt | 12 +- .../features/inventory/buttons/InventoryButton.kt | 42 ++--- .../inventory/buttons/InventoryButtonEditor.kt | 116 ++++++------ .../inventory/buttons/InventoryButtonTemplates.kt | 4 +- .../features/inventory/buttons/InventoryButtons.kt | 30 +-- .../storageoverlay/StorageBackingHandle.kt | 20 +- .../inventory/storageoverlay/StorageOverlay.kt | 30 +-- .../storageoverlay/StorageOverlayCustom.kt | 52 +++--- .../storageoverlay/StorageOverlayScreen.kt | 142 +++++++------- .../storageoverlay/StorageOverviewScreen.kt | 54 +++--- .../inventory/storageoverlay/VirtualInventory.kt | 22 +-- .../kotlin/features/items/BlockZapperOverlay.kt | 24 +-- .../kotlin/features/items/BonemerangOverlay.kt | 36 ++-- src/main/kotlin/features/items/EtherwarpOverlay.kt | 76 ++++---- src/main/kotlin/features/macros/ComboProcessor.kt | 22 +-- src/main/kotlin/features/macros/HotkeyAction.kt | 8 +- src/main/kotlin/features/macros/KeyComboTrie.kt | 10 +- src/main/kotlin/features/macros/MacroUI.kt | 8 +- src/main/kotlin/features/macros/RadialMenu.kt | 14 +- .../kotlin/features/mining/CommissionFeatures.kt | 2 +- src/main/kotlin/features/mining/HotmPresets.kt | 60 +++--- .../kotlin/features/mining/MiningBlockInfoUi.kt | 4 +- src/main/kotlin/features/mining/PickaxeAbility.kt | 42 ++--- .../features/mining/PristineProfitTracker.kt | 6 +- src/main/kotlin/features/misc/CustomCapes.kt | 80 ++++---- src/main/kotlin/features/misc/Hud.kt | 46 ++--- src/main/kotlin/features/misc/LicenseViewer.kt | 16 +- src/main/kotlin/features/misc/ModAnnouncer.kt | 28 +-- src/main/kotlin/features/world/ColeWeightCompat.kt | 24 +-- src/main/kotlin/features/world/FairySouls.kt | 4 +- .../kotlin/features/world/FirmWaypointManager.kt | 10 +- src/main/kotlin/features/world/FirmWaypoints.kt | 2 +- .../kotlin/features/world/NavigableWaypoint.kt | 2 +- src/main/kotlin/features/world/NavigationHelper.kt | 24 +-- src/main/kotlin/features/world/NpcWaypointGui.kt | 4 +- .../kotlin/features/world/TemporaryWaypoints.kt | 14 +- src/main/kotlin/features/world/Waypoints.kt | 46 ++--- src/main/kotlin/gui/BarComponent.kt | 32 ++-- src/main/kotlin/gui/CheckboxComponent.kt | 4 +- src/main/kotlin/gui/config/AllConfigsGui.kt | 8 +- .../gui/config/BuiltInConfigScreenProvider.kt | 2 +- src/main/kotlin/gui/config/ChoiceHandler.kt | 6 +- src/main/kotlin/gui/config/EnumRenderer.kt | 8 +- .../gui/config/FirmamentConfigScreenProvider.kt | 2 +- src/main/kotlin/gui/config/GuiAppender.kt | 6 +- src/main/kotlin/gui/config/HudMetaHandler.kt | 18 +- src/main/kotlin/gui/config/JAnyHud.kt | 18 +- .../kotlin/gui/config/KeyBindingStateManager.kt | 10 +- src/main/kotlin/gui/config/ManagedOption.kt | 6 +- src/main/kotlin/gui/config/StringHandler.kt | 4 +- src/main/kotlin/gui/entity/EntityModifier.kt | 2 +- src/main/kotlin/gui/entity/EntityRenderer.kt | 68 +++---- src/main/kotlin/gui/entity/GuiPlayer.kt | 22 +-- src/main/kotlin/gui/entity/ModifyAge.kt | 16 +- src/main/kotlin/gui/entity/ModifyCharged.kt | 8 +- src/main/kotlin/gui/entity/ModifyEquipment.kt | 18 +- src/main/kotlin/gui/entity/ModifyHorse.kt | 42 +++-- src/main/kotlin/gui/entity/ModifyInvisible.kt | 2 +- src/main/kotlin/gui/entity/ModifyName.kt | 6 +- src/main/kotlin/gui/entity/ModifyPlayerSkin.kt | 38 ++-- src/main/kotlin/gui/entity/ModifyRiding.kt | 2 +- src/main/kotlin/gui/entity/ModifyWither.kt | 8 +- src/main/kotlin/gui/hud/MoulConfigHud.kt | 20 +- src/main/kotlin/jarvis/JarvisIntegration.kt | 8 +- .../kotlin/keybindings/FirmamentKeyBindings.kt | 12 +- .../kotlin/keybindings/FirmamentKeyboardState.kt | 4 +- src/main/kotlin/keybindings/GenericInputButton.kt | 80 ++++---- src/main/kotlin/keybindings/SavedKeyBinding.kt | 6 +- src/main/kotlin/repo/ItemCache.kt | 82 ++++---- src/main/kotlin/repo/MiningRepoData.kt | 14 +- src/main/kotlin/repo/Reforge.kt | 18 +- src/main/kotlin/repo/ReforgeStore.kt | 8 +- src/main/kotlin/repo/RepoManager.kt | 16 +- src/main/kotlin/repo/RepoModResourcePack.kt | 74 ++++---- src/main/kotlin/repo/SBItemStack.kt | 146 +++++++-------- .../kotlin/repo/recipes/GenericRecipeRenderer.kt | 10 +- src/main/kotlin/repo/recipes/RecipeLayouter.kt | 6 +- .../repo/recipes/SBCraftingRecipeRenderer.kt | 14 +- .../repo/recipes/SBEssenceUpgradeRecipeRenderer.kt | 10 +- .../kotlin/repo/recipes/SBForgeRecipeRenderer.kt | 20 +- src/main/kotlin/util/CommonSoundEffects.kt | 14 +- src/main/kotlin/util/DurabilityBarEvent.kt | 2 +- src/main/kotlin/util/FirmFormatters.kt | 14 +- src/main/kotlin/util/FragmentGuiScreen.kt | 28 +-- src/main/kotlin/util/HoveredItemStack.kt | 12 +- src/main/kotlin/util/IdentifierSerializer.kt | 10 +- src/main/kotlin/util/LegacyFormattingCode.kt | 4 +- src/main/kotlin/util/LegacyTagParser.kt | 52 +++--- src/main/kotlin/util/LegacyTagWriter.kt | 54 +++--- src/main/kotlin/util/LoadResource.kt | 6 +- src/main/kotlin/util/MC.kt | 126 ++++++------- src/main/kotlin/util/MinecraftDispatcher.kt | 4 +- src/main/kotlin/util/MoulConfigFragment.kt | 14 +- src/main/kotlin/util/MoulConfigUtils.kt | 26 +-- src/main/kotlin/util/ScoreboardUtil.kt | 42 ++--- src/main/kotlin/util/ScreenUtil.kt | 10 +- src/main/kotlin/util/SkyblockId.kt | 46 ++--- src/main/kotlin/util/WarpUtil.kt | 22 +-- src/main/kotlin/util/accessors/GetRectangle.kt | 4 +- src/main/kotlin/util/accessors/chathud.kt | 6 +- src/main/kotlin/util/async/input.kt | 2 +- src/main/kotlin/util/colorconversion.kt | 8 +- .../kotlin/util/customgui/CoordRememberingSlot.kt | 2 +- src/main/kotlin/util/customgui/CustomGui.kt | 34 ++-- src/main/kotlin/util/customgui/HasCustomGui.kt | 4 +- src/main/kotlin/util/json/BlockPosSerializer.kt | 2 +- src/main/kotlin/util/json/FirmCodecs.kt | 4 +- src/main/kotlin/util/math/Projections.kt | 12 +- src/main/kotlin/util/mc/ArmorUtil.kt | 6 +- src/main/kotlin/util/mc/CustomRenderPassHelper.kt | 46 ++--- src/main/kotlin/util/mc/FakeInventory.kt | 24 +-- src/main/kotlin/util/mc/FakeSlot.kt | 12 +- .../kotlin/util/mc/FirmamentDataComponentTypes.kt | 28 +-- .../util/mc/IntrospectableItemModelManager.kt | 4 +- src/main/kotlin/util/mc/InventoryUtil.kt | 14 +- src/main/kotlin/util/mc/ItemUtil.kt | 18 +- src/main/kotlin/util/mc/MCTabListAPI.kt | 32 ++-- src/main/kotlin/util/mc/NbtItemData.kt | 24 +-- src/main/kotlin/util/mc/NbtPrism.kt | 20 +- src/main/kotlin/util/mc/NbtUtil.kt | 10 +- src/main/kotlin/util/mc/PlayerUtil.kt | 6 +- src/main/kotlin/util/mc/SNbtFormatter.kt | 80 ++++---- src/main/kotlin/util/mc/ScreenUtil.kt | 16 +- src/main/kotlin/util/mc/SkullItemData.kt | 12 +- src/main/kotlin/util/mc/SlotUtils.kt | 44 ++--- src/main/kotlin/util/mc/TolerantRegistriesOps.kt | 24 +-- src/main/kotlin/util/mc/asFakeServer.kt | 24 +-- src/main/kotlin/util/render/CustomRenderLayers.kt | 68 +++---- src/main/kotlin/util/render/DrawContextExt.kt | 108 +++++------ src/main/kotlin/util/render/DumpTexture.kt | 6 +- .../kotlin/util/render/FacingThePlayerContext.kt | 94 +++++----- .../util/render/MultiSpecialGuiRenderState.kt | 36 ++-- .../kotlin/util/render/RenderCircleProgress.kt | 88 ++++----- .../kotlin/util/render/RenderInWorldContext.kt | 206 ++++++++++----------- .../kotlin/util/render/TintedOverlayTexture.kt | 10 +- src/main/kotlin/util/render/TranslatedScissors.kt | 8 +- src/main/kotlin/util/skyblock/AbilityUtils.kt | 12 +- src/main/kotlin/util/skyblock/ItemType.kt | 2 +- src/main/kotlin/util/skyblock/PartyUtil.kt | 6 +- src/main/kotlin/util/skyblock/Rarity.kt | 34 ++-- src/main/kotlin/util/skyblock/SBItemUtil.kt | 4 +- src/main/kotlin/util/skyblock/SackUtil.kt | 18 +- .../kotlin/util/skyblock/ScreenIdentification.kt | 14 +- src/main/kotlin/util/skyblock/TabListAPI.kt | 6 +- src/main/kotlin/util/textutil.kt | 114 ++++++------ src/main/resources/firmament.accesswidener | 74 ++++---- .../kotlin/features/macros/KeyComboTrieCreation.kt | 8 +- src/test/kotlin/root.kt | 6 +- src/test/kotlin/testutil/ItemResources.kt | 50 ++--- src/test/kotlin/util/math/ProjectionsBoxTest.kt | 6 +- src/test/kotlin/util/skyblock/AbilityUtilsTest.kt | 12 +- .../features/texturepack/CustomBlockTextures.kt | 131 ++++++------- .../texturepack/CustomBlockTexturesDebugger.kt | 20 +- .../texturepack/CustomGlobalArmorOverrides.kt | 84 ++++----- .../features/texturepack/CustomGlobalTextures.kt | 34 ++-- .../texturepack/CustomModelOverrideParser.kt | 16 +- .../features/texturepack/CustomScreenLayouts.kt | 102 +++++----- .../features/texturepack/CustomSkyBlockTextures.kt | 32 ++-- .../features/texturepack/CustomTextColors.kt | 32 ++-- .../features/texturepack/CustomTextReplacements.kt | 30 +-- .../texturepack/FirmamentModelPredicate.kt | 4 +- .../features/texturepack/HeadModelChooser.kt | 60 +++--- .../features/texturepack/PredicateModel.kt | 74 ++++---- .../features/texturepack/StringMatcher.kt | 8 +- .../features/texturepack/TreeishTextReplacer.kt | 32 ++-- .../texturepack/predicates/AlwaysPredicate.kt | 2 +- .../texturepack/predicates/AndPredicate.kt | 4 +- .../texturepack/predicates/CastPredicate.kt | 8 +- .../texturepack/predicates/DisplayNamePredicate.kt | 2 +- .../predicates/ExtraAttributesPredicate.kt | 52 +++--- .../predicates/GenericComponentPredicate.kt | 36 ++-- .../texturepack/predicates/ItemPredicate.kt | 18 +- .../texturepack/predicates/LorePredicate.kt | 2 +- .../texturepack/predicates/NotPredicate.kt | 2 +- .../features/texturepack/predicates/OrPredicate.kt | 2 +- .../texturepack/predicates/PetPredicate.kt | 2 +- .../texturepack/predicates/PullingPredicate.kt | 8 +- .../texturepack/predicates/SkullPredicate.kt | 16 +- .../custommodels/ApplyHeadModelInItemRenderer.java | 12 +- .../custommodels/BuildExtraBlockStateModels.java | 12 +- .../custommodels/CustomSkullTexturePatch.java | 20 +- .../InsertExtraBlockModelDependencies.java | 24 +-- .../custommodels/ItemRenderStateExtraInfo.java | 4 +- .../mixins/custommodels/LoadExtraBlockStates.java | 22 +-- .../mixins/custommodels/PatchArmorTexture.java | 20 +- .../custommodels/PatchLegacyArmorLayerSupport.java | 14 +- .../PatchLegacyTexturePathsIntoArmorLayers.java | 14 +- .../custommodels/ReplaceBlockBreakSoundPatch.java | 12 +- .../custommodels/ReplaceBlockHitSoundPatch.java | 30 +-- .../ReplaceBlockRenderManagerBlockModel.java | 16 +- .../custommodels/ReplaceFallbackBlockModel.java | 10 +- .../mixins/custommodels/ReplaceHeadModel.java | 32 ++-- .../mixins/custommodels/ReplaceItemModelPatch.java | 24 +-- .../custommodels/ReplaceTextsInDrawContext.java | 38 ++-- .../mixins/custommodels/SupplyFakeModelPatch.java | 58 +++--- .../screenlayouts/ExpandScreenBoundaries.java | 8 +- .../screenlayouts/MoveSignElements.java | 42 ++--- .../screenlayouts/ReplaceAnvilScreen.java | 44 ++--- .../screenlayouts/ReplaceForgingScreen.java | 4 +- .../screenlayouts/ReplaceFurnaceBackgrounds.java | 26 +-- .../screenlayouts/ReplaceGenericBackgrounds.java | 20 +- .../screenlayouts/ReplacePlayerBackgrounds.java | 34 ++-- .../ReplaceTextColorInHandledScreen.java | 28 +-- 359 files changed, 4124 insertions(+), 4123 deletions(-) (limited to 'src') diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt index f5b58c5..58344ad 100644 --- a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt +++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt @@ -4,7 +4,7 @@ import snownee.jade.api.Accessor import snownee.jade.api.BlockAccessor import snownee.jade.api.IWailaClientRegistration import snownee.jade.api.callback.JadeRayTraceCallback -import net.minecraft.util.hit.HitResult +import net.minecraft.world.phys.HitResult import moe.nea.firmament.repo.MiningRepoData import moe.nea.firmament.util.mc.FirmamentDataComponentTypes diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomMiningHardnessProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomMiningHardnessProvider.kt index 29fecd2..01c06e5 100644 --- a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomMiningHardnessProvider.kt +++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomMiningHardnessProvider.kt @@ -5,9 +5,9 @@ import snownee.jade.api.IBlockComponentProvider import snownee.jade.api.ITooltip import snownee.jade.api.config.IPluginConfig import kotlin.time.DurationUnit -import net.minecraft.block.BlockState -import net.minecraft.util.Identifier -import net.minecraft.util.math.BlockPos +import net.minecraft.world.level.block.state.BlockState +import net.minecraft.resources.ResourceLocation +import net.minecraft.core.BlockPos import moe.nea.firmament.Firmament import moe.nea.firmament.annotations.Subscribe import moe.nea.firmament.events.TickEvent @@ -27,7 +27,7 @@ object CustomMiningHardnessProvider : IBlockComponentProvider { tooltip.add(tr("firmament.jade.breaking_power", "Required Breaking Power: ${customBlock.breakingPower}")) } - override fun getUid(): Identifier = + override fun getUid(): ResourceLocation = Firmament.identifier("custom_mining_hardness") data class BreakingInfo( @@ -41,7 +41,7 @@ object CustomMiningHardnessProvider : IBlockComponentProvider { @Subscribe fun clearInfoOnStopBreaking(event: TickEvent) { - val isBreakingBlock = MC.interactionManager?.isBreakingBlock ?: false + val isBreakingBlock = MC.interactionManager?.isDestroying ?: false if (!isBreakingBlock) { previousBreakingInfo = null currentBreakingInfo = null @@ -54,7 +54,7 @@ object CustomMiningHardnessProvider : IBlockComponentProvider { val state = MC.world?.getBlockState(blockPos) if (previousBreakingInfo?.let { it.state != state || it.blockPos != blockPos } ?: false) previousBreakingInfo == null - currentBreakingInfo = BreakingInfo(blockPos.toImmutable(), stage, state) + currentBreakingInfo = BreakingInfo(blockPos.immutable(), stage, state) // For some reason hypixel initially sends a stage 10 packet, and then fixes it up with a stage 0 packet. // Ignore the stage 10 packet if we dont have any previous packets for this block. // This could in theory still have issues if someone perfectly stops breaking a block the tick it finishes and then does not break another block until it respawns, but i deem that to be too much of an edge case. @@ -68,7 +68,7 @@ object CustomMiningHardnessProvider : IBlockComponentProvider { fun replaceBreakProgress(original: Float): Float { if (!JadeIntegration.TConfig.miningProgress) return original if (!isOnMiningIsland()) return original - val pos = MC.interactionManager?.currentBreakingPos ?: return original + val pos = MC.interactionManager?.destroyBlockPos ?: return original val info = currentBreakingInfo if (info?.blockPos != pos || info.state != MC.world?.getBlockState(pos)) { currentBreakingInfo = null diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt index addfc42..0083d78 100644 --- a/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt +++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/DrillToolProvider.kt @@ -12,8 +12,8 @@ import snownee.jade.api.ui.JadeUI import snownee.jade.gui.JadeLinearLayout import snownee.jade.impl.ui.ItemStackElement import snownee.jade.impl.ui.TextElementImpl -import net.minecraft.text.Text -import net.minecraft.util.Identifier +import net.minecraft.network.chat.Component +import net.minecraft.resources.ResourceLocation import moe.nea.firmament.Firmament import moe.nea.firmament.repo.ExpensiveItemCacheApi import moe.nea.firmament.repo.RepoManager @@ -63,10 +63,10 @@ class DrillToolProvider : IBlockComponentProvider { .alignSelfCenter() } - private val CHECK: Text = Text.literal("✔") - private val X: Text = Text.literal("✕") + private val CHECK: Component = Component.literal("✔") + private val X: Component = Component.literal("✕") - override fun getUid(): Identifier { + override fun getUid(): ResourceLocation { return Firmament.identifier("toolprovider") } } diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/FirmamentJadePlugin.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/FirmamentJadePlugin.kt index 51e2453..a31492e 100644 --- a/src/compat/jade/java/moe/nea/firmament/compat/jade/FirmamentJadePlugin.kt +++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/FirmamentJadePlugin.kt @@ -4,7 +4,7 @@ import snownee.jade.api.IWailaClientRegistration import snownee.jade.api.IWailaCommonRegistration import snownee.jade.api.IWailaPlugin import snownee.jade.api.WailaPlugin -import net.minecraft.block.Block +import net.minecraft.world.level.block.Block import moe.nea.firmament.Firmament @WailaPlugin diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/JadeIntegration.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/JadeIntegration.kt index 57749da..c289810 100644 --- a/src/compat/jade/java/moe/nea/firmament/compat/jade/JadeIntegration.kt +++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/JadeIntegration.kt @@ -5,7 +5,7 @@ import moe.nea.firmament.events.SkyblockServerUpdateEvent import moe.nea.firmament.repo.MiningRepoData import moe.nea.firmament.repo.RepoManager import moe.nea.firmament.util.ErrorUtil -import net.minecraft.block.Block +import net.minecraft.world.level.block.Block import moe.nea.firmament.events.ReloadRegistrationEvent import moe.nea.firmament.util.data.Config import moe.nea.firmament.util.data.ManagedConfig diff --git a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/EnforceToolDisplayForCustomBlocksInHarvestToolProvider.java b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/EnforceToolDisplayForCustomBlocksInHarvestToolProvider.java index 3677d01..27e3fa8 100644 --- a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/EnforceToolDisplayForCustomBlocksInHarvestToolProvider.java +++ b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/EnforceToolDisplayForCustomBlocksInHarvestToolProvider.java @@ -3,8 +3,8 @@ package moe.nea.firmament.mixins.compat.jade; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.compat.jade.CustomFakeBlockProvider; -import net.minecraft.block.Blocks; -import net.minecraft.item.ItemStack; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import snownee.jade.addon.harvest.HarvestToolProvider; @@ -14,7 +14,7 @@ import java.util.List; @Mixin(HarvestToolProvider.class) public class EnforceToolDisplayForCustomBlocksInHarvestToolProvider { - @ModifyExpressionValue(method = "getText", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;isToolRequired()Z")) + @ModifyExpressionValue(method = "getText", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;isToolRequired()Z")) private boolean overwriteRequiresTool(boolean original, @Local(argsOnly = true) BlockAccessor accessor) { if (CustomFakeBlockProvider.hasCustomBlock(accessor)) return true; diff --git a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/OnUpdateBreakProgress.java b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/OnUpdateBreakProgress.java index 7d71ae8..76084f8 100644 --- a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/OnUpdateBreakProgress.java +++ b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/OnUpdateBreakProgress.java @@ -2,8 +2,8 @@ package moe.nea.firmament.mixins.compat.jade; import moe.nea.firmament.compat.jade.CustomMiningHardnessProvider; import moe.nea.firmament.util.MC; -import net.minecraft.client.render.WorldRenderer; -import net.minecraft.util.math.BlockPos; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.core.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -11,11 +11,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.util.Objects; -@Mixin(WorldRenderer.class) +@Mixin(LevelRenderer.class) public class OnUpdateBreakProgress { - @Inject(method = "setBlockBreakingInfo", at = @At("HEAD")) + @Inject(method = "destroyBlockProgress", at = @At("HEAD")) private void replaceBreakProgress(int entityId, BlockPos pos, int stage, CallbackInfo ci) { - if (entityId == 0 && null != MC.INSTANCE.getInteractionManager() && Objects.equals(MC.INSTANCE.getInteractionManager().currentBreakingPos, pos)) { + if (entityId == 0 && null != MC.INSTANCE.getInteractionManager() && Objects.equals(MC.INSTANCE.getInteractionManager().destroyBlockPos, pos)) { CustomMiningHardnessProvider.setBreakingInfo(pos, stage); } } diff --git a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/PatchBreakingBarSpeedJade.java b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/PatchBreakingBarSpeedJade.java index 203f7e4..a8d39a8 100644 --- a/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/PatchBreakingBarSpeedJade.java +++ b/src/compat/jade/java/moe/nea/firmament/mixins/compat/jade/PatchBreakingBarSpeedJade.java @@ -11,14 +11,14 @@ import snownee.jade.JadeClient; public class PatchBreakingBarSpeedJade { @ModifyExpressionValue( method = "drawBreakingProgress", - at = @At(value = "FIELD", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;currentBreakingProgress:F", opcode = Opcodes.GETFIELD) + at = @At(value = "FIELD", target = "Lnet/minecraft/client/multiplayer/MultiPlayerGameMode;destroyProgress:F", opcode = Opcodes.GETFIELD) ) private static float replaceBlockBreakingProgress(float original) { return CustomMiningHardnessProvider.replaceBreakProgress(original); } @ModifyExpressionValue(method = "drawBreakingProgress", - at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;calcBlockBreakingDelta(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)F")) + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;calcBlockBreakingDelta(Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)F")) private static float replacePlayerSpecificBreakingProgress(float original) { return CustomMiningHardnessProvider.replaceBlockBreakSpeed(original); } diff --git a/src/compat/moulconfig/java/MCConfigEditorIntegration.kt b/src/compat/moulconfig/java/MCConfigEditorIntegration.kt index f0e7f16..6b2df21 100644 --- a/src/compat/moulconfig/java/MCConfigEditorIntegration.kt +++ b/src/compat/moulconfig/java/MCConfigEditorIntegration.kt @@ -36,11 +36,11 @@ import java.net.URI import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds import kotlin.time.DurationUnit -import net.minecraft.client.gui.screen.Screen -import net.minecraft.text.Text -import net.minecraft.util.Identifier -import net.minecraft.util.StringIdentifiable -import net.minecraft.util.Util +import net.minecraft.client.gui.screens.Screen +import net.minecraft.network.chat.Component +import net.minecraft.resources.ResourceLocation +import net.minecraft.util.StringRepresentable +import net.minecraft.Util import moe.nea.firmament.Firmament import moe.nea.firmament.gui.config.AllConfigsGui import moe.nea.firmament.gui.config.BooleanHandler @@ -129,7 +129,7 @@ class MCConfigEditorIntegration : FirmamentConfigScreenProvider { } } - fun helpRegisterChoice() where T : Enum, T : StringIdentifiable { + fun helpRegisterChoice() where T : Enum, T : StringRepresentable { register(ChoiceHandler::class.java as Class>) { handler, option, categoryAccordionId, configObject -> object : ProcessedEditableOptionFirm(option, categoryAccordionId, configObject) { override fun createEditor(): GuiOptionEditor { @@ -356,9 +356,9 @@ class MCConfigEditorIntegration : FirmamentConfigScreenProvider { return DescriptionRendereringBehaviour.EXPAND_PANEL } - fun mkSocial(name: String, identifier: Identifier, link: String) = object : Social() { + fun mkSocial(name: String, identifier: ResourceLocation, link: String) = object : Social() { override fun onClick() { - Util.getOperatingSystem().open(URI(link)) + MC.openUrl(link) } override fun getTooltip(): List { @@ -437,7 +437,7 @@ class MCConfigEditorIntegration : FirmamentConfigScreenProvider { if (search != null) editor.search(search) editor.setWide(AllConfigsGui.ConfigConfig.enableWideMC) - return MoulConfigScreenComponent(Text.empty(), GuiContext(GuiElementComponent(editor)), parent) // TODO : add parent support + return MoulConfigScreenComponent(Component.empty(), GuiContext(GuiElementComponent(editor)), parent) // TODO : add parent support } } diff --git a/src/compat/sodium/java/moe/nea/firmament/mixins/sodium/custommodels/PatchBlockModelInSodiumChunkGenerator.java b/src/compat/sodium/java/moe/nea/firmament/mixins/sodium/custommodels/PatchBlockModelInSodiumChunkGenerator.java index 50a545a..50dba85 100644 --- a/src/compat/sodium/java/moe/nea/firmament/mixins/sodium/custommodels/PatchBlockModelInSodiumChunkGenerator.java +++ b/src/compat/sodium/java/moe/nea/firmament/mixins/sodium/custommodels/PatchBlockModelInSodiumChunkGenerator.java @@ -5,10 +5,10 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.features.texturepack.CustomBlockTextures; import net.caffeinemc.mods.sodium.client.render.chunk.compile.tasks.ChunkBuilderMeshingTask; -import net.minecraft.block.BlockState; -import net.minecraft.client.render.block.BlockModels; -import net.minecraft.client.render.model.BlockStateModel; -import net.minecraft.util.math.BlockPos; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.client.renderer.block.BlockModelShaper; +import net.minecraft.client.renderer.block.model.BlockStateModel; +import net.minecraft.core.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -16,9 +16,9 @@ import org.spongepowered.asm.mixin.injection.At; public class PatchBlockModelInSodiumChunkGenerator { @WrapOperation( method = "execute(Lnet/caffeinemc/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lnet/caffeinemc/mods/sodium/client/util/task/CancellationToken;)Lnet/caffeinemc/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", - at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/BlockModels;getModel(Lnet/minecraft/block/BlockState;)Lnet/minecraft/client/render/model/BlockStateModel;")) - private BlockStateModel replaceBlockModel(BlockModels instance, BlockState state, Operation original, - @Local(name = "blockPos") BlockPos.Mutable pos) { + at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/block/BlockModelShaper;getBlockModel(Lnet/minecraft/world/level/block/state/BlockState;)Lnet/minecraft/client/renderer/block/model/BlockStateModel;")) + private BlockStateModel replaceBlockModel(BlockModelShaper instance, BlockState state, Operation original, + @Local(name = "blockPos") BlockPos.MutableBlockPos pos) { var replacement = CustomBlockTextures.getReplacementModel(state, pos); if (replacement != null) return replacement; CustomBlockTextures.enterFallbackCall(); diff --git a/src/compat/wildfireGender/java/moe/nea/firmament/mixins/compat/wildfiregender/PatchArmorTexturesInGenderMod.java b/src/compat/wildfireGender/java/moe/nea/firmament/mixins/compat/wildfiregender/PatchArmorTexturesInGenderMod.java index cf499f0..c3c206f 100644 --- a/src/compat/wildfireGender/java/moe/nea/firmament/mixins/compat/wildfiregender/PatchArmorTexturesInGenderMod.java +++ b/src/compat/wildfireGender/java/moe/nea/firmament/mixins/compat/wildfiregender/PatchArmorTexturesInGenderMod.java @@ -4,9 +4,9 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.llamalad7.mixinextras.sugar.Local; import com.wildfire.render.GenderArmorLayer; import moe.nea.firmament.features.texturepack.CustomGlobalArmorOverrides; -import net.minecraft.component.type.EquippableComponent; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.item.ItemStack; +import net.minecraft.world.item.equipment.Equippable; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Pseudo; import org.spongepowered.asm.mixin.injection.At; @@ -14,10 +14,10 @@ import org.spongepowered.asm.mixin.injection.At; @Mixin(GenderArmorLayer.class) @Pseudo public class PatchArmorTexturesInGenderMod { - @ModifyExpressionValue(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/command/OrderedRenderCommandQueue;ILnet/minecraft/client/render/entity/state/BipedEntityRenderState;FF)V", - at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;get(Lnet/minecraft/component/ComponentType;)Ljava/lang/Object;")) + @ModifyExpressionValue(method = "submit(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;ILnet/minecraft/client/renderer/entity/state/HumanoidRenderState;FF)V", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;get(Lnet/minecraft/core/component/DataComponentType;)Ljava/lang/Object;")) private Object replaceArmorMaterial(Object original, @Local ItemStack chestplate) { var overrides = CustomGlobalArmorOverrides.overrideArmor(chestplate, EquipmentSlot.CHEST); - return overrides.orElse((EquippableComponent) original); + return overrides.orElse((Equippable) original); } } diff --git a/src/compat/yacl/java/KeybindingController.kt b/src/compat/yacl/java/KeybindingController.kt index 6ceef5d..3714455 100644 --- a/src/compat/yacl/java/KeybindingController.kt +++ b/src/compat/yacl/java/KeybindingController.kt @@ -6,9 +6,9 @@ import dev.isxander.yacl3.api.utils.Dimension import dev.isxander.yacl3.gui.AbstractWidget import dev.isxander.yacl3.gui.YACLScreen import dev.isxander.yacl3.gui.controllers.ControllerWidget -import net.minecraft.client.gui.Click -import net.minecraft.client.input.KeyInput -import net.minecraft.text.Text +import net.minecraft.client.input.MouseButtonEvent +import net.minecraft.client.input.KeyEvent +import net.minecraft.network.chat.Component import moe.nea.firmament.gui.config.KeyBindingHandler import moe.nea.firmament.gui.config.KeyBindingStateManager import moe.nea.firmament.gui.config.ManagedOption @@ -24,7 +24,7 @@ class KeybindingController( return option } - override fun formatValue(): Text { + override fun formatValue(): Component { return option.pendingValue().format() } @@ -55,15 +55,15 @@ class KeybindingWidget( return 130 } - override fun getValueText(): Text { + override fun getValueText(): Component { return sm.label } - override fun keyPressed(keyEvent: KeyInput): Boolean { + override fun keyPressed(keyEvent: KeyEvent): Boolean { return sm.keyboardEvent(GenericInputButton.of(keyEvent), true) } - override fun keyReleased(keyEvent: KeyInput): Boolean { + override fun keyReleased(keyEvent: KeyEvent): Boolean { return sm.keyboardEvent(GenericInputButton.of(keyEvent), false) } @@ -76,7 +76,7 @@ class KeybindingWidget( if (!focused) sm.onLostFocus() } - override fun mouseClicked(mouseButtonEvent: Click, doubleClick: Boolean): Boolean { + override fun mouseClicked(mouseButtonEvent: MouseButtonEvent, doubleClick: Boolean): Boolean { if (isHovered) { sm.onClick(mouseButtonEvent.button()) return true diff --git a/src/compat/yacl/java/YaclIntegration.kt b/src/compat/yacl/java/YaclIntegration.kt index d94e96f..e10b8c4 100644 --- a/src/compat/yacl/java/YaclIntegration.kt +++ b/src/compat/yacl/java/YaclIntegration.kt @@ -23,10 +23,10 @@ import java.awt.Color import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds import kotlin.time.DurationUnit -import net.minecraft.client.gui.Element -import net.minecraft.client.gui.screen.Screen -import net.minecraft.client.gui.widget.ContainerWidget -import net.minecraft.text.Text +import net.minecraft.client.gui.components.events.GuiEventListener +import net.minecraft.client.gui.screens.Screen +import net.minecraft.client.gui.components.AbstractContainerWidget +import net.minecraft.network.chat.Component import moe.nea.firmament.gui.config.BooleanHandler import moe.nea.firmament.gui.config.ChoiceHandler import moe.nea.firmament.gui.config.ClickHandler @@ -158,7 +158,7 @@ class YaclIntegration : FirmamentConfigScreenProvider { .binding((binding as Binding).xmap({ it.toDouble(DurationUnit.SECONDS) }, { it.seconds })) .controller { DoubleSliderControllerBuilder.create(it) - .formatValue { Text.literal(FirmFormatters.formatTimespan(it.seconds)) } + .formatValue { Component.literal(FirmFormatters.formatTimespan(it.seconds)) } .step(0.1) .range(handler.min.toDouble(DurationUnit.SECONDS), handler.max.toDouble(DurationUnit.SECONDS)) } @@ -168,7 +168,7 @@ class YaclIntegration : FirmamentConfigScreenProvider { KeybindingBuilder(it, managedOption as ManagedOption) }.single() - else -> return listOf(LabelOption.create(Text.literal("This option is currently unhandled for this config menu. Please report this as a bug."))) + else -> return listOf(LabelOption.create(Component.literal("This option is currently unhandled for this config menu. Please report this as a bug."))) } } @@ -196,7 +196,7 @@ class YaclIntegration : FirmamentConfigScreenProvider { fun buildConfig(): YetAnotherConfigLib { return YetAnotherConfigLib.createBuilder() - .title(Text.literal("Firmament")) + .title(Component.literal("Firmament")) .categories(buildCategories()) .build() } @@ -206,9 +206,9 @@ class YaclIntegration : FirmamentConfigScreenProvider { override fun open(search: String?, parent: Screen?): Screen { return object : YACLScreen(buildConfig(), parent) { - override fun setFocused(focused: Element?) { + override fun setFocused(focused: GuiEventListener?) { if (this.focused is KeybindingWidget && - focused is ContainerWidget + focused is AbstractContainerWidget ) { return } diff --git a/src/main/java/moe/nea/firmament/init/HandledScreenRiser.java b/src/main/java/moe/nea/firmament/init/HandledScreenRiser.java index 605e7ac..881990c 100644 --- a/src/main/java/moe/nea/firmament/init/HandledScreenRiser.java +++ b/src/main/java/moe/nea/firmament/init/HandledScreenRiser.java @@ -2,11 +2,11 @@ package moe.nea.firmament.init; import me.shedaniel.mm.api.ClassTinkerers; -import net.minecraft.client.gui.Element; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.HandledScreen; -import net.minecraft.client.input.CharInput; -import net.minecraft.client.input.KeyInput; +import net.minecraft.client.gui.components.events.GuiEventListener; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.input.CharacterEvent; +import net.minecraft.client.input.KeyEvent; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import org.objectweb.asm.tree.ClassNode; @@ -24,11 +24,11 @@ import java.util.function.Consumer; public class HandledScreenRiser extends RiserUtils { Intermediary.InterClass Screen = Intermediary.intermediaryClass(); - Intermediary.InterClass KeyInput = Intermediary.intermediaryClass(); - Intermediary.InterClass CharInput = Intermediary.intermediaryClass(); - Intermediary.InterClass HandledScreen = Intermediary.intermediaryClass(); + Intermediary.InterClass KeyInput = Intermediary.intermediaryClass(); + Intermediary.InterClass CharInput = Intermediary.intermediaryClass(); + Intermediary.InterClass HandledScreen = Intermediary.intermediaryClass(); Intermediary.InterMethod mouseScrolled = Intermediary.intermediaryMethod( - Element::mouseScrolled, + GuiEventListener::mouseScrolled, Intermediary.ofClass(boolean.class), Intermediary.ofClass(double.class), Intermediary.ofClass(double.class), @@ -36,12 +36,12 @@ public class HandledScreenRiser extends RiserUtils { Intermediary.ofClass(double.class) ); Intermediary.InterMethod keyReleased = Intermediary.intermediaryMethod( - Element::keyReleased, + GuiEventListener::keyReleased, Intermediary.ofClass(boolean.class), KeyInput ); Intermediary.InterMethod charTyped = Intermediary.intermediaryMethod( - Element::charTyped, + GuiEventListener::charTyped, Intermediary.ofClass(boolean.class), CharInput ); diff --git a/src/main/java/moe/nea/firmament/init/SectionBuilderRiser.java b/src/main/java/moe/nea/firmament/init/SectionBuilderRiser.java index 03c63b3..a5d5c1d 100644 --- a/src/main/java/moe/nea/firmament/init/SectionBuilderRiser.java +++ b/src/main/java/moe/nea/firmament/init/SectionBuilderRiser.java @@ -1,11 +1,11 @@ package moe.nea.firmament.init; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.BlockState; -import net.minecraft.client.render.block.BlockRenderManager; -import net.minecraft.client.render.chunk.SectionBuilder; -import net.minecraft.client.render.model.BlockStateModel; -import net.minecraft.util.math.BlockPos; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.client.renderer.block.BlockRenderDispatcher; +import net.minecraft.client.renderer.chunk.SectionCompiler; +import net.minecraft.client.renderer.block.model.BlockStateModel; +import net.minecraft.core.BlockPos; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import org.objectweb.asm.tree.AbstractInsnNode; @@ -18,16 +18,16 @@ import org.objectweb.asm.tree.VarInsnNode; public class SectionBuilderRiser extends RiserUtils { - Intermediary.InterClass SectionBuilder = Intermediary.intermediaryClass(); + Intermediary.InterClass SectionBuilder = Intermediary.intermediaryClass(); Intermediary.InterClass BlockPos = Intermediary.intermediaryClass(); - Intermediary.InterClass BlockRenderManager = Intermediary.intermediaryClass(); + Intermediary.InterClass BlockRenderManager = Intermediary.intermediaryClass(); Intermediary.InterClass BlockState = Intermediary.intermediaryClass(); Intermediary.InterClass BlockStateModel = Intermediary.intermediaryClass(); String CustomBlockTextures = "moe.nea.firmament.features.texturepack.CustomBlockTextures"; Intermediary.InterMethod getModel = Intermediary.intermediaryMethod( - net.minecraft.client.render.block.BlockRenderManager::getModel, + net.minecraft.client.renderer.block.BlockRenderDispatcher::getBlockModel, BlockStateModel, BlockState ); diff --git a/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java b/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java index d8e35d7..30b5020 100644 --- a/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java +++ b/src/main/java/moe/nea/firmament/mixins/AppendRepoAsResourcePack.java @@ -7,7 +7,7 @@ import net.fabricmc.fabric.api.resource.ModResourcePack; import net.fabricmc.fabric.impl.resource.loader.ModResourcePackSorter; import net.fabricmc.fabric.impl.resource.loader.ModResourcePackUtil; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.resource.ResourceType; +import net.minecraft.server.packs.PackType; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -25,7 +25,7 @@ public class AppendRepoAsResourcePack { require = 0 ) private static void onAppendModResourcePack( - FabricLoader fabricLoader, ResourceType type, @Nullable String subPath, CallbackInfoReturnable> cir, + FabricLoader fabricLoader, PackType type, @Nullable String subPath, CallbackInfoReturnable> cir, @Local ModResourcePackSorter sorter ) { RepoModResourcePack.Companion.append(sorter); diff --git a/src/main/java/moe/nea/firmament/mixins/BandAidResourcePackPatch.java b/src/main/java/moe/nea/firmament/mixins/BandAidResourcePackPatch.java index d898c44..8e591bd 100644 --- a/src/main/java/moe/nea/firmament/mixins/BandAidResourcePackPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/BandAidResourcePackPatch.java @@ -4,22 +4,22 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.repo.RepoModResourcePack; -import net.minecraft.resource.ReloadableResourceManagerImpl; -import net.minecraft.resource.Resource; -import net.minecraft.util.Identifier; +import net.minecraft.server.packs.resources.ReloadableResourceManager; +import net.minecraft.server.packs.resources.Resource; +import net.minecraft.resources.ResourceLocation; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import java.util.Optional; -@Mixin(ReloadableResourceManagerImpl.class) +@Mixin(ReloadableResourceManager.class) public class BandAidResourcePackPatch { @ModifyReturnValue( method = "getResource", at = @At("RETURN") ) - private Optional injectOurCustomResourcesInCaseExistingMethodsFailed(Optional original, @Local Identifier identifier) { + private Optional injectOurCustomResourcesInCaseExistingMethodsFailed(Optional original, @Local ResourceLocation identifier) { return original.or(() -> RepoModResourcePack.Companion.createResourceDirectly(identifier)); } } diff --git a/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java b/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java index 9f6fb4d..2bc1374 100644 --- a/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/ChatPeekingPatch.java @@ -4,12 +4,12 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import moe.nea.firmament.features.fixes.Fixes; -import net.minecraft.client.gui.hud.ChatHud; +import net.minecraft.client.gui.components.ChatComponent; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyVariable; -@Mixin(ChatHud.class) +@Mixin(ChatComponent.class) public class ChatPeekingPatch { @ModifyVariable(method = "render", at = @At(value = "HEAD"), index = 5, argsOnly = true) @@ -17,7 +17,7 @@ public class ChatPeekingPatch { return old || Fixes.INSTANCE.shouldPeekChat(); } - @ModifyExpressionValue(method = "getHeight()I", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/hud/ChatHud;isChatFocused()Z")) + @ModifyExpressionValue(method = "getHeight()I", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/components/ChatComponent;isChatFocused()Z")) public boolean onGetChatHudHeight(boolean old) { return old || Fixes.INSTANCE.shouldPeekChat(); } diff --git a/src/main/java/moe/nea/firmament/mixins/CopyChatPatch.java b/src/main/java/moe/nea/firmament/mixins/CopyChatPatch.java index ba337da..9079fc9 100644 --- a/src/main/java/moe/nea/firmament/mixins/CopyChatPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/CopyChatPatch.java @@ -3,14 +3,14 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.features.chat.CopyChat; import moe.nea.firmament.mixins.accessor.AccessorChatHud; import moe.nea.firmament.util.ClipboardUtils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.Click; -import net.minecraft.client.gui.hud.ChatHud; -import net.minecraft.client.gui.hud.ChatHudLine; -import net.minecraft.client.gui.screen.ChatScreen; -import net.minecraft.text.Text; -import net.minecraft.util.Formatting; -import net.minecraft.util.math.MathHelper; +import net.minecraft.client.Minecraft; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.gui.components.ChatComponent; +import net.minecraft.client.GuiMessage; +import net.minecraft.client.gui.screens.ChatScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.ChatFormatting; +import net.minecraft.util.Mth; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -21,25 +21,25 @@ import java.util.List; @Mixin(ChatScreen.class) public class CopyChatPatch { @Inject(method = "mouseClicked", at = @At("HEAD"), cancellable = true) - private void onRightClick(Click click, boolean doubled, CallbackInfoReturnable cir) throws NoSuchFieldException, IllegalAccessException { + private void onRightClick(MouseButtonEvent click, boolean doubled, CallbackInfoReturnable cir) throws NoSuchFieldException, IllegalAccessException { if (click.button() != 1 || !CopyChat.TConfig.INSTANCE.getCopyChat()) return; - MinecraftClient client = MinecraftClient.getInstance(); - ChatHud chatHud = client.inGameHud.getChatHud(); + Minecraft client = Minecraft.getInstance(); + ChatComponent chatHud = client.gui.getChat(); int lineIndex = getChatLineIndex(chatHud, click.y()); if (lineIndex < 0) return; - List visible = ((AccessorChatHud) chatHud).getVisibleMessages_firmament(); + List visible = ((AccessorChatHud) chatHud).getVisibleMessages_firmament(); if (lineIndex >= visible.size()) return; - ChatHudLine.Visible line = visible.get(lineIndex); + GuiMessage.Line line = visible.get(lineIndex); String text = CopyChat.INSTANCE.orderedTextToString(line.content()); ClipboardUtils.INSTANCE.setTextContent(text); - chatHud.addMessage(Text.literal("Copied: ").append(text).formatted(Formatting.GRAY)); + chatHud.addMessage(Component.literal("Copied: ").append(text).withStyle(ChatFormatting.GRAY)); cir.setReturnValue(true); cir.cancel(); } @Unique - private int getChatLineIndex(ChatHud chatHud, double mouseY) { + private int getChatLineIndex(ChatComponent chatHud, double mouseY) { double chatLineY = ((AccessorChatHud) chatHud).toChatLineY_firmament(mouseY); - return MathHelper.floor(chatLineY + ((AccessorChatHud) chatHud).getScrolledLines_firmament()); + return Mth.floor(chatLineY + ((AccessorChatHud) chatHud).getScrolledLines_firmament()); } } diff --git a/src/main/java/moe/nea/firmament/mixins/CustomDurabilityBarPatch.java b/src/main/java/moe/nea/firmament/mixins/CustomDurabilityBarPatch.java index fde3580..2299068 100644 --- a/src/main/java/moe/nea/firmament/mixins/CustomDurabilityBarPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/CustomDurabilityBarPatch.java @@ -6,20 +6,20 @@ import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import com.llamalad7.mixinextras.sugar.Share; import com.llamalad7.mixinextras.sugar.ref.LocalRef; import moe.nea.firmament.util.DurabilityBarEvent; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.item.ItemStack; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Mixin(DrawContext.class) +@Mixin(GuiGraphics.class) public class CustomDurabilityBarPatch { @WrapOperation( - method = "drawItemBar", - at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isItemBarVisible()Z") + method = "renderItemBar", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;isBarVisible()Z") ) private boolean onIsItemBarVisible( - ItemStack instance, Operation original, - @Share("barOverride") LocalRef barOverride + ItemStack instance, Operation original, + @Share("barOverride") LocalRef barOverride ) { if (original.call(instance)) return true; @@ -29,22 +29,22 @@ public class CustomDurabilityBarPatch { return barOverride.get() != null; } - @WrapOperation(method = "drawItemBar", - at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItemBarStep()I")) + @WrapOperation(method = "renderItemBar", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;getBarWidth()I")) private int overrideItemStep( - ItemStack instance, Operation original, - @Share("barOverride") LocalRef barOverride + ItemStack instance, Operation original, + @Share("barOverride") LocalRef barOverride ) { if (barOverride.get() != null) return Math.round(barOverride.get().getPercentage() * 13); return original.call(instance); } - @WrapOperation(method = "drawItemBar", - at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItemBarColor()I")) + @WrapOperation(method = "renderItemBar", + at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/ItemStack;getBarColor()I")) private int overrideItemColor( - ItemStack instance, Operation original, - @Share("barOverride") LocalRef barOverride + ItemStack instance, Operation original, + @Share("barOverride") LocalRef barOverride ) { if (barOverride.get() != null) return barOverride.get().getColor().getColor(); diff --git a/src/main/java/moe/nea/firmament/mixins/DFUEntityIdFixPatch.java b/src/main/java/moe/nea/firmament/mixins/DFUEntityIdFixPatch.java index 717d404..8503411 100644 --- a/src/main/java/moe/nea/firmament/mixins/DFUEntityIdFixPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/DFUEntityIdFixPatch.java @@ -6,8 +6,8 @@ import com.mojang.datafixers.DataFix; import com.mojang.datafixers.TypeRewriteRule; import com.mojang.datafixers.schemas.Schema; import com.mojang.datafixers.util.Pair; -import net.minecraft.datafixer.TypeReferences; -import net.minecraft.datafixer.fix.EntityIdFix; +import net.minecraft.util.datafix.fixes.References; +import net.minecraft.util.datafix.fixes.EntityIdFix; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -22,7 +22,7 @@ import java.util.Map; public abstract class DFUEntityIdFixPatch extends DataFix { @Shadow @Final - private static Map RENAMED_ENTITIES; + private static Map ID_MAP; public DFUEntityIdFixPatch(Schema outputSchema, boolean changesType) { super(outputSchema, changesType); @@ -30,6 +30,6 @@ public abstract class DFUEntityIdFixPatch extends DataFix { @Inject(method = "makeRule", at = @At("RETURN"), cancellable = true) public void onMakeRule(CallbackInfoReturnable cir) { - cir.setReturnValue(TypeRewriteRule.seq(fixTypeEverywhere("EntityIdFix", getInputSchema().findChoiceType(TypeReferences.ENTITY), getOutputSchema().findChoiceType(TypeReferences.ENTITY), dynamicOps -> pair -> ((Pair) pair).mapFirst(string -> RENAMED_ENTITIES.getOrDefault(string, (String) string))), convertUnchecked("Fix Type", getInputSchema().getType(TypeReferences.ITEM_STACK), getOutputSchema().getType(TypeReferences.ITEM_STACK)))); + cir.setReturnValue(TypeRewriteRule.seq(fixTypeEverywhere("EntityIdFix", getInputSchema().findChoiceType(References.ENTITY), getOutputSchema().findChoiceType(References.ENTITY), dynamicOps -> pair -> ((Pair) pair).mapFirst(string -> ID_MAP.getOrDefault(string, (String) string))), convertUnchecked("Fix Type", getInputSchema().getType(References.ITEM_STACK), getOutputSchema().getType(References.ITEM_STACK)))); } } diff --git a/src/main/java/moe/nea/firmament/mixins/DisableHurtCam.java b/src/main/java/moe/nea/firmament/mixins/DisableHurtCam.java index ed7a2d4..3a53ab1 100644 --- a/src/main/java/moe/nea/firmament/mixins/DisableHurtCam.java +++ b/src/main/java/moe/nea/firmament/mixins/DisableHurtCam.java @@ -2,14 +2,14 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import moe.nea.firmament.features.fixes.Fixes; -import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.renderer.GameRenderer; import org.objectweb.asm.Opcodes; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @Mixin(GameRenderer.class) public class DisableHurtCam { - @ModifyExpressionValue(method = "tiltViewWhenHurt", at = @At(value = "FIELD", target = "Lnet/minecraft/entity/LivingEntity;hurtTime:I", opcode = Opcodes.GETFIELD)) + @ModifyExpressionValue(method = "bobHurt", at = @At(value = "FIELD", target = "Lnet/minecraft/world/entity/LivingEntit