mirror of
https://github.com/kami-blue/client
synced 2025-02-20 23:27:14 +00:00
Added anti accidental disconnect
This commit is contained in:
parent
e4326255fc
commit
8ebc53438c
@ -0,0 +1,70 @@
|
||||
package me.zeroeightsix.kami.gui.mc;
|
||||
|
||||
import me.zeroeightsix.kami.KamiMod;
|
||||
import me.zeroeightsix.kami.module.modules.misc.AntiDisconnect;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiMainMenu;
|
||||
import net.minecraft.client.gui.GuiMultiplayer;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.realms.RealmsBridge;
|
||||
|
||||
public class KamiGuiAntiDisconnect extends GuiScreen {
|
||||
|
||||
private int disconnectCount = KamiMod.MODULE_MANAGER.getModuleT(AntiDisconnect.class).requiredButtonPresses.getValue();
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
|
||||
this.buttonList.add(new GuiButton(0, this.width / 2 - 100, 200, "Back to Game"));
|
||||
this.buttonList.add(new GuiButton(1, this.width / 2 - 100, 230, String.format(KamiMod.colour + "4Press me %s time(s) to disconnect.", disconnectCount)));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void actionPerformed(GuiButton button) {
|
||||
switch (button.id) {
|
||||
case 0:
|
||||
this.mc.displayGuiScreen(null);
|
||||
this.mc.setIngameFocus();
|
||||
|
||||
break;
|
||||
case 1:
|
||||
if (disconnectCount > 1) {
|
||||
disconnectCount--;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
boolean single = mc.isIntegratedServerRunning();
|
||||
boolean connectedToRealms = mc.isConnectedToRealms();
|
||||
|
||||
button.enabled = false;
|
||||
|
||||
mc.world.sendQuittingDisconnectingPacket();
|
||||
mc.loadWorld(null);
|
||||
|
||||
if (single)
|
||||
{
|
||||
mc.displayGuiScreen(new GuiMainMenu());
|
||||
}
|
||||
else if (connectedToRealms)
|
||||
{
|
||||
RealmsBridge realmsbridge = new RealmsBridge();
|
||||
|
||||
realmsbridge.switchToRealms(new GuiMainMenu());
|
||||
}
|
||||
else
|
||||
{
|
||||
mc.displayGuiScreen(new GuiMultiplayer(new GuiMainMenu()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
||||
this.drawDefaultBackground();
|
||||
this.drawCenteredString(this.fontRenderer, "Disconnect Confirmation", this.width / 2, 40, 10195199);
|
||||
|
||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package me.zeroeightsix.kami.mixin.client;
|
||||
|
||||
import me.zeroeightsix.kami.KamiMod;
|
||||
import me.zeroeightsix.kami.gui.mc.KamiGuiAntiDisconnect;
|
||||
import me.zeroeightsix.kami.module.modules.misc.AntiDisconnect;
|
||||
import me.zeroeightsix.kami.util.Wrapper;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import net.minecraft.client.gui.GuiIngameMenu;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(GuiIngameMenu.class)
|
||||
public class MixinGuiIngameMenu {
|
||||
|
||||
@Inject(method = "actionPerformed", at = @At("HEAD"), cancellable = true)
|
||||
public void actionPerformed(GuiButton button, CallbackInfo callbackInfo) {
|
||||
if (KamiMod.MODULE_MANAGER.getModuleT(AntiDisconnect.class).isEnabled()) {
|
||||
switch (button.id) {
|
||||
case 1:
|
||||
Wrapper.getMinecraft().displayGuiScreen(new KamiGuiAntiDisconnect());
|
||||
callbackInfo.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package me.zeroeightsix.kami.module.modules.misc;
|
||||
|
||||
import me.zeroeightsix.kami.module.Module;
|
||||
import me.zeroeightsix.kami.setting.Setting;
|
||||
import me.zeroeightsix.kami.setting.Settings;
|
||||
|
||||
@Module.Info(
|
||||
name = "AntiDisconnect",
|
||||
description = "Are you sure you want to disconnect?",
|
||||
category = Module.Category.MISC
|
||||
)
|
||||
public class AntiDisconnect extends Module {
|
||||
public Setting<Integer> requiredButtonPresses = register(Settings.integerBuilder("Button Presses").withMinimum(1).withMaximum(20).withValue(6));
|
||||
}
|
@ -18,6 +18,7 @@
|
||||
"MixinEntityRenderer",
|
||||
"MixinFrustum",
|
||||
"MixinGuiChat",
|
||||
"MixinGuiIngameMenu",
|
||||
"MixinGuiMainMenu",
|
||||
"MixinGuiNewChat",
|
||||
"MixinGuiPlayerTabOverlay",
|
||||
|
Loading…
Reference in New Issue
Block a user