Update to MC 1.14 / Fabric
This commit is contained in:
@@ -1,35 +1,33 @@
|
||||
package com.replaymod.online.handler;
|
||||
|
||||
import de.johni0702.minecraft.gui.utils.EventRegistrations;
|
||||
import com.replaymod.online.ReplayModOnline;
|
||||
import com.replaymod.online.gui.GuiLoginPrompt;
|
||||
import com.replaymod.online.gui.GuiReplayCenter;
|
||||
import com.replaymod.online.gui.GuiUploadReplay;
|
||||
import com.replaymod.replay.gui.screen.GuiReplayViewer;
|
||||
import com.replaymod.replay.handler.GuiHandler.InjectedButton;
|
||||
import de.johni0702.minecraft.gui.container.AbstractGuiScreen;
|
||||
import de.johni0702.minecraft.gui.container.GuiPanel;
|
||||
import de.johni0702.minecraft.gui.container.GuiScreen;
|
||||
import de.johni0702.minecraft.gui.element.GuiElement;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiMainMenu;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraftforge.client.event.GuiScreenEvent;
|
||||
|
||||
//#if MC>=10800
|
||||
//#if MC>=11300
|
||||
//#if MC>=11400
|
||||
//$$ import de.johni0702.minecraft.gui.versions.callbacks.InitScreenCallback;
|
||||
//$$ import net.minecraft.client.gui.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;
|
||||
import java.util.ArrayList;
|
||||
//#else
|
||||
//$$ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
//#else
|
||||
//$$ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
//#endif
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import static com.replaymod.core.versions.MCVer.*;
|
||||
|
||||
public class GuiHandler {
|
||||
public class GuiHandler extends EventRegistrations {
|
||||
private static final int BUTTON_REPLAY_CENTER = 17890236;
|
||||
|
||||
private final ReplayModOnline mod;
|
||||
@@ -38,42 +36,46 @@ public class GuiHandler {
|
||||
this.mod = mod;
|
||||
}
|
||||
|
||||
public void register() {
|
||||
FML_BUS.register(this);
|
||||
FORGE_BUS.register(this);
|
||||
}
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ { on(InitScreenCallback.EVENT, this::injectIntoMainMenu); }
|
||||
//$$ public void injectIntoMainMenu(Screen guiScreen, List<AbstractButtonWidget> buttonList) {
|
||||
//#else
|
||||
@SubscribeEvent
|
||||
public void injectIntoMainMenu(GuiScreenEvent.InitGuiEvent event) {
|
||||
if (!(getGui(event) instanceof GuiMainMenu)) {
|
||||
final net.minecraft.client.gui.GuiScreen guiScreen = getGui(event);
|
||||
//#endif
|
||||
if (!(guiScreen instanceof GuiMainMenu)) {
|
||||
return;
|
||||
}
|
||||
|
||||
GuiButton button = new GuiButton(
|
||||
GuiButton button = new InjectedButton(
|
||||
guiScreen,
|
||||
BUTTON_REPLAY_CENTER,
|
||||
getGui(event).width / 2 + 2,
|
||||
getGui(event).height / 4 + 10 + 4 * 24,
|
||||
I18n.format("replaymod.gui.replaycenter")
|
||||
) {
|
||||
//#if MC>=11300
|
||||
@Override
|
||||
public void onClick(double mouseX, double mouseY) {
|
||||
onButton(new GuiScreenEvent.ActionPerformedEvent.Pre(getGui(event), this, new ArrayList<>()));
|
||||
}
|
||||
//#endif
|
||||
};
|
||||
button.width = button.width / 2 - 2;
|
||||
addButton(event, button);
|
||||
guiScreen.width / 2 + 2,
|
||||
guiScreen.height / 4 + 10 + 4 * 24,
|
||||
98,
|
||||
20,
|
||||
I18n.format("replaymod.gui.replaycenter"),
|
||||
this::onButton
|
||||
);
|
||||
addButton(guiScreen, button);
|
||||
}
|
||||
|
||||
//#if MC>=11400
|
||||
//$$ { on(InitScreenCallback.EVENT, this::injectIntoReplayViewer); }
|
||||
//$$ public void injectIntoReplayViewer(Screen vanillaGuiScreen, List<AbstractButtonWidget> buttonList) {
|
||||
//#else
|
||||
@SubscribeEvent
|
||||
public void injectIntoReplayViewer(GuiScreenEvent.InitGuiEvent.Post event) {
|
||||
AbstractGuiScreen guiScreen = GuiScreen.from(getGui(event));
|
||||
net.minecraft.client.gui.GuiScreen vanillaGuiScreen = getGui(event);
|
||||
//#endif
|
||||
AbstractGuiScreen guiScreen = GuiScreen.from(vanillaGuiScreen);
|
||||
if (!(guiScreen instanceof GuiReplayViewer)) {
|
||||
return;
|
||||
}
|
||||
final GuiReplayViewer replayViewer = (GuiReplayViewer) guiScreen;
|
||||
// Inject Upload button
|
||||
if (!replayViewer.uploadButton.getChildren().isEmpty()) return;
|
||||
replayViewer.replaySpecificButtons.add(new de.johni0702.minecraft.gui.element.GuiButton(replayViewer.uploadButton).onClick(() -> {
|
||||
File replayFile = replayViewer.list.getSelected().file;
|
||||
GuiUploadReplay uploadGui = new GuiUploadReplay(replayViewer, mod, replayFile);
|
||||
@@ -85,17 +87,24 @@ public class GuiHandler {
|
||||
}).setSize(73, 20).setI18nLabel("replaymod.gui.upload").setDisabled());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onButton(GuiScreenEvent.ActionPerformedEvent.Pre event) {
|
||||
if(!getButton(event).enabled) return;
|
||||
//#if MC>=11300
|
||||
private void onButton(InjectedButton button) {
|
||||
net.minecraft.client.gui.GuiScreen guiScreen = button.guiScreen;
|
||||
//#else
|
||||
//$$ @SubscribeEvent
|
||||
//$$ public void onButton(GuiScreenEvent.ActionPerformedEvent.Pre event) {
|
||||
//$$ net.minecraft.client.gui.GuiScreen guiScreen = getGui(event);
|
||||
//$$ GuiButton button = getButton(event);
|
||||
//#endif
|
||||
if(!button.enabled) return;
|
||||
|
||||
if (getGui(event) instanceof GuiMainMenu) {
|
||||
if (getButton(event).id == BUTTON_REPLAY_CENTER) {
|
||||
if (guiScreen instanceof GuiMainMenu) {
|
||||
if (button.id == BUTTON_REPLAY_CENTER) {
|
||||
GuiReplayCenter replayCenter = new GuiReplayCenter(mod);
|
||||
if (mod.isLoggedIn()) {
|
||||
replayCenter.display();
|
||||
} else {
|
||||
new GuiLoginPrompt(mod.getApiClient(), GuiScreen.wrap(getGui(event)), replayCenter, true).display();
|
||||
new GuiLoginPrompt(mod.getApiClient(), GuiScreen.wrap(guiScreen), replayCenter, true).display();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user