From 633bc19650025391c24a2fdc1401df486d00dbf5 Mon Sep 17 00:00:00 2001 From: Jonas Herzig Date: Mon, 22 Feb 2021 23:11:34 +0100 Subject: [PATCH] Use callback-style events throughout all versions Removes the need for //#if statements on each and every event handler. Instead we now always use the equivalent Callback and have one central 1.12.2 class which forwards Forge events to the callbacks. --- jGui | 2 +- .../compat/shaders/ShaderBeginRender.java | 14 +---- .../replaymod/core/KeyBindingRegistry.java | 18 +----- .../core/events/PostRenderCallback.java | 2 - .../core/events/PostRenderWorldCallback.java | 21 +------ .../core/events/PreRenderCallback.java | 2 - .../core/events/PreRenderHandCallback.java | 2 - .../core/gui/GuiBackgroundProcesses.java | 17 +---- .../core/mixin/MixinGameRenderer.java | 14 ++--- .../core/versions/forge/EventsAdapter.java | 1 + .../replaymod/editor/handler/GuiHandler.java | 25 ++------ .../com/replaymod/extras/FullBrightness.java | 22 +------ .../extras/playeroverview/PlayerOverview.java | 22 +------ .../extras/youtube/YoutubeUpload.java | 25 ++------ .../recording/gui/GuiRecordingControls.java | 31 +++------- .../recording/gui/GuiRecordingOverlay.java | 17 +---- .../recording/handler/GuiHandler.java | 20 +----- .../handler/RecordingEventHandler.java | 20 +----- .../render/hooks/EntityRendererHandler.java | 4 +- .../replaymod/replay/FullReplaySender.java | 23 +------ .../replaymod/replay/QuickReplaySender.java | 16 +---- .../replaymod/replay/camera/CameraEntity.java | 62 +++---------------- .../replay/gui/overlay/GuiReplayOverlay.java | 7 +-- .../replaymod/replay/handler/GuiHandler.java | 27 +------- .../preview/PathPreviewRenderer.java | 21 +------ .../com/replaymod/core/ReplayModBackend.java | 3 + .../core/versions/forge/EventsAdapter.java | 50 +++++++++++++++ 27 files changed, 110 insertions(+), 378 deletions(-) create mode 100644 src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java create mode 100644 versions/1.12.2/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java diff --git a/jGui b/jGui index 80ff9223..96edf0fe 160000 --- a/jGui +++ b/jGui @@ -1 +1 @@ -Subproject commit 80ff9223d3fd3947f76b8535e73e0fd62a9fab1c +Subproject commit 96edf0fe31a1bef9ed286c01af994527566ab45c diff --git a/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java b/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java index f9fd2cf5..fd7048be 100644 --- a/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java +++ b/src/main/java/com/replaymod/compat/shaders/ShaderBeginRender.java @@ -1,6 +1,7 @@ //#if MC>=10800 package com.replaymod.compat.shaders; +import com.replaymod.core.events.PreRenderCallback; import com.replaymod.render.hooks.EntityRendererHandler; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.MinecraftClient; @@ -9,13 +10,6 @@ import java.lang.reflect.InvocationTargetException; import static com.replaymod.core.versions.MCVer.getRenderPartialTicks; -//#if FABRIC>=1 -import com.replaymod.core.events.PreRenderCallback; -//#else -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.event.TickEvent; -//#endif - public class ShaderBeginRender extends EventRegistrations { private final MinecraftClient mc = MinecraftClient.getInstance(); @@ -25,14 +19,8 @@ public class ShaderBeginRender extends EventRegistrations { * as this would usually get called by EntityRenderer#renderWorld, * which we're not calling during rendering. */ - //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::onRenderTickStart); } private void onRenderTickStart() { - //#else - //$$ @SubscribeEvent - //$$ public void onRenderTickStart(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif if (ShaderReflection.shaders_beginRender == null) return; if (ShaderReflection.config_isShaders == null) return; diff --git a/src/main/java/com/replaymod/core/KeyBindingRegistry.java b/src/main/java/com/replaymod/core/KeyBindingRegistry.java index 3c6d2d14..9884c9c6 100644 --- a/src/main/java/com/replaymod/core/KeyBindingRegistry.java +++ b/src/main/java/com/replaymod/core/KeyBindingRegistry.java @@ -2,6 +2,7 @@ package com.replaymod.core; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; +import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.mixin.KeyBindingAccessor; import de.johni0702.minecraft.gui.utils.EventRegistrations; import com.replaymod.core.events.KeyBindingEventCallback; @@ -22,15 +23,6 @@ import static com.replaymod.core.ReplayMod.MOD_ID; //$$ import net.minecraftforge.fml.client.registry.ClientRegistry; //#endif -//#if MC>=11400 -import com.replaymod.core.events.PreRenderCallback; -//#else -//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -//$$ import net.minecraftforge.fml.common.gameevent.TickEvent; -//$$ import org.lwjgl.input.Keyboard; -//$$ import static com.replaymod.core.versions.MCVer.FML_BUS; -//#endif - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -102,15 +94,7 @@ public class KeyBindingRegistry extends EventRegistrations { return Collections.unmodifiableSet(onlyInReplay); } - //#if MC>=11400 { on(PreRenderCallback.EVENT, this::handleRepeatedKeyBindings); } - //#else - //$$ @SubscribeEvent - //$$ public void onTick(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //$$ handleRepeatedKeyBindings(); - //$$ } - //#endif public void handleRepeatedKeyBindings() { for (Binding binding : bindings.values()) { diff --git a/src/main/java/com/replaymod/core/events/PostRenderCallback.java b/src/main/java/com/replaymod/core/events/PostRenderCallback.java index c508b949..a72f0d6c 100644 --- a/src/main/java/com/replaymod/core/events/PostRenderCallback.java +++ b/src/main/java/com/replaymod/core/events/PostRenderCallback.java @@ -1,4 +1,3 @@ -//#if MC>=11400 package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; @@ -14,4 +13,3 @@ public interface PostRenderCallback { void postRender(); } -//#endif diff --git a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java index 9e8cb335..1445ae43 100644 --- a/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java +++ b/src/main/java/com/replaymod/core/events/PostRenderWorldCallback.java @@ -1,33 +1,16 @@ -//#if MC>=11400 package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; - -//#if MC>=11500 import net.minecraft.client.util.math.MatrixStack; -//#endif public interface PostRenderWorldCallback { Event EVENT = Event.create((listeners) -> - //#if MC>=11500 (MatrixStack matrixStack) -> { - //#else - //$$ () -> { - //#endif for (PostRenderWorldCallback listener : listeners) { - listener.postRenderWorld( - //#if MC>=11500 - matrixStack - //#endif - ); + listener.postRenderWorld(matrixStack); } } ); - void postRenderWorld( - //#if MC>=11500 - MatrixStack matrixStack - //#endif - ); + void postRenderWorld(MatrixStack matrixStack); } -//#endif diff --git a/src/main/java/com/replaymod/core/events/PreRenderCallback.java b/src/main/java/com/replaymod/core/events/PreRenderCallback.java index 65afa3e3..907ed0cb 100644 --- a/src/main/java/com/replaymod/core/events/PreRenderCallback.java +++ b/src/main/java/com/replaymod/core/events/PreRenderCallback.java @@ -1,4 +1,3 @@ -//#if MC>=11400 package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; @@ -14,4 +13,3 @@ public interface PreRenderCallback { void preRender(); } -//#endif diff --git a/src/main/java/com/replaymod/core/events/PreRenderHandCallback.java b/src/main/java/com/replaymod/core/events/PreRenderHandCallback.java index d5d8d268..ea231cf6 100644 --- a/src/main/java/com/replaymod/core/events/PreRenderHandCallback.java +++ b/src/main/java/com/replaymod/core/events/PreRenderHandCallback.java @@ -1,4 +1,3 @@ -//#if MC>=11400 package com.replaymod.core.events; import de.johni0702.minecraft.gui.utils.Event; @@ -17,4 +16,3 @@ public interface PreRenderHandCallback { boolean preRenderHand(); } -//#endif diff --git a/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java b/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java index 39b71973..27f6834d 100644 --- a/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java +++ b/src/main/java/com/replaymod/core/gui/GuiBackgroundProcesses.java @@ -12,30 +12,15 @@ import de.johni0702.minecraft.gui.layout.VerticalLayout; import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.lwjgl.Dimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; - -//#if FABRIC>=1 import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -import net.minecraft.client.gui.screen.Screen; -//#else -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.common.MinecraftForge; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import static com.replaymod.core.versions.MCVer.getGui; -//#endif import static com.replaymod.core.versions.MCVer.getMinecraft; public class GuiBackgroundProcesses extends EventRegistrations { private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10)); - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } - private void onGuiInit(Screen guiScreen) { - //#else - //$$ @SubscribeEvent - //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.screen.Screen guiScreen = getGui(event); - //#endif + private void onGuiInit(net.minecraft.client.gui.screen.Screen guiScreen) { if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them VanillaGuiScreen vanillaGui = VanillaGuiScreen.wrap(guiScreen); diff --git a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java index aefceb3b..a7c817a9 100644 --- a/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java +++ b/src/main/java/com/replaymod/core/mixin/MixinGameRenderer.java @@ -5,15 +5,12 @@ import com.replaymod.core.events.PostRenderWorldCallback; import com.replaymod.core.events.PreRenderHandCallback; import net.minecraft.client.render.Camera; import net.minecraft.client.render.GameRenderer; +import net.minecraft.client.util.math.MatrixStack; 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; -//#if MC>=11500 -import net.minecraft.client.util.math.MatrixStack; -//#endif - @Mixin(GameRenderer.class) public class MixinGameRenderer { @Inject( @@ -30,11 +27,10 @@ public class MixinGameRenderer { MatrixStack matrixStack, //#endif CallbackInfo ci) { - PostRenderWorldCallback.EVENT.invoker().postRenderWorld( - //#if MC>=11500 - matrixStack - //#endif - ); + //#if MC<11500 + //$$ MatrixStack matrixStack = new MatrixStack(); + //#endif + PostRenderWorldCallback.EVENT.invoker().postRenderWorld(matrixStack); } @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java b/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java new file mode 100644 index 00000000..c690defc --- /dev/null +++ b/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java @@ -0,0 +1 @@ +// Forge only diff --git a/src/main/java/com/replaymod/editor/handler/GuiHandler.java b/src/main/java/com/replaymod/editor/handler/GuiHandler.java index 7f5f4727..38628e83 100644 --- a/src/main/java/com/replaymod/editor/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/editor/handler/GuiHandler.java @@ -1,6 +1,5 @@ package com.replaymod.editor.handler; -import de.johni0702.minecraft.gui.utils.EventRegistrations; import com.replaymod.core.utils.Utils; import com.replaymod.editor.ReplayModEditor; import com.replaymod.editor.gui.GuiEditReplay; @@ -8,31 +7,15 @@ import com.replaymod.replay.gui.screen.GuiReplayViewer; import de.johni0702.minecraft.gui.container.AbstractGuiScreen; import de.johni0702.minecraft.gui.container.GuiScreen; import de.johni0702.minecraft.gui.element.GuiButton; -import net.minecraft.util.crash.CrashReport; - -//#if FABRIC>=1 +import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.AbstractButtonWidget; -import java.util.List; -//#else -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//#endif +import net.minecraft.util.crash.CrashReport; import java.io.IOException; -import static com.replaymod.core.versions.MCVer.*; - public class GuiHandler extends EventRegistrations { - //#if FABRIC>=1 - { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } - public void injectIntoReplayViewer(Screen vanillaGuiScreen, List buttonList) { - //#else - //$$ @SubscribeEvent - //$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.screen.Screen vanillaGuiScreen = getGui(event); - //#endif + { on(InitScreenCallback.EVENT, (vanillaGuiScreen, buttonList) -> injectIntoReplayViewer(vanillaGuiScreen)); } + public void injectIntoReplayViewer(net.minecraft.client.gui.screen.Screen vanillaGuiScreen) { AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); if (!(guiScreen instanceof GuiReplayViewer)) { return; diff --git a/src/main/java/com/replaymod/extras/FullBrightness.java b/src/main/java/com/replaymod/extras/FullBrightness.java index 63fe5c16..b6bef691 100644 --- a/src/main/java/com/replaymod/extras/FullBrightness.java +++ b/src/main/java/com/replaymod/extras/FullBrightness.java @@ -1,6 +1,8 @@ package com.replaymod.extras; import com.replaymod.core.ReplayMod; +import com.replaymod.core.events.PostRenderCallback; +import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.versions.MCVer.Keyboard; import com.replaymod.replay.ReplayHandler; import com.replaymod.replay.ReplayModReplay; @@ -14,14 +16,6 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; -//#if FABRIC>=1 -import com.replaymod.core.events.PreRenderCallback; -import com.replaymod.core.events.PostRenderCallback; -//#else -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.event.TickEvent; -//#endif - public class FullBrightness extends EventRegistrations implements Extra { private ReplayMod core; private ReplayModReplay module; @@ -72,14 +66,8 @@ public class FullBrightness extends EventRegistrations implements Extra { return Type.Gamma; } - //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::preRender); } private void preRender() { - //#else - //$$ @SubscribeEvent - //$$ public void preRender(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif if (active && module.getReplayHandler() != null) { Type type = getType(); if (type == Type.Gamma || type == Type.Both) { @@ -98,14 +86,8 @@ public class FullBrightness extends EventRegistrations implements Extra { } } - //#if FABRIC>=1 { on(PostRenderCallback.EVENT, this::postRender); } private void postRender() { - //#else - //$$ @SubscribeEvent - //$$ public void postRender(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.END) return; - //#endif if (active && module.getReplayHandler() != null) { Type type = getType(); if (type == Type.Gamma || type == Type.Both) { diff --git a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverview.java b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverview.java index 0cbbbf8c..6152e5e3 100644 --- a/src/main/java/com/replaymod/extras/playeroverview/PlayerOverview.java +++ b/src/main/java/com/replaymod/extras/playeroverview/PlayerOverview.java @@ -2,6 +2,7 @@ package com.replaymod.extras.playeroverview; import com.google.common.base.Optional; import com.replaymod.core.ReplayMod; +import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.utils.Utils; import com.replaymod.extras.Extra; import com.replaymod.replay.ReplayHandler; @@ -14,23 +15,11 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.PlayerEntity; //#if MC>=11400 -import com.replaymod.core.events.PreRenderHandCallback; import java.util.stream.Collectors; //#else -//$$ import net.minecraftforge.client.event.RenderHandEvent; -//$$ -//#if MC>=11400 -//#else //$$ import org.lwjgl.input.Keyboard; -//#endif -//$$ //#if MC>=10800 //$$ import com.google.common.base.Predicate; -//#if MC>=11400 -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//#else -//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; -//#endif //#else //$$ import cpw.mods.fml.common.eventhandler.EventPriority; //$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -126,16 +115,7 @@ public class PlayerOverview extends EventRegistrations implements Extra { hiddenPlayers.clear(); } - //#if MC>=11400 { on(PreRenderHandCallback.EVENT, this::shouldHideHand); } - //#else - //$$ @SubscribeEvent - //$$ public void oRenderHand(RenderHandEvent event) { - //$$ if (shouldHideHand()) { - //$$ event.setCanceled(true); - //$$ } - //$$ } - //#endif private boolean shouldHideHand() { Entity view = getRenderViewEntity(module.getCore().getMinecraft()); return view != null && isHidden(view.getUuid()); diff --git a/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java b/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java index 5fde32a5..fa284bc0 100644 --- a/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java +++ b/src/main/java/com/replaymod/extras/youtube/YoutubeUpload.java @@ -3,19 +3,11 @@ package com.replaymod.extras.youtube; import com.replaymod.core.ReplayMod; import com.replaymod.extras.Extra; import com.replaymod.render.gui.GuiRenderingDone; -import de.johni0702.minecraft.gui.container.GuiScreen; +import de.johni0702.minecraft.gui.container.AbstractGuiScreen; import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.utils.EventRegistrations; - -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback; +import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.Screen; -//#else -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//#endif - -import static com.replaymod.core.versions.MCVer.*; public class YoutubeUpload extends EventRegistrations implements Extra { @Override @@ -23,16 +15,11 @@ public class YoutubeUpload extends EventRegistrations implements Extra { register(); } - //#if FABRIC>=1 - { on(OpenGuiScreenCallback.EVENT, this::onGuiOpen); } + { on(InitScreenCallback.EVENT, ((screen, buttons) -> onGuiOpen(screen))); } private void onGuiOpen(Screen vanillaGui) { - //#else - //$$ @SubscribeEvent - //$$ public void onGuiOpen(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.screen.Screen vanillaGui = getGui(event); - //#endif - if (GuiScreen.from(vanillaGui) instanceof GuiRenderingDone) { - GuiRenderingDone gui = (GuiRenderingDone) GuiScreen.from(vanillaGui); + AbstractGuiScreen abstractScreen = de.johni0702.minecraft.gui.container.GuiScreen.from(vanillaGui); + if (abstractScreen instanceof GuiRenderingDone) { + GuiRenderingDone gui = (GuiRenderingDone) abstractScreen; // Check if there already is a youtube button if (gui.actionsPanel.getChildren().stream().anyMatch(it -> it instanceof YoutubeButton)) { return; // Button already added diff --git a/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java b/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java index df97260f..b9af9692 100644 --- a/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java +++ b/src/main/java/com/replaymod/recording/gui/GuiRecordingControls.java @@ -4,7 +4,6 @@ import com.replaymod.core.ReplayMod; import com.replaymod.core.utils.Utils; import com.replaymod.core.versions.MCVer; import com.replaymod.editor.gui.MarkerProcessor; -import com.replaymod.recording.Setting; import com.replaymod.recording.packet.PacketListener; import de.johni0702.minecraft.gui.container.GuiPanel; import de.johni0702.minecraft.gui.container.VanillaGuiScreen; @@ -12,19 +11,10 @@ import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.layout.CustomLayout; import de.johni0702.minecraft.gui.layout.HorizontalLayout; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.Screen; -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -//#else -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.common.MinecraftForge; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ -//$$ import static com.replaymod.core.versions.MCVer.getGui; -//#endif - //#if MC>=11400 import net.minecraft.client.gui.widget.AbstractButtonWidget; //#endif @@ -85,19 +75,14 @@ public class GuiRecordingControls extends EventRegistrations { buttonPauseResume.setEnabled(!stopped); } - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } - private void injectIntoIngameMenu(Screen guiScreen, List buttonList) { - //#else - //$$ @SubscribeEvent - //$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ Screen guiScreen = getGui(event); - //#if MC>=11400 - //$$ List buttonList = MCVer.getButtonList(event); - //#else - //$$ List buttonList = MCVer.getButtonList(event); - //#endif - //#endif + private void injectIntoIngameMenu(Screen guiScreen, + //#if MC>=11400 + List buttonList + //#else + //$$ List buttonList + //#endif + ) { if (!(guiScreen instanceof GameMenuScreen)) { return; } diff --git a/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java b/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java index 41844484..8ed65093 100644 --- a/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java +++ b/src/main/java/com/replaymod/recording/gui/GuiRecordingOverlay.java @@ -1,24 +1,16 @@ package com.replaymod.recording.gui; import com.replaymod.core.SettingsRegistry; -import com.replaymod.core.versions.MCVer; import com.replaymod.recording.Setting; import de.johni0702.minecraft.gui.GuiRenderer; import de.johni0702.minecraft.gui.MinecraftGuiRenderer; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.RenderHudCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.resource.language.I18n; import net.minecraft.client.util.math.MatrixStack; -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.RenderHudCallback; -//#else -//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; -//$$ import net.minecraftforge.common.MinecraftForge; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//#endif - import static com.replaymod.core.ReplayMod.TEXTURE; import static com.replaymod.core.ReplayMod.TEXTURE_SIZE; import static com.replaymod.core.versions.MCVer.*; @@ -41,15 +33,8 @@ public class GuiRecordingOverlay extends EventRegistrations { /** * Render the recording icon and text in the top left corner of the screen. */ - //#if FABRIC>=1 { on(RenderHudCallback.EVENT, (stack, partialTicks) -> renderRecordingIndicator(stack)); } private void renderRecordingIndicator(MatrixStack stack) { - //#else - //$$ @SubscribeEvent - //$$ public void renderRecordingIndicator(RenderGameOverlayEvent.Post event) { - //$$ if (getType(event) != RenderGameOverlayEvent.ElementType.ALL) return; - //$$ MatrixStack stack = new MatrixStack(); - //#endif if (guiControls.isStopped()) return; if (settingsRegistry.get(Setting.INDICATOR)) { TextRenderer fontRenderer = mc.textRenderer; diff --git a/src/main/java/com/replaymod/recording/handler/GuiHandler.java b/src/main/java/com/replaymod/recording/handler/GuiHandler.java index ffeb1e87..10f7c920 100644 --- a/src/main/java/com/replaymod/recording/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/recording/handler/GuiHandler.java @@ -14,23 +14,13 @@ import de.johni0702.minecraft.gui.element.GuiToggleButton; import de.johni0702.minecraft.gui.layout.CustomLayout; import de.johni0702.minecraft.gui.popup.GuiInfoPopup; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import net.minecraft.client.gui.screen.AddServerScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen; import net.minecraft.client.network.ServerInfo; import net.minecraft.client.resource.language.I18n; -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -import net.minecraft.client.gui.screen.Screen; -//#else -//$$ import net.minecraftforge.client.event.GuiScreenEvent; -//$$ import net.minecraftforge.common.MinecraftForge; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ -//$$ import static com.replaymod.core.versions.MCVer.getGui; -//#endif - public class GuiHandler extends EventRegistrations { private final ReplayMod mod; @@ -39,14 +29,8 @@ public class GuiHandler extends EventRegistrations { this.mod = mod; } - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } - private void onGuiInit(Screen gui) { - //#else - //$$ @SubscribeEvent - //$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ net.minecraft.client.gui.screen.Screen gui = getGui(event); - //#endif + private void onGuiInit(net.minecraft.client.gui.screen.Screen gui) { if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) { boolean sp = gui instanceof SelectWorldScreen; SettingsRegistry settingsRegistry = mod.getSettingsRegistry(); diff --git a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java index 7894fef8..40c6eefe 100644 --- a/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java +++ b/src/main/java/com/replaymod/recording/handler/RecordingEventHandler.java @@ -1,8 +1,10 @@ package com.replaymod.recording.handler; +import com.replaymod.core.events.PreRenderCallback; import com.replaymod.recording.mixin.IntegratedServerAccessor; import com.replaymod.recording.packet.PacketListener; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.network.packet.s2c.play.BlockBreakingProgressS2CPacket; @@ -20,15 +22,11 @@ import net.minecraft.network.Packet; import net.minecraft.server.integrated.IntegratedServer; // FIXME not (yet?) 1.13 import net.minecraftforge.event.entity.minecart.MinecartInteractEvent; -//#if FABRIC>=1 -import com.replaymod.core.events.PreRenderCallback; -import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; -//#else +//#if FABRIC<1 //$$ import net.minecraft.network.play.server.SCollectItemPacket; //$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent; -//$$ import net.minecraftforge.event.TickEvent; //#endif //#if MC>=11600 @@ -139,15 +137,9 @@ public class RecordingEventHandler extends EventRegistrations { } //#endif - //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onPlayerTick); } private void onPlayerTick() { if (mc.player == null) return; - //#else - //$$ @SubscribeEvent - //$$ public void onPlayerTick(TickEvent.ClientTickEvent e) { - //$$ if(e.phase != TickEvent.Phase.START || mc.player == null) return; - //#endif ClientPlayerEntity player = mc.player; try { @@ -465,14 +457,8 @@ public class RecordingEventHandler extends EventRegistrations { } } - //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::checkForGamePaused); } private void checkForGamePaused() { - //#else - //$$ @SubscribeEvent - //$$ public void checkForGamePaused(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif if (mc.isIntegratedServerRunning()) { IntegratedServer server = mc.getServer(); if (server != null && ((IntegratedServerAccessor) server).isGamePaused()) { diff --git a/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java b/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java index dba61c99..54560f1d 100644 --- a/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java +++ b/src/main/java/com/replaymod/render/hooks/EntityRendererHandler.java @@ -1,5 +1,6 @@ package com.replaymod.render.hooks; +import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.versions.MCVer; import com.replaymod.render.RenderSettings; import com.replaymod.render.capturer.CaptureData; @@ -15,7 +16,6 @@ import net.minecraft.client.util.math.MatrixStack; //#if MC>=11400 import com.replaymod.core.events.PostRenderCallback; import com.replaymod.core.events.PreRenderCallback; -import com.replaymod.core.events.PreRenderHandCallback; //#else //#if MC>=11400 //$$ import net.minecraftforge.fml.hooks.BasicEventHooks; @@ -41,9 +41,7 @@ public class EntityRendererHandler extends EventRegistrations implements WorldRe this.settings = settings; this.renderInfo = renderInfo; - //#if MC>=11400 on(PreRenderHandCallback.EVENT, () -> omnidirectional); - //#endif ((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(this); register(); diff --git a/src/main/java/com/replaymod/replay/FullReplaySender.java b/src/main/java/com/replaymod/replay/FullReplaySender.java index 20ab761d..bb760016 100644 --- a/src/main/java/com/replaymod/replay/FullReplaySender.java +++ b/src/main/java/com/replaymod/replay/FullReplaySender.java @@ -12,6 +12,7 @@ import com.replaymod.replay.camera.CameraEntity; import com.replaymod.replaystudio.io.ReplayInputStream; import com.replaymod.replaystudio.replay.ReplayFile; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelDuplexHandler; @@ -57,13 +58,6 @@ import net.minecraft.util.math.MathHelper; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; -//#else -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.event.TickEvent; -//#endif - //#if MC>=11600 //#else //$$ import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket; @@ -364,22 +358,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend } } - //#if MC>=10800 - private - //#else - //$$ public // All event handlers need to be public in 1.7.10 - //#endif - class EventHandler extends EventRegistrations { - //#if FABRIC>=1 + private class EventHandler extends EventRegistrations { { on(PreTickCallback.EVENT, this::onWorldTick); } private void onWorldTick() { - //#else - //$$ @SubscribeEvent - //$$ public void onWorldTick(TickEvent.ClientTickEvent event) { - //$$ // Unfortunately the WorldTickEvent doesn't seem to be emitted on the CLIENT side - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif - // Spawning a player into an empty chunk (which we might do with the recording player) // prevents it from being moved by teleport packets (it essentially gets stuck) because // Entity#addedToChunk is not set and it is therefore not updated every tick. diff --git a/src/main/java/com/replaymod/replay/QuickReplaySender.java b/src/main/java/com/replaymod/replay/QuickReplaySender.java index 601efec8..18b30a0c 100644 --- a/src/main/java/com/replaymod/replay/QuickReplaySender.java +++ b/src/main/java/com/replaymod/replay/QuickReplaySender.java @@ -12,6 +12,7 @@ import com.replaymod.core.mixin.TimerAccessor; import com.replaymod.replaystudio.replay.ReplayFile; import com.replaymod.replaystudio.util.RandomAccessReplay; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandler; @@ -25,15 +26,6 @@ import net.minecraft.network.NetworkSide; import net.minecraft.network.Packet; import net.minecraft.network.PacketByteBuf; -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; -//#else -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.event.TickEvent; -//$$ -//$$ import static com.replaymod.core.versions.MCVer.FML_BUS; -//#endif - import javax.annotation.Nullable; import java.io.IOException; import java.util.Collections; @@ -285,14 +277,8 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe } private class EventHandler extends EventRegistrations { - //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onTick); } private void onTick() { - //#else - //$$ @SubscribeEvent - //$$ public void onTick(TickEvent.ClientTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif if (!asyncMode || paused()) return; long now = System.currentTimeMillis(); diff --git a/src/main/java/com/replaymod/replay/camera/CameraEntity.java b/src/main/java/com/replaymod/replay/camera/CameraEntity.java index 591a37d2..ea28d740 100644 --- a/src/main/java/com/replaymod/replay/camera/CameraEntity.java +++ b/src/main/java/com/replaymod/replay/camera/CameraEntity.java @@ -3,9 +3,13 @@ package com.replaymod.replay.camera; import com.replaymod.core.KeyBindingRegistry; import com.replaymod.core.ReplayMod; import com.replaymod.core.SettingsRegistry; +import com.replaymod.core.events.KeyBindingEventCallback; +import com.replaymod.core.events.PreRenderCallback; +import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.events.SettingsChangedCallback; import com.replaymod.replay.ReplayHandler; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; import com.replaymod.core.utils.Utils; import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.Setting; @@ -24,20 +28,14 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.Box; //#if FABRIC>=1 -import com.replaymod.core.events.KeyBindingEventCallback; -import com.replaymod.core.events.PreRenderCallback; -import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.replay.events.RenderSpectatorCrosshairCallback; -import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback; //#else //$$ import com.replaymod.core.versions.MCVer; //$$ import net.minecraftforge.client.event.EntityViewRenderEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; -//$$ import net.minecraftforge.client.event.RenderHandEvent; //$$ import net.minecraftforge.common.MinecraftForge; //$$ import net.minecraftforge.eventbus.api.EventPriority; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; -//$$ import net.minecraftforge.event.TickEvent; //#endif //#if MC>=11400 @@ -51,7 +49,6 @@ import net.minecraft.util.hit.HitResult; //$$ import net.minecraft.util.math.RayTraceResult; //$$ import net.minecraft.util.text.ITextComponent; //$$ import net.minecraft.world.World; -//$$ import net.minecraftforge.fml.common.gameevent.InputEvent; //$$ //#if MC>=11400 //$$ import net.minecraft.util.math.RayTraceFluidMode; @@ -671,41 +668,17 @@ public class CameraEntity private EventHandler() {} - //#if FABRIC>=1 { on(PreTickCallback.EVENT, this::onPreClientTick); } private void onPreClientTick() { - //#else - //$$ @SubscribeEvent - //$$ public void onPreClientTick(TickEvent.ClientTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif updateArmYawAndPitch(); } - //#if FABRIC>=1 { on(PreRenderCallback.EVENT, this::onRenderUpdate); } private void onRenderUpdate() { - //#else - //$$ @SubscribeEvent - //$$ public void onRenderUpdate(TickEvent.RenderTickEvent event) { - //$$ if (event.phase != TickEvent.Phase.START) return; - //#endif update(); } - //#if FABRIC>=1 { on(KeyBindingEventCallback.EVENT, CameraEntity.this::handleInputEvents); } - //#elseif MC<11400 - //$$ @SubscribeEvent - //$$ public void onKeyEvent(InputEvent.KeyInputEvent event) { - //$$ handleInputEvents(); - //$$ } - //$$ - //$$ @SubscribeEvent - //$$ public void onMouseInput(InputEvent.MouseInputEvent event) { - //$$ handleInputEvents(); - //$$ } - //#endif //#if FABRIC>=1 { on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); } @@ -737,35 +710,13 @@ public class CameraEntity } } - //#if FABRIC>=1 { on(PreRenderHandCallback.EVENT, this::onRenderHand); } private boolean onRenderHand() { // Unless we are spectating another player, don't render our hand - if (getRenderViewEntity(mc) == CameraEntity.this || !(getRenderViewEntity(mc) instanceof PlayerEntity)) { + Entity view = getRenderViewEntity(mc); + if (view == CameraEntity.this || !(view instanceof PlayerEntity)) { return true; // cancel hand rendering } else { - onRenderHandMonitor(); - return false; - } - } - //#else - //$$ @SubscribeEvent - //$$ public void onRenderHand(RenderHandEvent event) { - //$$ // Unless we are spectating another player, don't render our hand - //$$ if (getRenderViewEntity(mc) == CameraEntity.this || !(getRenderViewEntity(mc) instanceof PlayerEntity)) { - //$$ event.setCanceled(true); - //$$ } - //$$ } - //#endif - - //#if FABRIC>=1 - private void onRenderHandMonitor() { - //#else - //$$ @SubscribeEvent(priority = EventPriority.LOWEST) - //$$ public void onRenderHandMonitor(RenderHandEvent event) { - //#endif - Entity view = getRenderViewEntity(mc); - if (view instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) view; // When the spectated player has changed, force equip their items to prevent the equip animation if (lastHandRendered != player) { @@ -790,6 +741,7 @@ public class CameraEntity mc.player.renderYaw = mc.player.lastRenderYaw = player.yaw; mc.player.renderPitch = mc.player.lastRenderPitch = player.pitch; } + return false; } } diff --git a/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java b/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java index 7a53b071..14bef7b1 100644 --- a/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java +++ b/src/main/java/com/replaymod/replay/gui/overlay/GuiReplayOverlay.java @@ -170,12 +170,7 @@ public class GuiReplayOverlay extends AbstractGuiOverlay { return this; } - //#if MC>=10800 - private - //#else - //$$ public // All event handlers need to be public in 1.7.10 - //#endif - class EventHandler extends EventRegistrations { + private class EventHandler extends EventRegistrations { { on(KeyBindingEventCallback.EVENT, this::onKeyBindingEvent); } private void onKeyBindingEvent() { GameOptions gameSettings = getMinecraft().options; diff --git a/src/main/java/com/replaymod/replay/handler/GuiHandler.java b/src/main/java/com/replaymod/replay/handler/GuiHandler.java index 88eea893..e727134c 100644 --- a/src/main/java/com/replaymod/replay/handler/GuiHandler.java +++ b/src/main/java/com/replaymod/replay/handler/GuiHandler.java @@ -1,6 +1,7 @@ package com.replaymod.replay.handler; import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.gui.screen.GuiReplayViewer; import net.minecraft.client.gui.screen.GameMenuScreen; @@ -16,9 +17,7 @@ import net.minecraft.text.TranslatableText; //$$ import net.minecraft.client.resource.language.I18n; //#endif -//#if FABRIC>=1 -import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; -//#else +//#if FABRIC<1 //$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //#endif @@ -46,15 +45,8 @@ public class GuiHandler extends EventRegistrations { this.mod = mod; } - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } private void injectIntoIngameMenu(Screen guiScreen, List buttonList) { - //#else - //$$ @SubscribeEvent - //$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) { - //$$ Screen guiScreen = getGui(event); - //$$ List buttonList = getButtonList(event); - //#endif if (!(guiScreen instanceof GameMenuScreen)) { return; } @@ -198,14 +190,8 @@ public class GuiHandler extends EventRegistrations { .forEach(button -> button.y += moveBy); } - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::ensureReplayStopped); } private void ensureReplayStopped(Screen guiScreen, List buttonList) { - //#else - //$$ @SubscribeEvent - //$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) { - //$$ Screen guiScreen = getGui(event); - //#endif if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) { return; } @@ -225,15 +211,8 @@ public class GuiHandler extends EventRegistrations { } } - //#if FABRIC>=1 { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } private void injectIntoMainMenu(Screen guiScreen, List buttonList) { - //#else - //$$ @SubscribeEvent - //$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) { - //$$ Screen guiScreen = getGui(event); - //$$ List buttonList = getButtonList(event); - //#endif if (!(guiScreen instanceof TitleScreen)) { return; } @@ -269,7 +248,7 @@ public class GuiHandler extends EventRegistrations { //#if FABRIC<=0 //$$ if (guiScreen.getClass().getName().endsWith("custommainmenu.gui.GuiFakeMain")) { //$$ // CustomMainMenu uses a different list in the event than in its Fake gui - //$$ addButton(event, button); + //$$ buttonList.add(button); //$$ return; //$$ } //#endif diff --git a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java index d4ff56cd..450d853e 100644 --- a/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java +++ b/src/main/java/com/replaymod/simplepathing/preview/PathPreviewRenderer.java @@ -1,6 +1,8 @@ package com.replaymod.simplepathing.preview; +import com.mojang.blaze3d.platform.GlStateManager; import com.replaymod.core.ReplayMod; +import com.replaymod.core.events.PostRenderWorldCallback; import com.replaymod.core.versions.MCVer; import com.replaymod.pathing.properties.CameraProperties; import com.replaymod.pathing.properties.SpectatorProperty; @@ -17,7 +19,7 @@ import com.replaymod.simplepathing.SPTimeline; import com.replaymod.simplepathing.gui.GuiPathing; import de.johni0702.minecraft.gui.utils.EventRegistrations; import net.minecraft.client.MinecraftClient; -import com.mojang.blaze3d.platform.GlStateManager; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.entity.Entity; import net.minecraft.util.Identifier; import org.apache.commons.lang3.tuple.Pair; @@ -26,14 +28,6 @@ import org.lwjgl.opengl.GL11; //#if MC>=11500 import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.client.util.math.MatrixStack; -//#endif - -//#if FABRIC>=1 -import com.replaymod.core.events.PostRenderWorldCallback; -//#else -//$$ import net.minecraftforge.client.event.RenderWorldLastEvent; -//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //#endif import java.util.Comparator; @@ -58,17 +52,8 @@ public class PathPreviewRenderer extends EventRegistrations { this.replayHandler = replayHandler; } - //#if FABRIC>=1 { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } - //#if MC>=11500 private void renderCameraPath(MatrixStack matrixStack) { - //#else - //$$ private void renderCameraPath() { - //#endif - //#else - //$$ @SubscribeEvent - //$$ public void renderCameraPath(RenderWorldLastEvent event) { - //#endif if (!replayHandler.getReplaySender().isAsyncMode() || mc.options.hudHidden) return; Entity view = getRenderViewEntity(mc); diff --git a/versions/1.12.2/src/main/java/com/replaymod/core/ReplayModBackend.java b/versions/1.12.2/src/main/java/com/replaymod/core/ReplayModBackend.java index 75fb9e91..d0f1fb62 100644 --- a/versions/1.12.2/src/main/java/com/replaymod/core/ReplayModBackend.java +++ b/versions/1.12.2/src/main/java/com/replaymod/core/ReplayModBackend.java @@ -1,6 +1,7 @@ package com.replaymod.core; import com.replaymod.core.mixin.MinecraftAccessor; +import com.replaymod.core.versions.forge.EventsAdapter; import net.minecraft.client.resources.IResourcePack; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.fml.common.Loader; @@ -36,6 +37,7 @@ import static com.replaymod.core.versions.MCVer.getMinecraft; guiFactory = "com.replaymod.core.gui.GuiFactory") public class ReplayModBackend { private final ReplayMod mod = new ReplayMod(this); + private final EventsAdapter eventsAdapter = new EventsAdapter(); @Deprecated public static Configuration config; @@ -52,6 +54,7 @@ public class ReplayModBackend { @EventHandler public void init(FMLInitializationEvent event) { mod.initModules(); + eventsAdapter.register(); } public String getVersion() { diff --git a/versions/1.12.2/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java b/versions/1.12.2/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java new file mode 100644 index 00000000..02e5574f --- /dev/null +++ b/versions/1.12.2/src/main/java/com/replaymod/core/versions/forge/EventsAdapter.java @@ -0,0 +1,50 @@ +package com.replaymod.core.versions.forge; + +import com.replaymod.core.events.KeyBindingEventCallback; +import com.replaymod.core.events.PostRenderCallback; +import com.replaymod.core.events.PostRenderWorldCallback; +import com.replaymod.core.events.PreRenderCallback; +import com.replaymod.core.events.PreRenderHandCallback; +import de.johni0702.minecraft.gui.utils.EventRegistrations; +import de.johni0702.minecraft.gui.versions.MatrixStack; +import net.minecraftforge.client.event.RenderHandEvent; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +public class EventsAdapter extends EventRegistrations { + @SubscribeEvent + public void onKeyEvent(InputEvent.KeyInputEvent event) { + KeyBindingEventCallback.EVENT.invoker().onKeybindingEvent(); + } + + @SubscribeEvent + public void onMouseInput(InputEvent.MouseInputEvent event) { + KeyBindingEventCallback.EVENT.invoker().onKeybindingEvent(); + } + + @SubscribeEvent + public void preRender(TickEvent.RenderTickEvent event) { + if (event.phase != TickEvent.Phase.START) return; + PreRenderCallback.EVENT.invoker().preRender(); + } + + @SubscribeEvent + public void postRender(TickEvent.RenderTickEvent event) { + if (event.phase != TickEvent.Phase.END) return; + PostRenderCallback.EVENT.invoker().postRender(); + } + + @SubscribeEvent + public void renderCameraPath(RenderWorldLastEvent event) { + PostRenderWorldCallback.EVENT.invoker().postRenderWorld(new MatrixStack()); + } + + @SubscribeEvent + public void oRenderHand(RenderHandEvent event) { + if (PreRenderHandCallback.EVENT.invoker().preRenderHand()) { + event.setCanceled(true); + } + } +}