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.
This commit is contained in:
Jonas Herzig
2021-02-22 23:11:34 +01:00
parent 0be2082fe7
commit 633bc19650
27 changed files with 110 additions and 378 deletions

2
jGui

Submodule jGui updated: 80ff9223d3...96edf0fe31

View File

@@ -1,6 +1,7 @@
//#if MC>=10800 //#if MC>=10800
package com.replaymod.compat.shaders; package com.replaymod.compat.shaders;
import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.render.hooks.EntityRendererHandler; import com.replaymod.render.hooks.EntityRendererHandler;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
@@ -9,13 +10,6 @@ import java.lang.reflect.InvocationTargetException;
import static com.replaymod.core.versions.MCVer.getRenderPartialTicks; 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 { public class ShaderBeginRender extends EventRegistrations {
private final MinecraftClient mc = MinecraftClient.getInstance(); private final MinecraftClient mc = MinecraftClient.getInstance();
@@ -25,14 +19,8 @@ public class ShaderBeginRender extends EventRegistrations {
* as this would usually get called by EntityRenderer#renderWorld, * as this would usually get called by EntityRenderer#renderWorld,
* which we're not calling during rendering. * which we're not calling during rendering.
*/ */
//#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::onRenderTickStart); } { on(PreRenderCallback.EVENT, this::onRenderTickStart); }
private void 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.shaders_beginRender == null) return;
if (ShaderReflection.config_isShaders == null) return; if (ShaderReflection.config_isShaders == null) return;

View File

@@ -2,6 +2,7 @@ package com.replaymod.core;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.mixin.KeyBindingAccessor; import com.replaymod.core.mixin.KeyBindingAccessor;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import com.replaymod.core.events.KeyBindingEventCallback; 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; //$$ import net.minecraftforge.fml.client.registry.ClientRegistry;
//#endif //#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.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
@@ -102,15 +94,7 @@ public class KeyBindingRegistry extends EventRegistrations {
return Collections.unmodifiableSet(onlyInReplay); return Collections.unmodifiableSet(onlyInReplay);
} }
//#if MC>=11400
{ on(PreRenderCallback.EVENT, this::handleRepeatedKeyBindings); } { 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() { public void handleRepeatedKeyBindings() {
for (Binding binding : bindings.values()) { for (Binding binding : bindings.values()) {

View File

@@ -1,4 +1,3 @@
//#if MC>=11400
package com.replaymod.core.events; package com.replaymod.core.events;
import de.johni0702.minecraft.gui.utils.Event; import de.johni0702.minecraft.gui.utils.Event;
@@ -14,4 +13,3 @@ public interface PostRenderCallback {
void postRender(); void postRender();
} }
//#endif

View File

@@ -1,33 +1,16 @@
//#if MC>=11400
package com.replaymod.core.events; package com.replaymod.core.events;
import de.johni0702.minecraft.gui.utils.Event; import de.johni0702.minecraft.gui.utils.Event;
//#if MC>=11500
import net.minecraft.client.util.math.MatrixStack; import net.minecraft.client.util.math.MatrixStack;
//#endif
public interface PostRenderWorldCallback { public interface PostRenderWorldCallback {
Event<PostRenderWorldCallback> EVENT = Event.create((listeners) -> Event<PostRenderWorldCallback> EVENT = Event.create((listeners) ->
//#if MC>=11500
(MatrixStack matrixStack) -> { (MatrixStack matrixStack) -> {
//#else
//$$ () -> {
//#endif
for (PostRenderWorldCallback listener : listeners) { for (PostRenderWorldCallback listener : listeners) {
listener.postRenderWorld( listener.postRenderWorld(matrixStack);
//#if MC>=11500
matrixStack
//#endif
);
} }
} }
); );
void postRenderWorld( void postRenderWorld(MatrixStack matrixStack);
//#if MC>=11500
MatrixStack matrixStack
//#endif
);
} }
//#endif

View File

@@ -1,4 +1,3 @@
//#if MC>=11400
package com.replaymod.core.events; package com.replaymod.core.events;
import de.johni0702.minecraft.gui.utils.Event; import de.johni0702.minecraft.gui.utils.Event;
@@ -14,4 +13,3 @@ public interface PreRenderCallback {
void preRender(); void preRender();
} }
//#endif

View File

@@ -1,4 +1,3 @@
//#if MC>=11400
package com.replaymod.core.events; package com.replaymod.core.events;
import de.johni0702.minecraft.gui.utils.Event; import de.johni0702.minecraft.gui.utils.Event;
@@ -17,4 +16,3 @@ public interface PreRenderHandCallback {
boolean preRenderHand(); boolean preRenderHand();
} }
//#endif

View File

@@ -12,30 +12,15 @@ import de.johni0702.minecraft.gui.layout.VerticalLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.utils.lwjgl.Dimension; import de.johni0702.minecraft.gui.utils.lwjgl.Dimension;
import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension; import de.johni0702.minecraft.gui.utils.lwjgl.ReadableDimension;
//#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; 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; import static com.replaymod.core.versions.MCVer.getMinecraft;
public class GuiBackgroundProcesses extends EventRegistrations { public class GuiBackgroundProcesses extends EventRegistrations {
private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10)); private GuiPanel panel = new GuiPanel().setLayout(new VerticalLayout().setSpacing(10));
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); }
private void onGuiInit(Screen guiScreen) { private void onGuiInit(net.minecraft.client.gui.screen.Screen guiScreen) {
//#else
//$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ net.minecraft.client.gui.screen.Screen guiScreen = getGui(event);
//#endif
if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them if (guiScreen != getMinecraft().currentScreen) return; // people tend to construct GuiScreens without opening them
VanillaGuiScreen vanillaGui = VanillaGuiScreen.wrap(guiScreen); VanillaGuiScreen vanillaGui = VanillaGuiScreen.wrap(guiScreen);

View File

@@ -5,15 +5,12 @@ import com.replaymod.core.events.PostRenderWorldCallback;
import com.replaymod.core.events.PreRenderHandCallback; import com.replaymod.core.events.PreRenderHandCallback;
import net.minecraft.client.render.Camera; import net.minecraft.client.render.Camera;
import net.minecraft.client.render.GameRenderer; import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.util.math.MatrixStack;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
//#if MC>=11500
import net.minecraft.client.util.math.MatrixStack;
//#endif
@Mixin(GameRenderer.class) @Mixin(GameRenderer.class)
public class MixinGameRenderer { public class MixinGameRenderer {
@Inject( @Inject(
@@ -30,11 +27,10 @@ public class MixinGameRenderer {
MatrixStack matrixStack, MatrixStack matrixStack,
//#endif //#endif
CallbackInfo ci) { CallbackInfo ci) {
PostRenderWorldCallback.EVENT.invoker().postRenderWorld( //#if MC<11500
//#if MC>=11500 //$$ MatrixStack matrixStack = new MatrixStack();
matrixStack //#endif
//#endif PostRenderWorldCallback.EVENT.invoker().postRenderWorld(matrixStack);
);
} }
@Inject(method = "renderHand", at = @At("HEAD"), cancellable = true) @Inject(method = "renderHand", at = @At("HEAD"), cancellable = true)

View File

@@ -0,0 +1 @@
// Forge only

View File

@@ -1,6 +1,5 @@
package com.replaymod.editor.handler; package com.replaymod.editor.handler;
import de.johni0702.minecraft.gui.utils.EventRegistrations;
import com.replaymod.core.utils.Utils; import com.replaymod.core.utils.Utils;
import com.replaymod.editor.ReplayModEditor; import com.replaymod.editor.ReplayModEditor;
import com.replaymod.editor.gui.GuiEditReplay; 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.AbstractGuiScreen;
import de.johni0702.minecraft.gui.container.GuiScreen; import de.johni0702.minecraft.gui.container.GuiScreen;
import de.johni0702.minecraft.gui.element.GuiButton; import de.johni0702.minecraft.gui.element.GuiButton;
import net.minecraft.util.crash.CrashReport; import de.johni0702.minecraft.gui.utils.EventRegistrations;
//#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback; import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import net.minecraft.client.gui.screen.Screen; import net.minecraft.util.crash.CrashReport;
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 java.io.IOException; import java.io.IOException;
import static com.replaymod.core.versions.MCVer.*;
public class GuiHandler extends EventRegistrations { public class GuiHandler extends EventRegistrations {
//#if FABRIC>=1 { on(InitScreenCallback.EVENT, (vanillaGuiScreen, buttonList) -> injectIntoReplayViewer(vanillaGuiScreen)); }
{ on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); } public void injectIntoReplayViewer(net.minecraft.client.gui.screen.Screen vanillaGuiScreen) {
public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) {
//#else
//$$ @SubscribeEvent
//$$ public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ net.minecraft.client.gui.screen.Screen vanillaGuiScreen = getGui(event);
//#endif
AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen); AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen);
if (!(guiScreen instanceof GuiReplayViewer)) { if (!(guiScreen instanceof GuiReplayViewer)) {
return; return;

View File

@@ -1,6 +1,8 @@
package com.replaymod.extras; package com.replaymod.extras;
import com.replaymod.core.ReplayMod; 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.core.versions.MCVer.Keyboard;
import com.replaymod.replay.ReplayHandler; import com.replaymod.replay.ReplayHandler;
import com.replaymod.replay.ReplayModReplay; 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.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects; 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 { public class FullBrightness extends EventRegistrations implements Extra {
private ReplayMod core; private ReplayMod core;
private ReplayModReplay module; private ReplayModReplay module;
@@ -72,14 +66,8 @@ public class FullBrightness extends EventRegistrations implements Extra {
return Type.Gamma; return Type.Gamma;
} }
//#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::preRender); } { on(PreRenderCallback.EVENT, this::preRender); }
private void 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) { if (active && module.getReplayHandler() != null) {
Type type = getType(); Type type = getType();
if (type == Type.Gamma || type == Type.Both) { 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); } { on(PostRenderCallback.EVENT, this::postRender); }
private void 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) { if (active && module.getReplayHandler() != null) {
Type type = getType(); Type type = getType();
if (type == Type.Gamma || type == Type.Both) { if (type == Type.Gamma || type == Type.Both) {

View File

@@ -2,6 +2,7 @@ package com.replaymod.extras.playeroverview;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.core.events.PreRenderHandCallback;
import com.replaymod.core.utils.Utils; import com.replaymod.core.utils.Utils;
import com.replaymod.extras.Extra; import com.replaymod.extras.Extra;
import com.replaymod.replay.ReplayHandler; import com.replaymod.replay.ReplayHandler;
@@ -14,23 +15,11 @@ import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
//#if MC>=11400 //#if MC>=11400
import com.replaymod.core.events.PreRenderHandCallback;
import java.util.stream.Collectors; import java.util.stream.Collectors;
//#else //#else
//$$ import net.minecraftforge.client.event.RenderHandEvent;
//$$
//#if MC>=11400
//#else
//$$ import org.lwjgl.input.Keyboard; //$$ import org.lwjgl.input.Keyboard;
//#endif
//$$
//#if MC>=10800 //#if MC>=10800
//$$ import com.google.common.base.Predicate; //$$ 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 //#else
//$$ import cpw.mods.fml.common.eventhandler.EventPriority; //$$ import cpw.mods.fml.common.eventhandler.EventPriority;
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent; //$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
@@ -126,16 +115,7 @@ public class PlayerOverview extends EventRegistrations implements Extra {
hiddenPlayers.clear(); hiddenPlayers.clear();
} }
//#if MC>=11400
{ on(PreRenderHandCallback.EVENT, this::shouldHideHand); } { on(PreRenderHandCallback.EVENT, this::shouldHideHand); }
//#else
//$$ @SubscribeEvent
//$$ public void oRenderHand(RenderHandEvent event) {
//$$ if (shouldHideHand()) {
//$$ event.setCanceled(true);
//$$ }
//$$ }
//#endif
private boolean shouldHideHand() { private boolean shouldHideHand() {
Entity view = getRenderViewEntity(module.getCore().getMinecraft()); Entity view = getRenderViewEntity(module.getCore().getMinecraft());
return view != null && isHidden(view.getUuid()); return view != null && isHidden(view.getUuid());

View File

@@ -3,19 +3,11 @@ package com.replaymod.extras.youtube;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.extras.Extra; import com.replaymod.extras.Extra;
import com.replaymod.render.gui.GuiRenderingDone; 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.element.GuiButton;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
//#if FABRIC>=1
import de.johni0702.minecraft.gui.versions.callbacks.OpenGuiScreenCallback;
import net.minecraft.client.gui.screen.Screen; 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 { public class YoutubeUpload extends EventRegistrations implements Extra {
@Override @Override
@@ -23,16 +15,11 @@ public class YoutubeUpload extends EventRegistrations implements Extra {
register(); register();
} }
//#if FABRIC>=1 { on(InitScreenCallback.EVENT, ((screen, buttons) -> onGuiOpen(screen))); }
{ on(OpenGuiScreenCallback.EVENT, this::onGuiOpen); }
private void onGuiOpen(Screen vanillaGui) { private void onGuiOpen(Screen vanillaGui) {
//#else AbstractGuiScreen<?> abstractScreen = de.johni0702.minecraft.gui.container.GuiScreen.from(vanillaGui);
//$$ @SubscribeEvent if (abstractScreen instanceof GuiRenderingDone) {
//$$ public void onGuiOpen(GuiScreenEvent.InitGuiEvent.Post event) { GuiRenderingDone gui = (GuiRenderingDone) abstractScreen;
//$$ net.minecraft.client.gui.screen.Screen vanillaGui = getGui(event);
//#endif
if (GuiScreen.from(vanillaGui) instanceof GuiRenderingDone) {
GuiRenderingDone gui = (GuiRenderingDone) GuiScreen.from(vanillaGui);
// Check if there already is a youtube button // Check if there already is a youtube button
if (gui.actionsPanel.getChildren().stream().anyMatch(it -> it instanceof YoutubeButton)) { if (gui.actionsPanel.getChildren().stream().anyMatch(it -> it instanceof YoutubeButton)) {
return; // Button already added return; // Button already added

View File

@@ -4,7 +4,6 @@ import com.replaymod.core.ReplayMod;
import com.replaymod.core.utils.Utils; import com.replaymod.core.utils.Utils;
import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer;
import com.replaymod.editor.gui.MarkerProcessor; import com.replaymod.editor.gui.MarkerProcessor;
import com.replaymod.recording.Setting;
import com.replaymod.recording.packet.PacketListener; import com.replaymod.recording.packet.PacketListener;
import de.johni0702.minecraft.gui.container.GuiPanel; import de.johni0702.minecraft.gui.container.GuiPanel;
import de.johni0702.minecraft.gui.container.VanillaGuiScreen; 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.CustomLayout;
import de.johni0702.minecraft.gui.layout.HorizontalLayout; import de.johni0702.minecraft.gui.layout.HorizontalLayout;
import de.johni0702.minecraft.gui.utils.EventRegistrations; 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.GameMenuScreen;
import net.minecraft.client.gui.screen.Screen; 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 //#if MC>=11400
import net.minecraft.client.gui.widget.AbstractButtonWidget; import net.minecraft.client.gui.widget.AbstractButtonWidget;
//#endif //#endif
@@ -85,19 +75,14 @@ public class GuiRecordingControls extends EventRegistrations {
buttonPauseResume.setEnabled(!stopped); buttonPauseResume.setEnabled(!stopped);
} }
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); }
private void injectIntoIngameMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void injectIntoIngameMenu(Screen guiScreen,
//#else //#if MC>=11400
//$$ @SubscribeEvent List<AbstractButtonWidget> buttonList
//$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) { //#else
//$$ Screen guiScreen = getGui(event); //$$ List<net.minecraft.client.gui.GuiButton> buttonList
//#if MC>=11400 //#endif
//$$ List<Widget> buttonList = MCVer.getButtonList(event); ) {
//#else
//$$ List<net.minecraft.client.gui.GuiButton> buttonList = MCVer.getButtonList(event);
//#endif
//#endif
if (!(guiScreen instanceof GameMenuScreen)) { if (!(guiScreen instanceof GameMenuScreen)) {
return; return;
} }

View File

@@ -1,24 +1,16 @@
package com.replaymod.recording.gui; package com.replaymod.recording.gui;
import com.replaymod.core.SettingsRegistry; import com.replaymod.core.SettingsRegistry;
import com.replaymod.core.versions.MCVer;
import com.replaymod.recording.Setting; import com.replaymod.recording.Setting;
import de.johni0702.minecraft.gui.GuiRenderer; import de.johni0702.minecraft.gui.GuiRenderer;
import de.johni0702.minecraft.gui.MinecraftGuiRenderer; import de.johni0702.minecraft.gui.MinecraftGuiRenderer;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.RenderHudCallback;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.font.TextRenderer; import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.resource.language.I18n; import net.minecraft.client.resource.language.I18n;
import net.minecraft.client.util.math.MatrixStack; 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;
import static com.replaymod.core.ReplayMod.TEXTURE_SIZE; import static com.replaymod.core.ReplayMod.TEXTURE_SIZE;
import static com.replaymod.core.versions.MCVer.*; 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. * Render the recording icon and text in the top left corner of the screen.
*/ */
//#if FABRIC>=1
{ on(RenderHudCallback.EVENT, (stack, partialTicks) -> renderRecordingIndicator(stack)); } { on(RenderHudCallback.EVENT, (stack, partialTicks) -> renderRecordingIndicator(stack)); }
private void renderRecordingIndicator(MatrixStack 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 (guiControls.isStopped()) return;
if (settingsRegistry.get(Setting.INDICATOR)) { if (settingsRegistry.get(Setting.INDICATOR)) {
TextRenderer fontRenderer = mc.textRenderer; TextRenderer fontRenderer = mc.textRenderer;

View File

@@ -14,23 +14,13 @@ import de.johni0702.minecraft.gui.element.GuiToggleButton;
import de.johni0702.minecraft.gui.layout.CustomLayout; import de.johni0702.minecraft.gui.layout.CustomLayout;
import de.johni0702.minecraft.gui.popup.GuiInfoPopup; import de.johni0702.minecraft.gui.popup.GuiInfoPopup;
import de.johni0702.minecraft.gui.utils.EventRegistrations; 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.AddServerScreen;
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
import net.minecraft.client.gui.screen.world.SelectWorldScreen; import net.minecraft.client.gui.screen.world.SelectWorldScreen;
import net.minecraft.client.network.ServerInfo; import net.minecraft.client.network.ServerInfo;
import net.minecraft.client.resource.language.I18n; 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 { public class GuiHandler extends EventRegistrations {
private final ReplayMod mod; private final ReplayMod mod;
@@ -39,14 +29,8 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod; this.mod = mod;
} }
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); } { on(InitScreenCallback.EVENT, (screen, buttons) -> onGuiInit(screen)); }
private void onGuiInit(Screen gui) { private void onGuiInit(net.minecraft.client.gui.screen.Screen gui) {
//#else
//$$ @SubscribeEvent
//$$ public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ net.minecraft.client.gui.screen.Screen gui = getGui(event);
//#endif
if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) { if (gui instanceof SelectWorldScreen || gui instanceof MultiplayerScreen) {
boolean sp = gui instanceof SelectWorldScreen; boolean sp = gui instanceof SelectWorldScreen;
SettingsRegistry settingsRegistry = mod.getSettingsRegistry(); SettingsRegistry settingsRegistry = mod.getSettingsRegistry();

View File

@@ -1,8 +1,10 @@
package com.replaymod.recording.handler; package com.replaymod.recording.handler;
import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.recording.mixin.IntegratedServerAccessor; import com.replaymod.recording.mixin.IntegratedServerAccessor;
import com.replaymod.recording.packet.PacketListener; import com.replaymod.recording.packet.PacketListener;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
import net.minecraft.client.MinecraftClient; import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.network.packet.s2c.play.BlockBreakingProgressS2CPacket; import net.minecraft.network.packet.s2c.play.BlockBreakingProgressS2CPacket;
@@ -20,15 +22,11 @@ import net.minecraft.network.Packet;
import net.minecraft.server.integrated.IntegratedServer; import net.minecraft.server.integrated.IntegratedServer;
// FIXME not (yet?) 1.13 import net.minecraftforge.event.entity.minecart.MinecartInteractEvent; // FIXME not (yet?) 1.13 import net.minecraftforge.event.entity.minecart.MinecartInteractEvent;
//#if FABRIC>=1 //#if FABRIC<1
import com.replaymod.core.events.PreRenderCallback;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
//#else
//$$ import net.minecraft.network.play.server.SCollectItemPacket; //$$ import net.minecraft.network.play.server.SCollectItemPacket;
//$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent; //$$ import net.minecraftforge.event.entity.player.PlayerSleepInBedEvent;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent; //$$ import net.minecraftforge.event.entity.player.PlayerEvent.ItemPickupEvent;
//$$ import net.minecraftforge.event.TickEvent;
//#endif //#endif
//#if MC>=11600 //#if MC>=11600
@@ -139,15 +137,9 @@ public class RecordingEventHandler extends EventRegistrations {
} }
//#endif //#endif
//#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onPlayerTick); } { on(PreTickCallback.EVENT, this::onPlayerTick); }
private void onPlayerTick() { private void onPlayerTick() {
if (mc.player == null) return; 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; ClientPlayerEntity player = mc.player;
try { try {
@@ -465,14 +457,8 @@ public class RecordingEventHandler extends EventRegistrations {
} }
} }
//#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::checkForGamePaused); } { on(PreRenderCallback.EVENT, this::checkForGamePaused); }
private void checkForGamePaused() { private void checkForGamePaused() {
//#else
//$$ @SubscribeEvent
//$$ public void checkForGamePaused(TickEvent.RenderTickEvent event) {
//$$ if (event.phase != TickEvent.Phase.START) return;
//#endif
if (mc.isIntegratedServerRunning()) { if (mc.isIntegratedServerRunning()) {
IntegratedServer server = mc.getServer(); IntegratedServer server = mc.getServer();
if (server != null && ((IntegratedServerAccessor) server).isGamePaused()) { if (server != null && ((IntegratedServerAccessor) server).isGamePaused()) {

View File

@@ -1,5 +1,6 @@
package com.replaymod.render.hooks; package com.replaymod.render.hooks;
import com.replaymod.core.events.PreRenderHandCallback;
import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer;
import com.replaymod.render.RenderSettings; import com.replaymod.render.RenderSettings;
import com.replaymod.render.capturer.CaptureData; import com.replaymod.render.capturer.CaptureData;
@@ -15,7 +16,6 @@ import net.minecraft.client.util.math.MatrixStack;
//#if MC>=11400 //#if MC>=11400
import com.replaymod.core.events.PostRenderCallback; import com.replaymod.core.events.PostRenderCallback;
import com.replaymod.core.events.PreRenderCallback; import com.replaymod.core.events.PreRenderCallback;
import com.replaymod.core.events.PreRenderHandCallback;
//#else //#else
//#if MC>=11400 //#if MC>=11400
//$$ import net.minecraftforge.fml.hooks.BasicEventHooks; //$$ import net.minecraftforge.fml.hooks.BasicEventHooks;
@@ -41,9 +41,7 @@ public class EntityRendererHandler extends EventRegistrations implements WorldRe
this.settings = settings; this.settings = settings;
this.renderInfo = renderInfo; this.renderInfo = renderInfo;
//#if MC>=11400
on(PreRenderHandCallback.EVENT, () -> omnidirectional); on(PreRenderHandCallback.EVENT, () -> omnidirectional);
//#endif
((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(this); ((IEntityRenderer) mc.gameRenderer).replayModRender_setHandler(this);
register(); register();

View File

@@ -12,6 +12,7 @@ import com.replaymod.replay.camera.CameraEntity;
import com.replaymod.replaystudio.io.ReplayInputStream; import com.replaymod.replaystudio.io.ReplayInputStream;
import com.replaymod.replaystudio.replay.ReplayFile; import com.replaymod.replaystudio.replay.ReplayFile;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled; import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelDuplexHandler; 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.FileUtils;
import org.apache.commons.io.IOUtils; 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 //#if MC>=11600
//#else //#else
//$$ import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket; //$$ import net.minecraft.network.packet.s2c.play.EntitySpawnGlobalS2CPacket;
@@ -364,22 +358,9 @@ public class FullReplaySender extends ChannelDuplexHandler implements ReplaySend
} }
} }
//#if MC>=10800 private class EventHandler extends EventRegistrations {
private
//#else
//$$ public // All event handlers need to be public in 1.7.10
//#endif
class EventHandler extends EventRegistrations {
//#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onWorldTick); } { on(PreTickCallback.EVENT, this::onWorldTick); }
private void 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) // 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 // 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. // Entity#addedToChunk is not set and it is therefore not updated every tick.

View File

@@ -12,6 +12,7 @@ import com.replaymod.core.mixin.TimerAccessor;
import com.replaymod.replaystudio.replay.ReplayFile; import com.replaymod.replaystudio.replay.ReplayFile;
import com.replaymod.replaystudio.util.RandomAccessReplay; import com.replaymod.replaystudio.util.RandomAccessReplay;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled; import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandler;
@@ -25,15 +26,6 @@ import net.minecraft.network.NetworkSide;
import net.minecraft.network.Packet; import net.minecraft.network.Packet;
import net.minecraft.network.PacketByteBuf; 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 javax.annotation.Nullable;
import java.io.IOException; import java.io.IOException;
import java.util.Collections; import java.util.Collections;
@@ -285,14 +277,8 @@ public class QuickReplaySender extends ChannelHandlerAdapter implements ReplaySe
} }
private class EventHandler extends EventRegistrations { private class EventHandler extends EventRegistrations {
//#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onTick); } { on(PreTickCallback.EVENT, this::onTick); }
private void onTick() { private void onTick() {
//#else
//$$ @SubscribeEvent
//$$ public void onTick(TickEvent.ClientTickEvent event) {
//$$ if (event.phase != TickEvent.Phase.START) return;
//#endif
if (!asyncMode || paused()) return; if (!asyncMode || paused()) return;
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();

View File

@@ -3,9 +3,13 @@ package com.replaymod.replay.camera;
import com.replaymod.core.KeyBindingRegistry; import com.replaymod.core.KeyBindingRegistry;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.core.SettingsRegistry; 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.core.events.SettingsChangedCallback;
import com.replaymod.replay.ReplayHandler; import com.replaymod.replay.ReplayHandler;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
import com.replaymod.core.utils.Utils; import com.replaymod.core.utils.Utils;
import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.ReplayModReplay;
import com.replaymod.replay.Setting; import com.replaymod.replay.Setting;
@@ -24,20 +28,14 @@ import net.minecraft.util.Identifier;
import net.minecraft.util.math.Box; import net.minecraft.util.math.Box;
//#if FABRIC>=1 //#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 com.replaymod.replay.events.RenderSpectatorCrosshairCallback;
import de.johni0702.minecraft.gui.versions.callbacks.PreTickCallback;
//#else //#else
//$$ import com.replaymod.core.versions.MCVer; //$$ import com.replaymod.core.versions.MCVer;
//$$ import net.minecraftforge.client.event.EntityViewRenderEvent; //$$ import net.minecraftforge.client.event.EntityViewRenderEvent;
//$$ import net.minecraftforge.client.event.RenderGameOverlayEvent; //$$ import net.minecraftforge.client.event.RenderGameOverlayEvent;
//$$ import net.minecraftforge.client.event.RenderHandEvent;
//$$ import net.minecraftforge.common.MinecraftForge; //$$ import net.minecraftforge.common.MinecraftForge;
//$$ import net.minecraftforge.eventbus.api.EventPriority; //$$ import net.minecraftforge.eventbus.api.EventPriority;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//$$ import net.minecraftforge.event.TickEvent;
//#endif //#endif
//#if MC>=11400 //#if MC>=11400
@@ -51,7 +49,6 @@ import net.minecraft.util.hit.HitResult;
//$$ import net.minecraft.util.math.RayTraceResult; //$$ import net.minecraft.util.math.RayTraceResult;
//$$ import net.minecraft.util.text.ITextComponent; //$$ import net.minecraft.util.text.ITextComponent;
//$$ import net.minecraft.world.World; //$$ import net.minecraft.world.World;
//$$ import net.minecraftforge.fml.common.gameevent.InputEvent;
//$$ //$$
//#if MC>=11400 //#if MC>=11400
//$$ import net.minecraft.util.math.RayTraceFluidMode; //$$ import net.minecraft.util.math.RayTraceFluidMode;
@@ -671,41 +668,17 @@ public class CameraEntity
private EventHandler() {} private EventHandler() {}
//#if FABRIC>=1
{ on(PreTickCallback.EVENT, this::onPreClientTick); } { on(PreTickCallback.EVENT, this::onPreClientTick); }
private void onPreClientTick() { private void onPreClientTick() {
//#else
//$$ @SubscribeEvent
//$$ public void onPreClientTick(TickEvent.ClientTickEvent event) {
//$$ if (event.phase != TickEvent.Phase.START) return;
//#endif
updateArmYawAndPitch(); updateArmYawAndPitch();
} }
//#if FABRIC>=1
{ on(PreRenderCallback.EVENT, this::onRenderUpdate); } { on(PreRenderCallback.EVENT, this::onRenderUpdate); }
private void onRenderUpdate() { private void onRenderUpdate() {
//#else
//$$ @SubscribeEvent
//$$ public void onRenderUpdate(TickEvent.RenderTickEvent event) {
//$$ if (event.phase != TickEvent.Phase.START) return;
//#endif
update(); update();
} }
//#if FABRIC>=1
{ on(KeyBindingEventCallback.EVENT, CameraEntity.this::handleInputEvents); } { 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 //#if FABRIC>=1
{ on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); } { on(RenderSpectatorCrosshairCallback.EVENT, this::shouldRenderSpectatorCrosshair); }
@@ -737,35 +710,13 @@ public class CameraEntity
} }
} }
//#if FABRIC>=1
{ on(PreRenderHandCallback.EVENT, this::onRenderHand); } { on(PreRenderHandCallback.EVENT, this::onRenderHand); }
private boolean onRenderHand() { private boolean onRenderHand() {
// Unless we are spectating another player, don't render our hand // 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 return true; // cancel hand rendering
} else { } 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; PlayerEntity player = (PlayerEntity) view;
// When the spectated player has changed, force equip their items to prevent the equip animation // When the spectated player has changed, force equip their items to prevent the equip animation
if (lastHandRendered != player) { if (lastHandRendered != player) {
@@ -790,6 +741,7 @@ public class CameraEntity
mc.player.renderYaw = mc.player.lastRenderYaw = player.yaw; mc.player.renderYaw = mc.player.lastRenderYaw = player.yaw;
mc.player.renderPitch = mc.player.lastRenderPitch = player.pitch; mc.player.renderPitch = mc.player.lastRenderPitch = player.pitch;
} }
return false;
} }
} }

View File

@@ -170,12 +170,7 @@ public class GuiReplayOverlay extends AbstractGuiOverlay<GuiReplayOverlay> {
return this; return this;
} }
//#if MC>=10800 private class EventHandler extends EventRegistrations {
private
//#else
//$$ public // All event handlers need to be public in 1.7.10
//#endif
class EventHandler extends EventRegistrations {
{ on(KeyBindingEventCallback.EVENT, this::onKeyBindingEvent); } { on(KeyBindingEventCallback.EVENT, this::onKeyBindingEvent); }
private void onKeyBindingEvent() { private void onKeyBindingEvent() {
GameOptions gameSettings = getMinecraft().options; GameOptions gameSettings = getMinecraft().options;

View File

@@ -1,6 +1,7 @@
package com.replaymod.replay.handler; package com.replaymod.replay.handler;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
import com.replaymod.replay.ReplayModReplay; import com.replaymod.replay.ReplayModReplay;
import com.replaymod.replay.gui.screen.GuiReplayViewer; import com.replaymod.replay.gui.screen.GuiReplayViewer;
import net.minecraft.client.gui.screen.GameMenuScreen; import net.minecraft.client.gui.screen.GameMenuScreen;
@@ -16,9 +17,7 @@ import net.minecraft.text.TranslatableText;
//$$ import net.minecraft.client.resource.language.I18n; //$$ import net.minecraft.client.resource.language.I18n;
//#endif //#endif
//#if FABRIC>=1 //#if FABRIC<1
import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
//#else
//$$ import net.minecraftforge.client.event.GuiScreenEvent; //$$ import net.minecraftforge.client.event.GuiScreenEvent;
//$$ import net.minecraftforge.eventbus.api.SubscribeEvent; //$$ import net.minecraftforge.eventbus.api.SubscribeEvent;
//#endif //#endif
@@ -46,15 +45,8 @@ public class GuiHandler extends EventRegistrations {
this.mod = mod; this.mod = mod;
} }
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); } { on(InitScreenCallback.EVENT, this::injectIntoIngameMenu); }
private void injectIntoIngameMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void injectIntoIngameMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else
//$$ @SubscribeEvent
//$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) {
//$$ Screen guiScreen = getGui(event);
//$$ List<Widget> buttonList = getButtonList(event);
//#endif
if (!(guiScreen instanceof GameMenuScreen)) { if (!(guiScreen instanceof GameMenuScreen)) {
return; return;
} }
@@ -198,14 +190,8 @@ public class GuiHandler extends EventRegistrations {
.forEach(button -> button.y += moveBy); .forEach(button -> button.y += moveBy);
} }
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::ensureReplayStopped); } { on(InitScreenCallback.EVENT, this::ensureReplayStopped); }
private void ensureReplayStopped(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void ensureReplayStopped(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else
//$$ @SubscribeEvent
//$$ public void ensureReplayStopped(GuiScreenEvent.InitGuiEvent event) {
//$$ Screen guiScreen = getGui(event);
//#endif
if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) { if (!(guiScreen instanceof TitleScreen || guiScreen instanceof MultiplayerScreen)) {
return; return;
} }
@@ -225,15 +211,8 @@ public class GuiHandler extends EventRegistrations {
} }
} }
//#if FABRIC>=1
{ on(InitScreenCallback.EVENT, this::injectIntoMainMenu); } { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); }
private void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) { private void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
//#else
//$$ @SubscribeEvent
//$$ public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) {
//$$ Screen guiScreen = getGui(event);
//$$ List<Widget> buttonList = getButtonList(event);
//#endif
if (!(guiScreen instanceof TitleScreen)) { if (!(guiScreen instanceof TitleScreen)) {
return; return;
} }
@@ -269,7 +248,7 @@ public class GuiHandler extends EventRegistrations {
//#if FABRIC<=0 //#if FABRIC<=0
//$$ if (guiScreen.getClass().getName().endsWith("custommainmenu.gui.GuiFakeMain")) { //$$ if (guiScreen.getClass().getName().endsWith("custommainmenu.gui.GuiFakeMain")) {
//$$ // CustomMainMenu uses a different list in the event than in its Fake gui //$$ // CustomMainMenu uses a different list in the event than in its Fake gui
//$$ addButton(event, button); //$$ buttonList.add(button);
//$$ return; //$$ return;
//$$ } //$$ }
//#endif //#endif

View File

@@ -1,6 +1,8 @@
package com.replaymod.simplepathing.preview; package com.replaymod.simplepathing.preview;
import com.mojang.blaze3d.platform.GlStateManager;
import com.replaymod.core.ReplayMod; import com.replaymod.core.ReplayMod;
import com.replaymod.core.events.PostRenderWorldCallback;
import com.replaymod.core.versions.MCVer; import com.replaymod.core.versions.MCVer;
import com.replaymod.pathing.properties.CameraProperties; import com.replaymod.pathing.properties.CameraProperties;
import com.replaymod.pathing.properties.SpectatorProperty; import com.replaymod.pathing.properties.SpectatorProperty;
@@ -17,7 +19,7 @@ import com.replaymod.simplepathing.SPTimeline;
import com.replaymod.simplepathing.gui.GuiPathing; import com.replaymod.simplepathing.gui.GuiPathing;
import de.johni0702.minecraft.gui.utils.EventRegistrations; import de.johni0702.minecraft.gui.utils.EventRegistrations;
import net.minecraft.client.MinecraftClient; 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.entity.Entity;
import net.minecraft.util.Identifier; import net.minecraft.util.Identifier;
import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Pair;
@@ -26,14 +28,6 @@ import org.lwjgl.opengl.GL11;
//#if MC>=11500 //#if MC>=11500
import com.mojang.blaze3d.systems.RenderSystem; 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 //#endif
import java.util.Comparator; import java.util.Comparator;
@@ -58,17 +52,8 @@ public class PathPreviewRenderer extends EventRegistrations {
this.replayHandler = replayHandler; this.replayHandler = replayHandler;
} }
//#if FABRIC>=1
{ on(PostRenderWorldCallback.EVENT, this::renderCameraPath); } { on(PostRenderWorldCallback.EVENT, this::renderCameraPath); }
//#if MC>=11500
private void renderCameraPath(MatrixStack matrixStack) { 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; if (!replayHandler.getReplaySender().isAsyncMode() || mc.options.hudHidden) return;
Entity view = getRenderViewEntity(mc); Entity view = getRenderViewEntity(mc);

View File

@@ -1,6 +1,7 @@
package com.replaymod.core; package com.replaymod.core;
import com.replaymod.core.mixin.MinecraftAccessor; import com.replaymod.core.mixin.MinecraftAccessor;
import com.replaymod.core.versions.forge.EventsAdapter;
import net.minecraft.client.resources.IResourcePack; import net.minecraft.client.resources.IResourcePack;
import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.common.Loader; import net.minecraftforge.fml.common.Loader;
@@ -36,6 +37,7 @@ import static com.replaymod.core.versions.MCVer.getMinecraft;
guiFactory = "com.replaymod.core.gui.GuiFactory") guiFactory = "com.replaymod.core.gui.GuiFactory")
public class ReplayModBackend { public class ReplayModBackend {
private final ReplayMod mod = new ReplayMod(this); private final ReplayMod mod = new ReplayMod(this);
private final EventsAdapter eventsAdapter = new EventsAdapter();
@Deprecated @Deprecated
public static Configuration config; public static Configuration config;
@@ -52,6 +54,7 @@ public class ReplayModBackend {
@EventHandler @EventHandler
public void init(FMLInitializationEvent event) { public void init(FMLInitializationEvent event) {
mod.initModules(); mod.initModules();
eventsAdapter.register();
} }
public String getVersion() { public String getVersion() {

View File

@@ -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);
}
}
}