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 --- .../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 ++++---- 289 files changed, 3328 insertions(+), 3328 deletions(-) (limited to 'src/main') 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/LivingEntity;hurtTime:I", opcode = Opcodes.GETFIELD)) private int replaceHurtTime(int original) { if (Fixes.TConfig.INSTANCE.getNoHurtCam()) return 0; diff --git a/src/main/java/moe/nea/firmament/mixins/DispatchMouseInputEventsPatch.java b/src/main/java/moe/nea/firmament/mixins/DispatchMouseInputEventsPatch.java index f1b07bb..8b9a28c 100644 --- a/src/main/java/moe/nea/firmament/mixins/DispatchMouseInputEventsPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/DispatchMouseInputEventsPatch.java @@ -2,15 +2,15 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import moe.nea.firmament.events.WorldMouseMoveEvent; -import net.minecraft.client.Mouse; -import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.MouseHandler; +import net.minecraft.client.player.LocalPlayer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Mixin(Mouse.class) +@Mixin(MouseHandler.class) public class DispatchMouseInputEventsPatch { - @WrapWithCondition(method = "updateMouse", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/network/ClientPlayerEntity;changeLookDirection(DD)V")) - public boolean onRotatePlayer(ClientPlayerEntity instance, double deltaX, double deltaY) { + @WrapWithCondition(method = "turnPlayer", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/player/LocalPlayer;changeLookDirection(DD)V")) + public boolean onRotatePlayer(LocalPlayer instance, double deltaX, double deltaY) { var event = WorldMouseMoveEvent.Companion.publish(new WorldMouseMoveEvent(deltaX, deltaY)); return !event.getCancelled(); } diff --git a/src/main/java/moe/nea/firmament/mixins/EarlyResourceReloadPatch.java b/src/main/java/moe/nea/firmament/mixins/EarlyResourceReloadPatch.java index e98faf6..b8460a7 100644 --- a/src/main/java/moe/nea/firmament/mixins/EarlyResourceReloadPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/EarlyResourceReloadPatch.java @@ -2,10 +2,10 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.events.EarlyResourceReloadEvent; -import net.minecraft.resource.ReloadableResourceManagerImpl; -import net.minecraft.resource.ResourceManager; -import net.minecraft.resource.ResourcePack; -import net.minecraft.resource.ResourceReload; +import net.minecraft.server.packs.resources.ReloadableResourceManager; +import net.minecraft.server.packs.resources.ResourceManager; +import net.minecraft.server.packs.PackResources; +import net.minecraft.server.packs.resources.ReloadInstance; import net.minecraft.util.Unit; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -16,10 +16,10 @@ import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.concurrent.Executor; -@Mixin(ReloadableResourceManagerImpl.class) +@Mixin(ReloadableResourceManager.class) public abstract class EarlyResourceReloadPatch implements ResourceManager { - @Inject(method = "reload", at = @At(value = "INVOKE", target = "Lnet/minecraft/resource/SimpleResourceReload;start(Lnet/minecraft/resource/ResourceManager;Ljava/util/List;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Z)Lnet/minecraft/resource/ResourceReload;", shift = At.Shift.BEFORE)) - public void onResourceReload(Executor prepareExecutor, Executor applyExecutor, CompletableFuture initialStage, List packs, CallbackInfoReturnable cir) { + @Inject(method = "createReload", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/packs/resources/SimpleReloadInstance;create(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/List;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Z)Lnet/minecraft/server/packs/resources/ReloadInstance;", shift = At.Shift.BEFORE)) + public void onResourceReload(Executor prepareExecutor, Executor applyExecutor, CompletableFuture initialStage, List packs, CallbackInfoReturnable cir) { EarlyResourceReloadEvent.Companion.publish(new EarlyResourceReloadEvent(this, prepareExecutor)); } } diff --git a/src/main/java/moe/nea/firmament/mixins/EntityDespawnPatch.java b/src/main/java/moe/nea/firmament/mixins/EntityDespawnPatch.java index 22bebec..c286226 100644 --- a/src/main/java/moe/nea/firmament/mixins/EntityDespawnPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/EntityDespawnPatch.java @@ -3,15 +3,15 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.events.EntityDespawnEvent; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.world.entity.Entity; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ClientWorld.class) +@Mixin(ClientLevel.class) public class EntityDespawnPatch { @Inject(method = "removeEntity", at = @At(value = "TAIL")) private void onRemoved(int entityId, Entity.RemovalReason removalReason, CallbackInfo ci, @Local @Nullable Entity entity) { diff --git a/src/main/java/moe/nea/firmament/mixins/EntityInteractEventPatch.java b/src/main/java/moe/nea/firmament/mixins/EntityInteractEventPatch.java index 8ade59b..4138389 100644 --- a/src/main/java/moe/nea/firmament/mixins/EntityInteractEventPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/EntityInteractEventPatch.java @@ -2,32 +2,32 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.events.EntityInteractionEvent; -import net.minecraft.client.network.ClientPlayerInteractionManager; -import net.minecraft.entity.Entity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.client.multiplayer.MultiPlayerGameMode; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.phys.EntityHitResult; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(ClientPlayerInteractionManager.class) +@Mixin(MultiPlayerGameMode.class) public class EntityInteractEventPatch { - @Inject(method = "attackEntity", at = @At("HEAD")) - private void onAttack(PlayerEntity player, Entity target, CallbackInfo ci) { - EntityInteractionEvent.Companion.publish(new EntityInteractionEvent(EntityInteractionEvent.InteractionKind.ATTACK, target, Hand.MAIN_HAND)); + @Inject(method = "attack", at = @At("HEAD")) + private void onAttack(Player player, Entity target, CallbackInfo ci) { + EntityInteractionEvent.Companion.publish(new EntityInteractionEvent(EntityInteractionEvent.InteractionKind.ATTACK, target, InteractionHand.MAIN_HAND)); } - @Inject(method = "interactEntity", at = @At("HEAD")) - private void onInteract(PlayerEntity player, Entity entity, Hand hand, CallbackInfoReturnable cir) { + @Inject(method = "interact", at = @At("HEAD")) + private void onInteract(Player player, Entity entity, InteractionHand hand, CallbackInfoReturnable cir) { EntityInteractionEvent.Companion.publish(new EntityInteractionEvent(EntityInteractionEvent.InteractionKind.INTERACT, entity, hand)); } - @Inject(method = "interactEntityAtLocation", at = @At("HEAD")) - private void onInteractAtLocation(PlayerEntity player, Entity entity, EntityHitResult hitResult, Hand hand, CallbackInfoReturnable cir) { + @Inject(method = "interactAt", at = @At("HEAD")) + private void onInteractAtLocation(Player player, Entity entity, EntityHitResult hitResult, InteractionHand hand, CallbackInfoReturnable cir) { EntityInteractionEvent.Companion.publish(new EntityInteractionEvent(EntityInteractionEvent.InteractionKind.INTERACT_AT_LOCATION, entity, hand)); } diff --git a/src/main/java/moe/nea/firmament/mixins/EntityUpdateEventListener.java b/src/main/java/moe/nea/firmament/mixins/EntityUpdateEventListener.java index d956da9..0021099 100644 --- a/src/main/java/moe/nea/firmament/mixins/EntityUpdateEventListener.java +++ b/src/main/java/moe/nea/firmament/mixins/EntityUpdateEventListener.java @@ -3,46 +3,46 @@ package moe.nea.firmament.mixins; import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.events.EntityUpdateEvent; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientCommonNetworkHandler; -import net.minecraft.client.network.ClientConnectionState; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.Entity; -import net.minecraft.entity.LivingEntity; -import net.minecraft.network.ClientConnection; -import net.minecraft.network.packet.s2c.play.EntityAttributesS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityEquipmentUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.EntityTrackerUpdateS2CPacket; +import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientCommonPacketListenerImpl; +import net.minecraft.client.multiplayer.CommonListenerCookie; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.network.Connection; +import net.minecraft.network.protocol.game.ClientboundUpdateAttributesPacket; +import net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket; +import net.minecraft.network.protocol.game.ClientboundSetEntityDataPacket; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ClientPlayNetworkHandler.class) -public abstract class EntityUpdateEventListener extends ClientCommonNetworkHandler { +@Mixin(ClientPacketListener.class) +public abstract class EntityUpdateEventListener extends ClientCommonPacketListenerImpl { @Shadow - private ClientWorld world; + private ClientLevel level; - protected EntityUpdateEventListener(MinecraftClient client, ClientConnection connection, ClientConnectionState connectionState) { + protected EntityUpdateEventListener(Minecraft client, Connection connection, CommonListenerCookie connectionState) { super(client, connection, connectionState); } - @Inject(method = "onEntityEquipmentUpdate", at = @At(value = "INVOKE", target = "Ljava/util/List;forEach(Ljava/util/function/Consumer;)V", shift = At.Shift.AFTER)) - private void onEquipmentUpdate(EntityEquipmentUpdateS2CPacket packet, CallbackInfo ci, @Local LivingEntity entity) { - EntityUpdateEvent.Companion.publish(new EntityUpdateEvent.EquipmentUpdate(entity, packet.getEquipmentList())); + @Inject(method = "handleSetEquipment", at = @At(value = "INVOKE", target = "Ljava/util/List;forEach(Ljava/util/function/Consumer;)V", shift = At.Shift.AFTER)) + private void onEquipmentUpdate(ClientboundSetEquipmentPacket packet, CallbackInfo ci, @Local LivingEntity entity) { + EntityUpdateEvent.Companion.publish(new EntityUpdateEvent.EquipmentUpdate(entity, packet.getSlots())); } - @Inject(method = "onEntityAttributes", at = @At("TAIL")) - private void onAttributeUpdate(EntityAttributesS2CPacket packet, CallbackInfo ci) { + @Inject(method = "handleUpdateAttributes", at = @At("TAIL")) + private void onAttributeUpdate(ClientboundUpdateAttributesPacket packet, CallbackInfo ci) { EntityUpdateEvent.Companion.publish(new EntityUpdateEvent.AttributeUpdate( - (LivingEntity) world.getEntityById(packet.getEntityId()), packet.getEntries())); + (LivingEntity) level.getEntity(packet.getEntityId()), packet.getValues())); } - @Inject(method = "onEntityTrackerUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/data/DataTracker;writeUpdatedEntries(Ljava/util/List;)V", shift = At.Shift.AFTER)) - private void onEntityTracker(EntityTrackerUpdateS2CPacket packet, CallbackInfo ci, @Local Entity entity) { - EntityUpdateEvent.Companion.publish(new EntityUpdateEvent.TrackedDataUpdate(entity, packet.trackedValues())); + @Inject(method = "handleSetEntityData", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/syncher/SynchedEntityData;assignValues(Ljava/util/List;)V", shift = At.Shift.AFTER)) + private void onEntityTracker(ClientboundSetEntityDataPacket packet, CallbackInfo ci, @Local Entity entity) { + EntityUpdateEvent.Companion.publish(new EntityUpdateEvent.TrackedDataUpdate(entity, packet.packedItems())); } } diff --git a/src/main/java/moe/nea/firmament/mixins/FirmKeybindsInVanillaControlsPatch.java b/src/main/java/moe/nea/firmament/mixins/FirmKeybindsInVanillaControlsPatch.java index 4c9f925..5d8484f 100644 --- a/src/main/java/moe/nea/firmament/mixins/FirmKeybindsInVanillaControlsPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/FirmKeybindsInVanillaControlsPatch.java @@ -4,11 +4,11 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.gui.config.KeyBindingHandler; import moe.nea.firmament.keybindings.FirmamentKeyBindings; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.option.ControlsListWidget; -import net.minecraft.client.gui.widget.ButtonWidget; -import net.minecraft.client.option.KeyBinding; -import net.minecraft.text.Text; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.options.controls.KeyBindsList; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.KeyMapping; +import net.minecraft.network.chat.Component; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; @@ -18,39 +18,39 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyArg; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ControlsListWidget.KeyBindingEntry.class) +@Mixin(KeyBindsList.KeyEntry.class) public class FirmKeybindsInVanillaControlsPatch { @Mutable @Shadow @Final - private ButtonWidget editButton; + private Button changeButton; @Shadow @Final - private KeyBinding binding; + private KeyMapping key; @Shadow @Final - private ButtonWidget resetButton; + private Button resetButton; - @ModifyArg(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/ButtonWidget;builder(Lnet/minecraft/text/Text;Lnet/minecraft/client/gui/widget/ButtonWidget$PressAction;)Lnet/minecraft/client/gui/widget/ButtonWidget$Builder;")) - public ButtonWidget.PressAction onInit(ButtonWidget.PressAction action) { - var config = FirmamentKeyBindings.INSTANCE.getKeyBindings().get(binding); + @ModifyArg(method = "", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/components/Button;builder(Lnet/minecraft/network/chat/Component;Lnet/minecraft/client/gui/components/Button$OnPress;)Lnet/minecraft/client/gui/components/Button$Builder;")) + public Button.OnPress onInit(Button.OnPress action) { + var config = FirmamentKeyBindings.INSTANCE.getKeyBindings().get(key); if (config == null) return action; return button -> { ((KeyBindingHandler) config.getHandler()) .getManagedConfig() - .showConfigEditor(MinecraftClient.getInstance().currentScreen); + .showConfigEditor(Minecraft.getInstance().screen); }; } - @Inject(method = "update", at = @At("HEAD"), cancellable = true) + @Inject(method = "refreshEntry", at = @At("HEAD"), cancellable = true) public void onUpdate(CallbackInfo ci) { - var config = FirmamentKeyBindings.INSTANCE.getKeyBindings().get(binding); + var config = FirmamentKeyBindings.INSTANCE.getKeyBindings().get(key); if (config == null) return; resetButton.active = false; - editButton.setMessage(Text.translatable("firmament.keybinding.external", config.getValue().format())); + changeButton.setMessage(Component.translatable("firmament.keybinding.external", config.getValue().format())); ci.cancel(); } diff --git a/src/main/java/moe/nea/firmament/mixins/HideStatusEffectsPatch.java b/src/main/java/moe/nea/firmament/mixins/HideStatusEffectsPatch.java index 58f52f4..b2884cd 100644 --- a/src/main/java/moe/nea/firmament/mixins/HideStatusEffectsPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/HideStatusEffectsPatch.java @@ -2,8 +2,8 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.features.fixes.Fixes; import moe.nea.firmament.util.SBData; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.ingame.StatusEffectsDisplay; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.EffectsInInventory; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -11,20 +11,20 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -@Mixin(StatusEffectsDisplay.class) +@Mixin(EffectsInInventory.class) public abstract class HideStatusEffectsPatch { @Shadow - public abstract boolean shouldHideStatusEffectHud(); + public abstract boolean canSeeEffects(); - @Inject(method = "shouldHideStatusEffectHud", at = @At("HEAD"), cancellable = true) + @Inject(method = "canSeeEffects", at = @At("HEAD"), cancellable = true) private void hideStatusEffects(CallbackInfoReturnable cir) { if (Fixes.TConfig.INSTANCE.getHidePotionEffects()) { cir.setReturnValue(false); } } - @Inject(method = "drawStatusEffects", at = @At("HEAD"), cancellable = true) - private void conditionalRenderStatuses(DrawContext context, int mouseX, int mouseY, CallbackInfo ci) { + @Inject(method = "renderEffects", at = @At("HEAD"), cancellable = true) + private void conditionalRenderStatuses(GuiGraphics context, int mouseX, int mouseY, CallbackInfo ci) { if (Fixes.TConfig.INSTANCE.getHidePotionEffects()) { ci.cancel(); } diff --git a/src/main/java/moe/nea/firmament/mixins/HudRenderEventsPatch.java b/src/main/java/moe/nea/firmament/mixins/HudRenderEventsPatch.java index 3ec5a0e..1f7e07a 100644 --- a/src/main/java/moe/nea/firmament/mixins/HudRenderEventsPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/HudRenderEventsPatch.java @@ -6,30 +6,30 @@ import moe.nea.firmament.events.HotbarItemRenderEvent; import moe.nea.firmament.events.HudRenderEvent; import moe.nea.firmament.features.fixes.Fixes; import moe.nea.firmament.util.SBData; -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.hud.InGameHud; -import net.minecraft.client.render.RenderTickCounter; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.DeltaTracker; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(InGameHud.class) +@Mixin(Gui.class) public class HudRenderEventsPatch { @Inject(method = "renderSleepOverlay", at = @At(value = "HEAD")) - public void renderCallBack(DrawContext context, RenderTickCounter tickCounter, CallbackInfo ci) { + public void renderCallBack(GuiGraphics context, DeltaTracker tickCounter, CallbackInfo ci) { HudRenderEvent.Companion.publish(new HudRenderEvent(context, tickCounter)); } - @Inject(method = "renderHotbarItem", at = @At("HEAD")) - public void onRenderHotbarItem(DrawContext context, int x, int y, RenderTickCounter tickCounter, PlayerEntity player, ItemStack stack, int seed, CallbackInfo ci) { + @Inject(method = "renderSlot", at = @At("HEAD")) + public void onRenderHotbarItem(GuiGraphics context, int x, int y, DeltaTracker tickCounter, Player player, ItemStack stack, int seed, CallbackInfo ci) { if (stack != null && !stack.isEmpty()) HotbarItemRenderEvent.Companion.publish(new HotbarItemRenderEvent(stack, context, x, y, tickCounter)); } - @Inject(method = "renderStatusEffectOverlay", at = @At("HEAD"), cancellable = true) + @Inject(method = "renderEffects", at = @At("HEAD"), cancellable = true) public void hideStatusEffects(CallbackInfo ci) { if (Fixes.TConfig.INSTANCE.getHidePotionEffectsHud() && SBData.INSTANCE.isOnSkyblock()) ci.cancel(); } diff --git a/src/main/java/moe/nea/firmament/mixins/IncomingPacketListenerPatches.java b/src/main/java/moe/nea/firmament/mixins/IncomingPacketListenerPatches.java index 5ba38c7..9f338f5 100644 --- a/src/main/java/moe/nea/firmament/mixins/IncomingPacketListenerPatches.java +++ b/src/main/java/moe/nea/firmament/mixins/IncomingPacketListenerPatches.java @@ -6,33 +6,33 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.mojang.brigadier.CommandDispatcher; import moe.nea.firmament.events.MaskCommands; import moe.nea.firmament.events.ParticleSpawnEvent; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; -import net.minecraft.util.math.Vec3d; +import net.minecraft.client.multiplayer.ClientPacketListener; +import net.minecraft.network.protocol.game.ClientboundLevelParticlesPacket; +import net.minecraft.world.phys.Vec3; import org.joml.Vector3f; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ClientPlayNetworkHandler.class) +@Mixin(ClientPacketListener.class) public abstract class IncomingPacketListenerPatches { - @ModifyExpressionValue(method = "onCommandTree", at = @At(value = "NEW", target = "(Lcom/mojang/brigadier/tree/RootCommandNode;)Lcom/mojang/brigadier/CommandDispatcher;", remap = false)) + @ModifyExpressionValue(method = "handleCommands", at = @At(value = "NEW", target = "(Lcom/mojang/brigadier/tree/RootCommandNode;)Lcom/mojang/brigadier/CommandDispatcher;", remap = false)) public CommandDispatcher onOnCommandTree(CommandDispatcher dispatcher) { MaskCommands.Companion.publish(new MaskCommands(dispatcher)); return dispatcher; } - @Inject(method = "onParticle", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/NetworkThreadUtils;forceMainThread(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;Lnet/minecraft/network/PacketApplyBatcher;)V", shift = At.Shift.AFTER), cancellable = true) - public void onParticleSpawn(ParticleS2CPacket packet, CallbackInfo ci) { + @Inject(method = "handleParticleEvent", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/protocol/PacketUtils;ensureRunningOnSameThread(Lnet/minecraft/network/protocol/Packet;Lnet/minecraft/network/PacketListener;Lnet/minecraft/network/PacketProcessor;)V", shift = At.Shift.AFTER), cancellable = true) + public void onParticleSpawn(ClientboundLevelParticlesPacket packet, CallbackInfo ci) { var event = new ParticleSpawnEvent( - packet.getParameters(), - new Vec3d(packet.getX(), packet.getY(), packet.getZ()), - new Vector3f(packet.getOffsetX(), packet.getOffsetY(), packet.getOffsetZ()), - packet.isImportant(), + packet.getParticle(), + new Vec3(packet.getX(), packet.getY(), packet.getZ()), + new Vector3f(packet.getXDist(), packet.getYDist(), packet.getZDist()), + packet.alwaysShow(), packet.getCount(), - packet.getSpeed() + packet.getMaxSpeed() ); ParticleSpawnEvent.Companion.publish(event); if (event.getCancelled()) diff --git a/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java b/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java index 836aee8..ee7f570 100644 --- a/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/KeyPressInWorldEventPatch.java @@ -7,17 +7,17 @@ import com.llamalad7.mixinextras.sugar.Local; import moe.nea.firmament.events.WorldKeyboardEvent; import moe.nea.firmament.keybindings.GenericInputAction; import moe.nea.firmament.keybindings.InputModifiers; -import net.minecraft.client.Keyboard; -import net.minecraft.client.input.KeyInput; -import net.minecraft.client.util.InputUtil; +import net.minecraft.client.KeyboardHandler; +import net.minecraft.client.input.KeyEvent; +import com.mojang.blaze3d.platform.InputConstants; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Mixin(Keyboard.class) +@Mixin(KeyboardHandler.class) public class KeyPressInWorldEventPatch { - @WrapWithCondition(method = "onKey", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/option/KeyBinding;onKeyPressed(Lnet/minecraft/client/util/InputUtil$Key;)V")) - public boolean onKeyBoardInWorld(InputUtil.Key key, @Local(argsOnly = true) KeyInput keyInput) { + @WrapWithCondition(method = "keyPress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/KeyMapping;click(Lcom/mojang/blaze3d/platform/InputConstants$Key;)V")) + public boolean onKeyBoardInWorld(InputConstants.Key key, @Local(argsOnly = true) KeyEvent keyInput) { var event = WorldKeyboardEvent.Companion.publish(new WorldKeyboardEvent(GenericInputAction.of(keyInput), InputModifiers.of(keyInput))); return !event.getCancelled(); } diff --git a/src/main/java/moe/nea/firmament/mixins/MainWindowFirstLoadPatch.java b/src/main/java/moe/nea/firmament/mixins/MainWindowFirstLoadPatch.java index 9e42b20..2f82fd9 100644 --- a/src/main/java/moe/nea/firmament/mixins/MainWindowFirstLoadPatch.java +++ b/src/main/java/moe/nea/firmament/mixins/MainWindowFirstLoadPatch.java @@ -2,8 +2,8 @@ package moe.nea.firmament.mixins; import moe.nea.firmament.Firmament; import moe.nea.firmament.events.DebugInstantiateEvent; -import net.minecraft.client.gui.LogoDrawer; -import net.minecraft.client.gui.screen.TitleScreen; +import net.minecraft.client.gui.components.LogoRenderer; +import net.minecraft.client.gui.screens.TitleScreen; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -15,8 +15,8 @@ public class MainWindowFirstLoadPatch { @Unique private static boolean hasInited = false; - @Inject(method = "(ZLnet/minecraft/client/gui/LogoDrawer;)V", at = @At("RETURN")) - private void onCreate(boolean doBackgroundFade, LogoDrawer logoDrawer, CallbackInfo ci) { + @Inject(method = "(ZLnet/minecraft/client/gui/components/Logo