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:
@@ -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<AbstractButtonWidget> buttonList) {
|
||||
//#else
|
||||
//$$ @SubscribeEvent
|
||||
//$$ public void injectIntoIngameMenu(GuiScreenEvent.InitGuiEvent.Post event) {
|
||||
//$$ Screen guiScreen = getGui(event);
|
||||
//#if MC>=11400
|
||||
//$$ List<Widget> buttonList = MCVer.getButtonList(event);
|
||||
//#else
|
||||
//$$ List<net.minecraft.client.gui.GuiButton> buttonList = MCVer.getButtonList(event);
|
||||
//#endif
|
||||
//#endif
|
||||
private void injectIntoIngameMenu(Screen guiScreen,
|
||||
//#if MC>=11400
|
||||
List<AbstractButtonWidget> buttonList
|
||||
//#else
|
||||
//$$ List<net.minecraft.client.gui.GuiButton> buttonList
|
||||
//#endif
|
||||
) {
|
||||
if (!(guiScreen instanceof GameMenuScreen)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user